54 virtual void addAnimationChange(
int row,
int change,
const DtVector& vector,
const DtTaitBryan& orientation,
double timeDelta);
63 const DtString& rwName = DtString::nullString(),
68 const DtString& rwName = DtString::nullString(),
79 virtual void setTimeScale(
double d);
80 virtual double timeScale()
const;
86 virtual void setReferencePoint(
const DtVector&);
87 virtual DtVector referencePoint()
const;
93 virtual void setReferenceOrientation(
const DtTaitBryan&);
94 virtual DtTaitBryan referenceOrientation()
const;
102 virtual void setTarget(
const DtUUID&);
110 virtual void setForceAutomaticOrientation(
bool forceAuto);
111 virtual const bool forceAutomaticOrientation()
const;
117 virtual void setMoveOutHeading(
double);
118 virtual double moveOutHeading()
const;
123 virtual void setScriptedMovementFile(
const DtString&);
124 virtual const DtString& scriptedMovementFile()
const;
136 virtual void setClampType(
int);
137 virtual int clampType()
const;
147 virtual void setCompletionRule(
int);
148 virtual int completionRule()
const;
154 virtual void setFileConfiguration(
const DtString&);
155 virtual const DtString& fileConfiguration()
const;
160 virtual double calculateOrientation(
int frame,
double dt, DtTaitBryan&,
DtVector& rotationalVelocity)
const;
163 virtual DtVector calculateLocation(
int frame)
const;
167 virtual void calculateSpeed(
int frame,
double dt,
DtVector& velocity)
const;
170 virtual DtVector targetPosition()
const;
173 virtual DtVector localReferencePosition()
const;
176 virtual DtTaitBryan targetOrientation()
const;
182 virtual DtVector bodyOffsetVector(
int frame)
const;
185 virtual DtTaitBryan orientationOffset(
int frame)
const;
190 virtual bool groundClampHighFidelity(
const DtVector& location,
double heading, DtTaitBryan& newLocalOrienationTb,
DtVector& newLocalLocation)
const;
193 virtual DtVector velocityForFrame(
int frame,
double dt)
const;
196 virtual DtVector calculateRotationalVelocity(
int frame,
double dt)
const;
199 virtual DtVector calculateRotationalVelocity(
const DtTaitBryan& currentFrame,
int frame,
double dt)
const;
205 virtual DtTaitBryan orientationForFrame(
int frame,
double& heading)
const;
208 virtual bool canBeAnimated()
const;
212 virtual int animationRow(
double,
int frameHint = 0)
const;
215 virtual int animationRows()
const;
218 virtual double deltaTimeForFrame(
int frame)
const;
221 virtual void resetAnimationVariables();
224 virtual void reset();
227 virtual void setupForAnimation();
230 virtual double simulationTime(
int)
const;
233 virtual void setFrameTime(
double);
237 virtual double frameTime()
const;
240 virtual void setAnimationFrame(
int);
241 virtual int animationFrame()
const;
244 virtual void setNeedsSetup(
bool);
245 virtual bool needsSetup()
const;
249 virtual bool simulate(
double simulateFor,
DtVector& newLocation, DtTaitBryan& newOrientation,
250 DtVector& newVelocity,
DtVector& newRotationalVelocity,
bool debug =
false);
253 virtual void setElapsedAnimationTime(
double);
254 virtual double elapsedAnimationTime()
const;
258 virtual void setTransitionSpeed(
double);
259 virtual double transitionSpeed()
const;
266 virtual int setObjectOffsetLocation(
int row,
const DtVector&);
270 virtual int setObjectOffsetOrientation(
int row,
const DtTaitBryan&);
273 virtual void setTimeDeltaFromPreviousRow(
int forRow,
double timeDelta);
279 virtual int addAnimationRow(
double deltaTime,
double lateral,
double range,
double altitude,
280 double headingOffset = 0,
double pitchOffset = 0,
double rollOffset = 0);
283 virtual void removeRow(
int);
291 virtual int frameToTravelSpeed(
int base,
double speed)
const;
294 virtual double dT()
const;
297 virtual double lastSimulationTime()
const;
300 virtual bool isFinished()
const;
306 void createDeadReckoner();
309 static void objectAboutToBeRemovedCallback(
DtVrfObject*
object,
void* usr);
310 virtual void processObjectAboutToBeRemoved(
DtVrfObject*);
313 virtual void putSelf(std::string& fp,
int indentLevel,
bool writeUnspecified,
314 const DtFilename& path);
321 virtual void initializeReferenceObject();
324 virtual int nextFrameToMaintainSpeed(
int frame,
double speed)
const;
327 virtual void deadReckon(
double overTime,
DtVector& newWorldLocation,
328 DtTaitBryan& newLocalOrientation,
DtVector& newVelocity,
329 DtVector& newRotationalVelocity)
const;
358 vector(orig.vector), orientation(orig.orientation), timeDelta(orig.timeDelta) {};