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(
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;
214 virtual bool checkBlockedByTerrain(
const DtVector& oldLocalPosition,
215 DtVector& newLocalProjectedLocation);
222 virtual double maxUprightTerrainPitch()
const;
228 virtual double maxWalkingSpeed()
const;
231 virtual void initializeStaticToDynamicPostureMap();
234 virtual bool computeEntityDirOfMovement(
double& heading)
const;
238 virtual double calculateTerrainPitch(
const DtVector& localPosition,
259 virtual bool getSurfacesBelow(
const DtVector& testPosition,
260 double underWaterLimit,
267 virtual bool closestSurfaceAbove(
const DtVector& testPosition,
274 virtual bool isWater(
const DtSurface & surface);
276 static void setHeadingCallback(
DtSimMessage * msg,
void * usr);
281 virtual void calculateOrientationAndPositionCrawling(
282 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
283 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
285 virtual void groundClamp(
double heading,
288 virtual void calculateDirectionOfLinearMotion(
289 const DtDcm& newLocalOrientation,
double desiredDirectionOfMovement,
const DtVector& newLocalPosition,
290 DtDcm& newLocalDirectionOfLinearMotion);
301 virtual void groundClampLowFidelity(
double heading,