VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
surfaceEntitySimpleActuator.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 #pragma once
11 
14 
15 class DtString;
16 class DtSimManager;
20 class DtAnalogInputPort;
21 class DtBooleanInputPort;
24 
25 
42 {
43 
44 public:
45 
50  DtVrfObject* owner,
51  DtSimManager* simManager,
52  DtComponentDescriptor* desc = 0,
53  DtReaderWriterRegistry* parentRegistry = 0);
54 
60 
63  virtual bool init();
64 
67  virtual DtString type() const;
68 
70  virtual bool postAddComponentsInit();
71 
74  virtual void initProcessSR();
75 
90  virtual void tick();
91 
100  virtual void decrementFuelResource(double fuelUsed);
101 #if 0
102 
103 
109  virtual double fuelLeft() const;
110 #endif
111 
112 
113 
114  static DtSimComponent * creator(const DtString& name,
115  DtVrfObject* owner,
116  DtSimManager* simManager,
117  DtComponentDescriptor* desc = 0,
118  DtReaderWriterRegistry* parentRegistry = 0);
119 
120 protected:
121 
124  virtual bool createPortGroups();
125 
129  virtual bool createPorts();
130 
131  virtual void updateHeading(const double dT, double& newHeading);
132 
146  virtual void updateVelocity(const double dT, const double newHeading,
147  const double newVerticalSpeed,
148  double& acceleratingDT, double& newSpeed,
149  DtVector& newVelocity);
150 
155  virtual double updateVerticalSpeed(const double dT);
156 
175  virtual void updateOrientationAndPosition(const double dT,
176  const double acceleratingDT, const double newHeading,
177  DtVector& newVelocity, const double newSpeed,
178  DtDcm& newBodyToLocalMatrix, DtVector& newPosition);
179 
186  virtual void adjustAttitude(const double newSpeed, const DtVector& position,
187  const double yawRate,
188  double &roll, double &pitch, double &altitudeAdj);
189 
197  virtual void setAltitude(DtVector& localPosition, const Coordinate_System* cs,
198  const double altitudeAdjustment);
199 
207  virtual bool getTerrainSurfaces(const DtVector& databaseLocation,
208  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
209  double& waterHeight, DtSurface::DtMedium & topSurfaceMedium,
210  bool* dataAvailable = 0, bool overrideBlockingAssert = false);
211 
219  virtual bool isShipAground(const DtVector& localPosition,
220  const DtDcm& bodyToLocalMatrix,
221  DtSurface::DtMedium topMedium = DtSurface::WaterSurface);
222 
225  virtual void sinkingAttitude(const DtVector& newPosition,
226  DtDcm& newBodyToLocalMatrix);
227 
232  virtual void setOrientationToBottom(const DtVector& newPosition,
233  const double newHeading, const DtVector& groundNormal,
234  DtDcm& newBodyToLocalMatrix);
235 
246  virtual void computeNewRates(
247  const double turnRate, const double newSpeed, const double newHeading,
248  const double acceleration, const DtDcm& bodyToLocalMatrix,
249  DtVector& bodyRotationRates, DtVector& relativeAcceleration,
250  double & limitedAcceleration);
251 
256  virtual void sinkingRates(DtVector& newPosition,
257  DtVector& newVelocity, DtVector& newRelativeAcceleration,
258  DtVector& newBodyRotationRates);
259 
265  virtual void unpoweredDriftRates(const double newSpeed,
266  const double newHeading,
267  DtVector& newBodyRotationRates, DtVector& newRelativeAcceleration);
271  double driftDecelerationMagnitude() const;
272 
278  virtual void updateRepository(
279  const DtVector& newPosition,
280  const DtVector& newVelocity,
281  const DtVector& newAcceleration,
282  const DtTaitBryan& newOrientation,
283  const DtVector& newBodyRotationRates);
284 
287  virtual double computeFuelUsed(const double dT);
288 
289  DtSurfaceEntityStateRepository * surfaceEntityState (void) const;
290 
296  virtual bool createPSR();
297 
298 protected:
299 
302 
305  (const DtSurfaceEntitySimpleActuator & orig);
306 
308  const DtSurfaceEntitySimpleActuator & operator=
309  (const DtSurfaceEntitySimpleActuator & orig);
310 
311 
312 protected:
317 
320 
324 
343 
345 
349 
353 
356 
360 
368 
372 
379 
380 };
381 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)