45 typedef std::map<DtLifeformStaticPosture, DtLifeformState>
66 virtual const char*
type()
const;
84 virtual double calculateMaxSpeed()
const;
86 virtual double maxSpeedSoilFactor()
const;
88 virtual DtVector calculateProjectedLocation(
90 double newHeading,
double dt = -1);
105 virtual void calculateOrientationAndPosition(
106 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
107 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
111 virtual double stepUpFractionLimit()
const;
115 virtual double underWaterFraction()
const;
141 virtual double altitudeForNoTerrainBelow(
double projectedPointAlt,
143 double surfacePointAlt)
const;
153 virtual double altitudeForDropToSurface(
double projectedPointAlt,
155 double surfacePointAlt)
const;
160 virtual double altitudeForNearbySurface(
double projectedPointAlt,
162 double surfacePointAlt)
const;
175 virtual double altitudeForNoSurface(
double projectedPointAlt,
180 virtual void updateRepository(
const DtVector & position,
182 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
188 virtual void computeAndSetPosture();
208 virtual bool checkForTerrainCollisions()
const;
212 virtual bool checkForEntityCollisions()
const;
221 virtual bool checkBlockedByTerrain(
const DtVector& oldLocalPosition,
222 DtVector& newLocalProjectedLocation,
double heightFraction = -1.0);
224 virtual bool checkBlockedByEntities(
const DtVector& oldLocalPosition,
225 DtVector& newLocalProjectedLocation);
236 virtual DtChord movementChordAtHeight(
const DtVector& oldLocalPosition,
const DtVector& newLocalProjectedLocation,
237 double heightFraction,
DtVector& intersectionVec,
DtVector& offsetFromOldPosition);
244 virtual double maxUprightTerrainPitch()
const;
250 virtual double maxWalkingSpeed()
const;
253 virtual void initializeStaticToDynamicPostureMap();
256 virtual bool computeEntityDirOfMovement(
double& heading)
const;
260 virtual double calculateTerrainPitch(
const DtVector& localPosition,
281 virtual bool getSurfacesBelow(
const DtVector& testPosition,
282 double underWaterLimit,
289 virtual bool closestSurfaceAbove(
const DtVector& testPosition,
296 virtual bool isWater(
const DtSurface & surface);
298 static void setHeadingCallback(
DtSimMessage * msg,
void * usr);
303 virtual void calculateOrientationAndPositionCrawling(
304 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
305 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
307 virtual void groundClamp(
double heading,
310 virtual void calculateDirectionOfLinearMotion(
311 const DtDcm& newLocalOrientation,
double desiredDirectionOfMovement,
const DtVector& newLocalPosition,
312 DtDcm& newLocalDirectionOfLinearMotion);
323 virtual void groundClampLowFidelity(
double heading,
329 virtual bool checkAndDisembarkIfEmbarked(
const DtVector& localPosition);
333 virtual bool checkIfMoveOntoEmbarked(
const DtVector& localPosition);