VR-Forces 4.2 Class Documentation
autoAct.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vlpi/disEnums.h>
14 #include "vrfobjcore/actCmpnt.h"
16 
17 class DtChord;
18 class DtString;
19 class DtSimManager;
21 class boolPort;
22 class DtVector;
23 class DtTaitBryan;
24 class DtSoilFactors;
25 class DtAutomotivePSR;
29 class DtBooleanInputPort;
30 class DtChordIntersectionRecord;
31 class DtAttachedTerrain;
33 
45 {
46 
47 public:
48 
52  DtSimManager* simManager,
53  DtComponentDescriptor* desc = 0,
54  DtReaderWriterRegistry* parentRegistry = 0);
55 
56 
59 
61  virtual bool init();
62 
65  virtual DtString type() const;
66 
68  virtual void tick();
69 
73  static DtSimComponent * creator(const DtString& name,
74  DtVrfObject* owner,
75  DtSimManager* simManager,
76  DtComponentDescriptor* desc = 0,
77  DtReaderWriterRegistry* parentRegistry = 0);
78 
79 protected:
80 
82  virtual double maxSpeedSoilFactor() const;
83 
85  virtual double accelSoilFactor() const;
86 
88  virtual double decelSoilFactor() const;
89 
92  virtual DtSoilFactors* soilFactors() const;
93 
100  virtual void useFuel(double fuelUsed);
101 
107  virtual double fuelLeft() const;
108 
126  virtual void updateRepository(const DtVector & localPosition,
127  const DtVector & localVelocity, const DtVector & localAcceleration,
128  const DtTaitBryan & localOrientation, const DtVector& rotationalVelocity,
129  double newHeading);
130 
131 
136  virtual double calculateMaxDecelerationFromFriction(
137  const DtVector& oldBodyVelocity);
138 
143  virtual double calculateMaxDecelerationFromBrake(double brake);
144 
149  virtual double calculateAccelerationFromEngine(double throttle,
151 
162  virtual double calculateDecelerationFromSoilType(
163  const DtVector& oldBodyVelocity);
164 
170  virtual double calculateAccelerationFromSlope(double slope);
171 
185  virtual void calculateOrientationAndPosition(
186  const DtVector& newLocalProjectedLocation, double newHeading,
187  DtDcm& newLocalOrientation, DtVector& newLocalPosition);
188 
194  virtual bool useHighFidelityGroundClamping() const;
195 
207  bool groundClamp(double heading, const DtVector& location,
208  DtAttachedTerrain& terrain, DtVector& newNormal, bool& dataAvailable);
209 
214  void groundClampHighFidelity(double heading, const DtVector& location,
215  DtAttachedTerrain& terrain, DtVector& newNormal, bool& dataAvailable);
216 
222  void groundClampLowFidelity(double heading, const DtVector& location,
223  DtAttachedTerrain& terrain, DtVector& newNormal, bool& dataAvailable);
224 
229  virtual double calculateHeading(double oldHeading,
230  const DtVector& oldBodyVelocity, DtAutoTransmissionGear gear,
231  double steering, double throttle, double dT);
232 
240  virtual DtVector calculateBodyAcceleration(double throttle,
241  DtAutoTransmissionGear gear, double brake,
242  const DtVector& oldBodyVelocity, double oldPitch, double dT);
243 
244  virtual DtVector calculateBodyVelocity(
245  const DtVector& oldBodyVelocity, const DtVector& newBodyAcceleration,
246  double dT);
247 
248  virtual DtVector calculateProjectedLocation(
249  const DtVector& oldLocalPosition, const DtVector& newBodyAcceleration,
250  const DtVector& oldBodyVelocity, double newHeading);
251 
260  virtual bool checkForTerrainCollisions() const;
261 
267  virtual bool foundTerrainCollision(double heading,
268  const DtVector& oldLocalPosition,
269  const DtVector& newLocalPosition,
270  DtChordIntersectionRecord
271  &collisionIntersectionRecord) const;
272 
282  virtual bool createMovementChord(DtChord& movementChord,
283  double heading,
284  const DtVector& oldLocalPosition,
285  const DtVector& newLocalPosition) const;
286 
291  virtual bool terrainPassable(double heading,
292  const DtChordIntersectionRecord&
293  terrainIntersectionRecord) const;
294 
295 
297  virtual double calculateMaxSpeed();
298 
301  virtual double calculateMaxAcceleration();
302 
306  virtual DtVector calculateRotationalVelocity(
307  const DtDcm& newOrientation,
308  const DtDcm& oldOrientation, double dT);
309 
314  virtual double calculatePitch(const DtVector& localPosition, double heading,
315  const DtAttachedTerrain& terrain);
316 
320  virtual void calculateDirectionOfLinearMotion(
321  const DtDcm& newLocalOrientation, const DtVector& newLocalPosition,
322  DtDcm& newLocalDirectionOfLinearMotion);
323 
327  virtual double getPitchAdjustedMaxSpeed(double maxSpeed, double pitch) const;
328 
330  virtual bool createPortGroups();
331 
333  virtual bool createPorts();
334 
340  virtual bool createPSR();
341 
345  virtual bool rotationalVelocityShouldBeClamped(const DtVector&
346  bodyRotationalVelocity);
347 
349  virtual double steeringControlValue() const;
351  virtual double throttleControlValue() const;
353  virtual double brakeControlValue() const;
355  virtual DtAutoTransmissionGear gearControlValue() const;
357  virtual bool parkingBrakeControlValue() const;
358 
359 private:
362 
365 
369 
370 protected:
371 
374 
381 
388 
395 
402 
409 
414 
416 
418 
422 
426 
428 };
429 

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)