VR-Forces 4.2 Class Documentation
surfEntActSimple.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 
12 #include "vrfobjcore/actCmpnt.h"
13 #include "vrfobjcore/vrfKinState.h"
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 
93  virtual void tick();
94 
103  virtual void decrementFuelResource(double fuelUsed);
104 #if 0
105 
106 
112  virtual double fuelLeft() const;
113 #endif
114 
115 
116 
117  static DtSimComponent * creator(const DtString& name,
118  DtVrfObject* owner,
119  DtSimManager* simManager,
120  DtComponentDescriptor* desc = 0,
121  DtReaderWriterRegistry* parentRegistry = 0);
122 
123 protected:
124 
127  virtual bool createPortGroups();
128 
132  virtual bool createPorts();
133 
134  virtual void updateHeading(const double dT, double& newHeading);
135 
149  virtual void updateVelocity(const double dT, const double newHeading,
150  const double newVerticalSpeed,
151  double& acceleratingDT, double& newSpeed,
152  DtVector& newVelocity);
153 
158  virtual double updateVerticalSpeed(const double dT);
159 
178 
179  virtual void updateOrientationAndPosition(const double dT,
180  const double acceleratingDT, const double newHeading,
181  DtVector& newVelocity, const double newSpeed,
182  DtDcm& newBodyToLocalMatrix, DtVector& newPosition);
183 
190  virtual void adjustAttitude(const double newSpeed, const DtVector& position,
191  const double yawRate,
192  double &roll, double &pitch, double &altitudeAdj);
193 
201  virtual void setAltitude(DtVector& localPosition, const Coordinate_System* cs,
202  const double altitudeAdjustment);
203 
204 
211  virtual bool isShipAground(const DtVector& localPosition,
212  const DtDcm& bodyToLocalMatrix);
213 
216  virtual void sinkingAttitude(const DtVector& newPosition,
217  DtDcm& newBodyToLocalMatrix);
218 
223  virtual void setOrientationToBottom(const DtVector& newPosition,
224  const double newHeading, const DtVector& groundNormal,
225  DtDcm& newBodyToLocalMatrix);
226 
237  virtual void computeNewRates(
238  const double turnRate, const double newSpeed, const double newHeading,
239  const double acceleration, const DtDcm& bodyToLocalMatrix,
240  DtVector& bodyRotationRates, DtVector& relativeAcceleration,
241  double & limitedAcceleration);
242 
247  virtual void sinkingRates(DtVector& newPosition,
248  DtVector& newVelocity, DtVector& newRelativeAcceleration,
249  DtVector& newBodyRotationRates);
250 
256  virtual void unpoweredDriftRates(const double newSpeed,
257  const double newHeading,
258  DtVector& newBodyRotationRates, DtVector& newRelativeAcceleration);
262  double driftDecelerationMagnitude() const;
263 
269  virtual void updateRepository(
270  const DtVector& newPosition,
271  const DtVector& newVelocity,
272  const DtVector& newAcceleration,
273  const DtTaitBryan& newOrientation,
274  const DtVector& newBodyRotationRates);
275 
278  virtual double computeFuelUsed(const double dT);
279 
280  DtSurfaceEntityStateRepository * surfaceEntityState (void) const;
281 
287  virtual bool createPSR();
288 
289 protected:
290 
293 
296  (const DtSurfaceEntitySimpleActuator & orig);
297 
299  const DtSurfaceEntitySimpleActuator & operator=
300  (const DtSurfaceEntitySimpleActuator & orig);
301 
302 
303 protected:
308 
311 
315 
334 
336 
340 
344 
347 
351 
359 
363 
370 
371 };
372 

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)