47 typedef std::map<DtLifeformStaticPosture, DtLifeformState>
68 virtual const char*
type()
const;
86 virtual double calculateMaxSpeed()
const;
88 virtual double maxSpeedSoilFactor()
const;
90 virtual DtVector calculateProjectedLocation(
92 double newHeading,
double dt = -1);
113 virtual void calculateOrientationAndPosition(
114 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
115 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
143 virtual void identifySupportSurfaceAndAltitude(
145 const double altOfTestPosition,
147 const double bodyHeight,
149 double& adjustedAltitude);
153 virtual double stepUpFractionLimit()
const;
157 virtual double underWaterFraction()
const;
164 virtual double dropSpeed()
const;
186 virtual double altitudeForNoTerrainBelow(
double projectedPointAlt,
188 double surfacePointAlt)
const;
204 virtual double altitudeForDropToSurface(
double projectedPointAlt,
206 double surfacePointAlt)
const;
217 virtual double altitudeForNearbySurface(
double projectedPointAlt,
219 double surfacePointAlt)
const;
232 virtual double altitudeForNoSurface(
double projectedPointAlt,
237 virtual void updateRepository(
const DtVector & position,
239 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
245 virtual void computeAndSetPosture();
265 virtual bool checkForTerrainCollisions()
const;
269 virtual bool checkForEntityCollisions()
const;
278 virtual bool checkBlockedByTerrain(
const DtVector& oldLocalPosition,
279 DtVector& newLocalProjectedLocation,
double heightFraction = -1.0);
281 virtual bool checkBlockedByEntities(
const DtVector& oldLocalPosition,
282 DtVector& newLocalProjectedLocation);
293 virtual DtChord movementChordAtHeight(
const DtVector& oldLocalPosition,
const DtVector& newLocalProjectedLocation,
294 double heightFraction,
DtVector& intersectionVec,
DtVector& offsetFromOldPosition);
301 virtual double maxUprightTerrainPitch()
const;
307 virtual double maxWalkingSpeed()
const;
310 virtual void initializeStaticToDynamicPostureMap();
313 virtual bool computeEntityDirOfMovement(
double& heading)
const;
317 virtual double calculateTerrainPitch(
const DtVector& localPosition,
340 virtual bool getSurfacesBelow(
const DtVector& testPosition,
341 double underWaterLimit,
344 bool& dataAvailable);
349 virtual bool closestSurfaceAbove(
const DtVector& testPosition,
356 virtual bool isWater(
const DtSurface & surface);
358 static void setHeadingCallback(
DtSimMessage * msg,
void * usr);
362 virtual bool checkAndDisembarkIfEmbarked(
const DtVector& localPosition);
366 virtual bool checkIfMoveOntoEmbarked(
const DtVector& localPosition);
368 virtual bool initializeAglPort();
374 virtual void calculateOrientationAndPositionCrawling(
375 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
376 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
378 virtual void groundClamp(
double heading,
381 virtual void calculateDirectionOfLinearMotion(
382 const DtDcm& newLocalOrientation,
double desiredDirectionOfMovement,
const DtVector& newLocalPosition,
383 DtDcm& newLocalDirectionOfLinearMotion);
389 virtual void groundClampLowFidelity(
double heading,