![]() |
VR-Forces 5.0.3 Developer's Guide
|
The DtAnimationModel class will contain the interface allow for animated movement via an external file or points added to the class. This class will also be able to read/write itself from a file. If there is data read from a file, any points added or replaced in that file will be written out as a delta to the file.

Classes | |
| class | AnimationChange |
| class | AnimationChangeList |
| struct | LocalAnimationChange |
Public Member Functions | |
| DtAnimationModel (DtLocalObject *, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) | |
| DtAnimationModel (const DtAnimationModel &orig, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) | |
| DtAnimationModel & | operator= (const DtAnimationModel &orig) |
| virtual | ~DtAnimationModel () |
| virtual double | calculateOrientation (int frame, double dt, DtTaitBryan &, DtVector &rotationalVelocity) const |
| virtual DtVector | calculateLocation (int frameA, int frameB=-1, double timePastFrameA=0) const |
| virtual void | calculateSpeed (int frame, DtVector &velocity) const |
| virtual DtVector | targetPosition () const |
| virtual DtVector | localReferencePosition () const |
| virtual DtTaitBryan | targetOrientation () const |
| virtual DtVector | groundClamp (const DtVector &) const |
| virtual DtVector | bodyOffsetVector (int frame) const |
| virtual DtTaitBryan | orientationOffset (int frame) const |
| virtual bool | groundClampHighFidelity (const DtVector &location, double heading, DtTaitBryan &newLocalOrienationTb, DtVector &newLocalLocation) const |
| virtual DtVector | velocityForFrame (int frame) const |
| virtual DtVector | calculateRotationalVelocity (int frame, double dt) const |
| virtual DtVector | calculateRotationalVelocity (const DtTaitBryan ¤tFrame, int frame) const |
| virtual DtVector | heightAdjustedLocation (const DtVector &) const |
| virtual DtTaitBryan | orientationForFrame (int frame, double &heading) const |
| virtual bool | canBeAnimated () const |
| virtual int | animationRow (double, int frameHint=0) const |
| virtual int | animationRows () const |
| virtual double | deltaTimeForFrame (int frame) const |
| virtual void | resetAnimationVariables () |
| virtual void | reset () |
| virtual bool | setupForAnimation () |
| virtual double | simulationTime (int) const |
| virtual void | setFrameTime (double) |
| virtual double | frameTime () const |
| virtual void | setAnimationFrame (int) |
| virtual int | animationFrame () const |
| virtual void | setNeedsSetup (bool) |
| virtual bool | needsSetup () const |
| virtual bool | simulate (double simulateFor, DtVector &newLocation, DtTaitBryan &newOrientation, DtVector &newVelocity, DtVector &newRotationalVelocity, bool debug=false) |
| virtual void | setElapsedAnimationTime (double) |
| virtual double | elapsedAnimationTime () const |
| virtual void | setTransitionSpeed (double) |
| virtual double | transitionSpeed () const |
| virtual void | setEntity (DtLocalObject *) |
| virtual const DtLocalObject * | entity () const |
| virtual DtLocalObject * | entity () |
| virtual const char * | readerWriterType () const |
| virtual int | frameToTravelSpeed (int base, double speed) const |
| virtual double | lastSimulationTime () const |
| virtual bool | isFinished () const |
| virtual void | setTimeScale (double d) |
| virtual double | timeScale () const |
| virtual void | setReferencePoint (const DtVector &) |
| virtual DtVector | referencePoint () const |
| virtual void | setReferenceOrientation (const DtTaitBryan &) |
| virtual DtTaitBryan | referenceOrientation () const |
| virtual void | setTarget (const DtUUID &) |
| virtual DtSimObjectReference | target () const |
| virtual void | setForceAutomaticOrientation (bool forceAuto) |
| virtual const bool | forceAutomaticOrientation () const |
| virtual void | setMoveOutHeading (double) |
| virtual double | moveOutHeading () const |
| virtual void | setScriptedMovementFile (const DtString &) |
| virtual const DtString & | scriptedMovementFile () const |
| virtual void | setClampType (int) |
| virtual int | clampType () const |
| virtual void | setCompletionRule (int) |
| virtual int | completionRule () const |
| virtual void | setSpeedNegated (bool enable) |
| virtual bool | isSpeedNegated () const |
| virtual void | setFileConfiguration (const DtString &) |
| virtual const DtString & | fileConfiguration () const |
| virtual int | setObjectOffsetLocation (int row, const DtVector &) |
| virtual int | setObjectOffsetOrientation (int row, const DtTaitBryan &) |
| virtual void | setTimeDeltaFromPreviousRow (int forRow, double timeDelta) |
| virtual int | addAnimationRow (double deltaTime, double lateral, double range, double altitude, double headingOffset=0, double pitchOffset=0, double rollOffset=0) |
| virtual void | removeRow (int) |
Public Member Functions inherited from DtReaderWriter | |
| DtReaderWriter () | |
| DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) | |
| DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) | |
| DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL) | |
| const DtReaderWriter & | operator= (const DtReaderWriter &orig) |
| bool | operator== (const DtReaderWriter &) const |
| bool | operator!= (const DtReaderWriter &rhs) |
| virtual | ~DtReaderWriter () |
| virtual void | postPutSelf () |
| virtual void | prePutSelf () |
| virtual void | postGetSelf () |
| virtual void | preGetSelf () |
| virtual void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| virtual DtSymbolString | name () const |
| virtual void | addAlias (const DtSymbolString &alias) |
| virtual void | addAlias (const DtString &alias) |
| virtual bool | hasAlias (const DtSymbolString &alias) |
| virtual const aliasContainer & | aliases () const |
| virtual void | setReadonly (bool flag) |
| bool | isReadonly () const |
| virtual int | alignment () const |
| virtual bool | variableIsBound () const |
| virtual void | unbindVariable () |
| virtual void | setName (const DtString &) |
| virtual const char * | xmlType () const |
| virtual DtString | prettyPrint () const |
| std::string | debugText () const |
| virtual void | bindVariables (DtVariableBindingsList variableBindings) |
| virtual std::list < DtVariableNameType > | unboundVariables () const |
| bool | invalid () const |
| virtual bool | hasChild (const DtReaderWriter *p) const |
| virtual bool | hasVariableReference () const |
| virtual void | bindLocalVariables (const DtVariableBindingsList &variableBindings) |
| virtual void | recordUpdateTime () const |
| virtual bool | wasUpdatedSince (DtTime t) const |
| virtual bool | changedSinceLastChecked () |
| virtual bool | peekChangedSinceLastChecked () const |
| virtual void | putData (std::string &fp, int indentLevel=0) |
| virtual DtlObjPtr | getData (DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| virtual void | setValueSpecified (bool specified, bool recurse=false) |
| virtual bool | valueSpecified () const |
| virtual bool | isVariableReference () const |
| virtual void | setIsVariableReference (bool value) |
| virtual void | clearAllVariableReferenceFlags () |
| virtual DtSymbolString | variableName () const |
| virtual void | setVariableName (const DtSymbolString variableName) |
| virtual const DtReaderWriter * | defaultRWValue () const |
| virtual DtReaderWriter * | defaultRWValue () |
| virtual void | setDefaultRWValue (DtReaderWriter *) |
| virtual bool | checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| const DtReaderWriterRegistry & | registry () const |
| DtReaderWriterRegistry & | registry () |
| virtual DtPropertyInterface * | property () |
| virtual const DtPropertyInterface * | property () const |
| virtual DtString | toXml () const |
| virtual DtRwVariableBindings * | generateVariableBindings () const |
| virtual bool | toXml (const DtFilename &) const |
| virtual bool | fromXml (const DtString &) |
| virtual bool | fromXmlFile (const DtFilename &) |
| virtual void | putSelf (DtEnvironmentSP, DtEnvValueSP parent) const |
| virtual void | putData (DtEnvironmentSP, DtEnvValueSP value) const |
| virtual void | putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const |
| virtual void | getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| virtual void | getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| virtual void | getVariableReference (DtEnvironmentSP, DtEnvValueSP value) |
Protected Types | |
| typedef std::map< int, LocalAnimationChange > | AnimationChanges |
Protected Member Functions | |
| void | createDeadReckoner () |
| virtual void | processObjectAboutToBeRemoved (const DtSimObject *) |
| virtual void | putSelf (std::string &fp, int indentLevel, bool writeUnspecified, const DtFilename &path) |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| virtual void | initializeReferenceObject () |
| virtual int | nextFrameToMaintainSpeed (int frame, double speed) const |
| virtual void | deadReckon (double overTime, DtVector &newWorldLocation, DtTaitBryan &newLocalOrientation, DtVector &newVelocity, DtVector &newRotationalVelocity) const |
Protected Member Functions inherited from DtReaderWriter | |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
|
protected |
Map, by row, of changes to the animation file. When read back in will be applied to the movement file.
| DtAnimationModel::DtAnimationModel | ( | DtLocalObject * | , |
| const DtString & | rwName = DtString::nullString(), |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
Constructor.
| DtAnimationModel::DtAnimationModel | ( | const DtAnimationModel & | orig, |
| const DtString & | rwName = DtString::nullString(), |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
Copy constructor.
|
virtual |
Destructor.
| DtAnimationModel& DtAnimationModel::operator= | ( | const DtAnimationModel & | orig | ) |
Assignment Operator.
|
virtual |
Sets the time scale to apply to the time entries in the animation file. Default is 1.0.
|
virtual |
Sets the time scale to apply to the time entries in the animation file. Default is 1.0.
|
virtual |
If target point is not specified, then use this as the reference point for adding locations to. Location is in geocentric.
|
virtual |
If target point is not specified, then use this as the reference point for adding locations to. Location is in geocentric.
|
virtual |
If target point is not specified, then use this as the reference orientation. Orientation is in geocentric.
|
virtual |
If target point is not specified, then use this as the reference orientation. Orientation is in geocentric.
|
virtual |
If this is defined, this will act as the point to base the reference of the data points in the movement file around. If not defined, or the object does not exist, the referencePoint() will be used Was: setTargetPoint.
|
virtual |
Was: targetPoint.
|
virtual |
Indicates if explicit orientation present in the animation model should be ignored. Default false.
|
virtual |
Indicates if explicit orientation present in the animation model should be ignored. Default false.
|
virtual |
If the orientation is not defined and there is no reference object, this will be used as the heading to rotate the animation points around. Default is 0.
|
virtual |
If the orientation is not defined and there is no reference object, this will be used as the heading to rotate the animation points around. Default is 0.
|
virtual |
The csv file that contains the animation.
|
virtual |
The csv file that contains the animation.
|
virtual |
Sets the clamping type to apply to locations 1 - Clamp high fidelity (includes orientation clamp) 2 - Clamp low fidelity 3 - Z value in data file is height above terrain 4 - No change, using geodetic height interpretation 5 - Conditional ground clamping (clamp if there is no defined altitude change) 6 - Phased radar face cartesian (no clamping, topographic height interpretation, uses lateral positive left) 7 - No change, using topographic height interpretation.
|
virtual |
Sets the clamping type to apply to locations 1 - Clamp high fidelity (includes orientation clamp) 2 - Clamp low fidelity 3 - Z value in data file is height above terrain 4 - No change, using geodetic height interpretation 5 - Conditional ground clamping (clamp if there is no defined altitude change) 6 - Phased radar face cartesian (no clamping, topographic height interpretation, uses lateral positive left) 7 - No change, using topographic height interpretation.
|
virtual |
Sets what happens when the animation is complete. Default is 3 1 - Detonate 2 - Detonate and remove 3 - Remove 4 - Stay around at current speed 5 - Stay around and stop.
|
virtual |
Sets what happens when the animation is complete. Default is 3 1 - Detonate 2 - Detonate and remove 3 - Remove 4 - Stay around at current speed 5 - Stay around and stop.
|
virtual |
Indicates whether the speed values computed from the animation should be negated before use. Speeds computed in ::simulate() are always positive, but for certain types of movement (eg. climbing down a ladder), the speed value should be negated so it can be handled correctly. This flag allows scripts to indicate to the sim that this negation should take place.
|
virtual |
Indicates whether the speed values computed from the animation should be negated before use. Speeds computed in ::simulate() are always positive, but for certain types of movement (eg. climbing down a ladder), the speed value should be negated so it can be handled correctly. This flag allows scripts to indicate to the sim that this negation should take place.
|
virtual |
Sets the string that represents the configuration of the csv file. This will be used to populate a DtScriptedMovementFileConfiguration.
|
virtual |
Sets the string that represents the configuration of the csv file. This will be used to populate a DtScriptedMovementFileConfiguration.
|
virtual |
Returns a new heading. Orientation returned is in local coordinate system. Returns the rotational velocity to get from the supplied frame to the next frame as referenced by dt.
|
virtual |
Returns location in geocentric.
Calculates velocity in local coordinates for transitioning the object from the given frame to the next frame.
|
virtual |
Returns reference point for the animation in geocentric coordinates.
|
virtual |
Returns the reference point for the animation in local coordinates.
|
virtual |
Returns the reference orientation in geocentric coordinate system.
Expects and returns geocentric vector clamped to the terrain.
Returns the body offset vector at the given frame.
|
virtual |
Returns the offset orientation at the given frame.
|
virtual |
Ground clamps for three points, given geocentric location and topographic heading. Will also calculate new orientation and location and return in local coordinates. Returns true if terrain data was available to perform clamping, false otherwise.
Returns the velocity for the given frame in local database coordinates.
|
virtual |
Calculates the rotational velocity for the entity from the given frame to the next frame as bounded by dt.
|
virtual |
Calculates rotational velocity given the supplied local orientation to the orientation represented by the frame + delta time.
Adjusts location by bounding volume of entity. Input and output are in geocentric.
|
virtual |
Returns local orientation.
|
virtual |
Returns true if there is enough information to start calculation.
Given the simulation time, return the animation row that matches. Frame hint is where the iteration will start. If there is no match returns frameHint.
|
virtual |
Returns the number of rows in the animation model.
Returns the delta time to get to the next frame.
|
virtual |
Resets animation variables so model can be animated again.
|
virtual |
Resets animation variables and clears out movement file.
Reimplemented from DtReaderWriter.
|
virtual |
Sets initial values based on current entity object.
Returns the simulation time (scale adjusted) at the given animation row.
|
virtual |
Regardless of what time is set in the data file, allow each frame to only take this amount of time.
|
virtual |
Returns frame time as set by developer via setFrameTime else will return the time difference between frame 1 and frame 0.
|
virtual |
Sets the animation frame to start animating at.
|
virtual |
|
virtual |
True/false if the model still needs setup.
|
virtual |
|
virtual |
Simulates the animation for the give time. Returns true if calculations were made and results the calculated values in the supplied parameters. Will update current frame based on time simulated.
|
virtual |
The current elapsed total time of simulating.
|
virtual |
|
virtual |
Sets the speed to use to transition into this animation. Will skip over frames until the desired speed is met, speeding up the animation to get to that point. Speed is in meters/second and is only used if the calculation animation frame is 0.
|
virtual |
Routines for changing the animation table. Will change the actual source of the data and add a change object to be saved for future restore If the row is -1 or > than the number of rows will add to the end, else will replace current value. Value is in body coordinates.
If the row is -1 or > than the number of rows will add to the end, else will replace current value.
Sets the time delta for the current row from the previous row. Does not effect any other row.
|
virtual |
Adds a new data row into the system. The offsets are lateral distance, range and altitude distance from the entities starting position. The orientation is heading, pitch, roll from the starting orientation. If no time is given the current frame time is used or the last two frames (if they exist) difference will be used as the delta for the new frame. The row number of the newly added row is returned.
|
virtual |
Removes the current row.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Used to supply a string type that this reader writer type is. This can be used in place of dynamic-casting. Also used by the opd editor to determine which type of control to create.
Reimplemented from DtReaderWriter.
Returns the frame at which the distance travelled is the transition speed.
|
virtual |
Last amount of time simulated.
|
virtual |
Returns true if the animation is complete.
|
protected |
Creates a dead reckoner to update the location and orientation between animation frames.
|
protectedvirtual |
|
protectedvirtual |
Stash some internal variables before saving.
Reimplemented from DtReaderWriter.
|
protectedvirtual |
Refresh internal state after read in.
Reimplemented from DtReaderWriter.
|
protectedvirtual |
Looks up reference object.
|
protectedvirtual |
Returns the next frame (from the current one) that woul be needed to maintain the specified speed.
|
protectedvirtual |
Dead reckons values during in-between calc time.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |