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);
107 virtual void calculateOrientationAndPosition(
108 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
109 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
113 virtual double stepUpFractionLimit()
const;
117 virtual double underWaterFraction()
const;
143 virtual double altitudeForNoTerrainBelow(
double projectedPointAlt,
145 double surfacePointAlt)
const;
155 virtual double altitudeForDropToSurface(
double projectedPointAlt,
157 double surfacePointAlt)
const;
162 virtual double altitudeForNearbySurface(
double projectedPointAlt,
164 double surfacePointAlt)
const;
177 virtual double altitudeForNoSurface(
double projectedPointAlt,
182 virtual void updateRepository(
const DtVector & position,
184 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
190 virtual void computeAndSetPosture();
210 virtual bool checkForTerrainCollisions()
const;
214 virtual bool checkForEntityCollisions()
const;
223 virtual bool checkBlockedByTerrain(
const DtVector& oldLocalPosition,
224 DtVector& newLocalProjectedLocation,
double heightFraction = -1.0);
226 virtual bool checkBlockedByEntities(
const DtVector& oldLocalPosition,
227 DtVector& newLocalProjectedLocation);
238 virtual DtChord movementChordAtHeight(
const DtVector& oldLocalPosition,
const DtVector& newLocalProjectedLocation,
239 double heightFraction,
DtVector& intersectionVec,
DtVector& offsetFromOldPosition);
246 virtual double maxUprightTerrainPitch()
const;
252 virtual double maxWalkingSpeed()
const;
255 virtual void initializeStaticToDynamicPostureMap();
258 virtual bool computeEntityDirOfMovement(
double& heading)
const;
262 virtual double calculateTerrainPitch(
const DtVector& localPosition,
283 virtual bool getSurfacesBelow(
const DtVector& testPosition,
284 double underWaterLimit,
291 virtual bool closestSurfaceAbove(
const DtVector& testPosition,
298 virtual bool isWater(
const DtSurface & surface);
300 static void setHeadingCallback(
DtSimMessage * msg,
void * usr);
305 virtual void calculateOrientationAndPositionCrawling(
306 const DtVector& newLocalProjectedLocation,
double newHeading,
double newFacingOrientation,
307 DtDcm& newLocalOrientation, DtDcm& newLocalDirectionOfMovement,
DtVector& newLocalPosition);
309 virtual void groundClamp(
double heading,
312 virtual void calculateDirectionOfLinearMotion(
313 const DtDcm& newLocalOrientation,
double desiredDirectionOfMovement,
const DtVector& newLocalPosition,
314 DtDcm& newLocalDirectionOfLinearMotion);
325 virtual void groundClampLowFidelity(
double heading,
331 virtual bool checkAndDisembarkIfEmbarked(
const DtVector& localPosition);
335 virtual bool checkIfMoveOntoEmbarked(
const DtVector& localPosition);
337 virtual bool initializeAglPort();