53 virtual void addAnimationChange(
int row,
int change,
const DtVector& vector,
const DtTaitBryan& orientation,
double timeDelta);
62 const DtString& rwName = DtString::nullString(),
67 const DtString& rwName = DtString::nullString(),
78 virtual void setTimeScale(
double d);
79 virtual double timeScale()
const;
85 virtual void setReferencePoint(
const DtVector&);
86 virtual DtVector referencePoint()
const;
92 virtual void setReferenceOrientation(
const DtTaitBryan&);
93 virtual DtTaitBryan referenceOrientation()
const;
100 virtual void setReferenceObject(
const DtString&);
101 virtual const DtString& referenceObject()
const;
106 virtual void setForceAutomaticOrientation(
bool forceAuto);
107 virtual const bool forceAutomaticOrientation()
const;
113 virtual void setMoveOutHeading(
double);
114 virtual double moveOutHeading()
const;
119 virtual void setScriptedMovementFile(
const DtString&);
120 virtual const DtString& scriptedMovementFile()
const;
132 virtual void setClampType(
int);
133 virtual int clampType()
const;
143 virtual void setCompletionRule(
int);
144 virtual int completionRule()
const;
150 virtual void setFileConfiguration(
const DtString&);
151 virtual const DtString& fileConfiguration()
const;
156 virtual double calculateOrientation(
int frame,
double dt, DtTaitBryan&,
DtVector& rotationalVelocity)
const;
159 virtual DtVector calculateLocation(
int frame)
const;
163 virtual void calculateSpeed(
int frame,
double dt,
DtVector& velocity)
const;
166 virtual DtVector targetPosition()
const;
169 virtual DtVector localReferencePosition()
const;
172 virtual DtTaitBryan targetOrientation()
const;
178 virtual DtVector bodyOffsetVector(
int frame)
const;
181 virtual DtTaitBryan orientationOffset(
int frame)
const;
185 virtual DtVector groundClampHighFidelity(
const DtVector& location,
double heading, DtTaitBryan& newLocalOrienationTb)
const;
188 virtual DtVector velocityForFrame(
int frame,
double dt)
const;
191 virtual DtVector calculateRotationalVelocity(
int frame,
double dt)
const;
194 virtual DtVector calculateRotationalVelocity(
const DtTaitBryan& currentFrame,
int frame,
double dt)
const;
200 virtual DtTaitBryan orientationForFrame(
int frame,
double& heading)
const;
203 virtual bool canBeAnimated()
const;
207 virtual int animationRow(
double,
int frameHint = 0)
const;
210 virtual int animationRows()
const;
213 virtual double deltaTimeForFrame(
int frame)
const;
216 virtual void resetAnimationVariables();
219 virtual void reset();
222 virtual void setupForAnimation();
225 virtual double simulationTime(
int)
const;
228 virtual void setFrameTime(
double);
232 virtual double frameTime()
const;
235 virtual void setAnimationFrame(
int);
236 virtual int animationFrame()
const;
239 virtual void setNeedsSetup(
bool);
240 virtual bool needsSetup()
const;
244 virtual bool simulate(
double simulateFor,
DtVector& newLocation, DtTaitBryan& newOrientation,
245 DtVector& newVelocity,
DtVector& newRotationalVelocity,
bool debug =
false);
248 virtual void setElapsedAnimationTime(
double);
249 virtual double elapsedAnimationTime()
const;
253 virtual void setTransitionSpeed(
double);
254 virtual double transitionSpeed()
const;
261 virtual int setObjectOffsetLocation(
int row,
const DtVector&);
265 virtual int setObjectOffsetOrientation(
int row,
const DtTaitBryan&);
268 virtual void setTimeDeltaFromPreviousRow(
int forRow,
double timeDelta);
274 virtual int addAnimationRow(
double deltaTime,
double lateral,
double range,
double altitude,
275 double headingOffset = 0,
double pitchOffset = 0,
double rollOffset = 0);
278 virtual void removeRow(
int);
287 virtual int frameToTravelSpeed(
int base,
double speed)
const;
290 virtual double dT()
const;
293 virtual double lastSimulationTime()
const;
296 virtual bool isFinished()
const;
302 void createDeadReckoner();
305 static void objectAboutToBeRemovedCallback(
DtVrfObject*
object,
void* usr);
306 virtual void processObjectAboutToBeRemoved(
DtVrfObject*);
308 static void objectAddedCallback(
DtVrfObject*
object,
void* usr);
309 virtual void processObjectAddedCallback(
DtVrfObject*);
312 virtual void putSelf(FILE *fp,
int indentLevel,
bool writeUnspecified,
313 const DtFilename& path);
320 virtual void initializeReferenceObject();
323 virtual int nextFrameToMaintainSpeed(
int frame,
double speed)
const;
326 virtual void deadReckon(
double overTime,
DtVector& newWorldLocation,
327 DtTaitBryan& newLocalOrientation,
DtVector& newVelocity,
328 DtVector& newRotationalVelocity)
const;
357 vector(orig.vector), orientation(orig.orientation), timeDelta(orig.timeDelta) {};