VR-Forces 4.1 Class Documentation
autoAct.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999 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;
31 class DtAttachedTerrain;
32 
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 
97  virtual bool disableControl();
98 
105  virtual void useFuel(double fuelUsed);
106 
112  virtual double fuelLeft() const;
113 
131  virtual void updateRepository(const DtVector & localPosition,
132  const DtVector & localVelocity, const DtVector & localAcceleration,
133  const DtTaitBryan & localOrientation, const DtVector& rotationalVelocity,
134  double newHeading);
135 
136 
141  virtual double calculateMaxDecelerationFromFriction(
142  const DtVector& oldBodyVelocity);
143 
148  virtual double calculateMaxDecelerationFromBrake(double brake);
149 
154  virtual double calculateAccelerationFromEngine(double throttle,
156 
167  virtual double calculateDecelerationFromSoilType(
168  const DtVector& oldBodyVelocity);
169 
175  virtual double calculateAccelerationFromSlope(double slope);
176 
190  virtual void calculateOrientationAndPosition(
191  const DtVector& newLocalProjectedLocation, double newHeading,
192  DtDcm& newLocalOrientation, DtVector& newLocalPosition);
193 
199  virtual bool useHighFidelityGroundClamping() const;
200 
212  bool groundClamp(double heading, const DtVector& location,
213  DtAttachedTerrain& terrain, DtVector& newNormal);
214 
219  void groundClampHighFidelity(double heading, const DtVector& location,
220  DtAttachedTerrain& terrain, DtVector& newNormal);
221 
227  void groundClampLowFidelity(double heading, const DtVector& location,
228  DtAttachedTerrain& terrain, DtVector& newNormal);
229 
234  virtual double calculateHeading(double oldHeading,
235  const DtVector& oldBodyVelocity, DtAutoTransmissionGear gear,
236  double steering, double throttle, double dT);
237 
245  virtual DtVector calculateBodyAcceleration(double throttle,
246  DtAutoTransmissionGear gear, double brake,
247  const DtVector& oldBodyVelocity, double oldPitch, double dT);
248 
249  virtual DtVector calculateBodyVelocity(
250  const DtVector& oldBodyVelocity, const DtVector& newBodyAcceleration,
251  double dT);
252 
253  virtual DtVector calculateProjectedLocation(
254  const DtVector& oldLocalPosition, const DtVector& newBodyAcceleration,
255  const DtVector& oldBodyVelocity, double newHeading);
256 
265  virtual bool checkForTerrainCollisions() const;
266 
272  virtual bool foundTerrainCollision(double heading,
273  const DtVector& oldLocalPosition,
274  const DtVector& newLocalPosition,
276  &collisionIntersectionRecord) const;
277 
287  virtual bool createMovementChord(DtChord& movementChord,
288  double heading,
289  const DtVector& oldLocalPosition,
290  const DtVector& newLocalPosition) const;
291 
296  virtual bool terrainPassable(double heading,
298  terrainIntersectionRecord) const;
299 
300 
302  virtual double calculateMaxSpeed();
303 
306  virtual double calculateMaxAcceleration();
307 
311  virtual DtVector calculateRotationalVelocity(
312  const DtDcm& newOrientation,
313  const DtDcm& oldOrientation, double dT);
314 
319  virtual double calculatePitch(const DtVector& localPosition, double heading,
320  const DtAttachedTerrain& terrain);
321 
325  virtual void calculateDirectionOfLinearMotion(
326  const DtDcm& newLocalOrientation, const DtVector& newLocalPosition,
327  DtDcm& newLocalDirectionOfLinearMotion);
328 
332  virtual double getPitchAdjustedMaxSpeed(double maxSpeed, double pitch) const;
333 
335  virtual bool createPortGroups();
336 
338  virtual bool createPorts();
339 
345  virtual bool createPSR();
346 
350  virtual bool rotationalVelocityShouldBeClamped(const DtVector&
351  bodyRotationalVelocity);
352 
354  virtual double steeringControlValue() const;
356  virtual double throttleControlValue() const;
358  virtual double brakeControlValue() const;
360  virtual DtAutoTransmissionGear gearControlValue() const;
362  virtual bool parkingBrakeControlValue() const;
363 
364 private:
367 
370 
374 
375 protected:
376 
379 
386 
393 
400 
407 
414 
419 
429 
431 
433 
437 
439 };
440 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)