VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
DtAnimationModel Class Reference

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.

Inheritance diagram for DtAnimationModel:
Inheritance graph
[legend]

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)
 
DtAnimationModeloperator= (const DtAnimationModel &orig)
 
virtual ~DtAnimationModel () override
 
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 &currentFrame, 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 () override
 
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 DtLocalObjectentity () const
 
virtual DtLocalObjectentity ()
 
virtual const charreaderWriterType () const override
 
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 DtStringscriptedMovementFile () 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 DtStringfileConfiguration () 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 DtReaderWriteroperator= (const DtReaderWriter &orig)
 
bool operator== (const DtReaderWriter &) const
 
bool operator!= (const DtReaderWriter &rhs) const
 
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 aliasContaineraliases () 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 charxmlType () 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 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 DtReaderWriterdefaultRWValue () const
 
virtual DtReaderWriterdefaultRWValue ()
 
virtual void setDefaultRWValue (DtReaderWriter *)
 
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
const DtReaderWriterRegistryregistry () const
 
DtReaderWriterRegistryregistry ()
 
virtual DtPropertyInterfaceproperty ()
 
virtual const DtPropertyInterfaceproperty () const
 
virtual DtString toXml () const
 
virtual DtRwVariableBindingsgenerateVariableBindings () 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) override
 
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override
 
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 Attributes

DtMovementFile myMovementFile
 
DtLocalObjectmyEntity
 
DtRwReal myTimeScale
 
DtRwVector myReferencePoint
 
DtRwTaitBryan myReferenceOrientation
 
DtRwSimObjectReference myTarget
 
DtRwReal myMoveOutHeading
 
DtRwString myScriptedMovementFile
 
DtRwInt myClampType
 
DtRwInt myCompletionRule
 
DtRwBoolean mySpeedNegatedFlag
 
DtRwString myFileConfiguration
 
DtRwReal myFrameTime
 
DtRwInt myAnimationFrame
 
DtRwBoolean myLastFrameWasAnimated
 
DtRwReal myTransitionSpeed
 
DtRwReal myElapsedAnimationTime
 
DtRwReal myLastAnimationFrameTime
 
DtRwBoolean myForceAutomaticOrientation
 
AnimationChanges myAnimationChanges
 
DtTaitBryan myLastOrientation
 
DtVector myLastLocation
 
DtVector myLastRotationalVelocity
 
DtVector myLastRelativeVelocity
 
DtVector myLastVelocity
 
DtVector myOriginalLocation
 
DtTaitBryan myOriginalOrientation
 
double myLastSimulationTime
 
DtRwBoolean myNeedsSetup
 
DtDeadReckoner * myDeadReckoner
 
bool myIsEmbarked
 
boost::signals2::scoped_connection myDeleteObjectConnection
 
DtMovementLocalObjectFacademyMovementLocalObjectFacade
 
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
 
DtReaderWriterRegistry myRegistry
 
DtReaderWriterRegistrymyParentRegistry
 
bool myValueSpecified
 
bool myReadOnlyFlag
 
bool myIsVariableReference
 
DtSymbolString myVariableName
 
bool myVariableIsBound
 
DtReaderWritermyDefaultValue
 
aliasContainer myAliases
 
bool myInvalid
 
bool myChangedFlag
 

Additional Inherited Members

- Public Types inherited from DtReaderWriter
typedef std::vector
< DtSymbolString
aliasContainer
 
typedef std::vector
< DtSymbolString >::iterator 
aliasIter
 
typedef std::vector
< DtSymbolString >
::const_iterator 
aliasConstIter
 
typedef std::vector< DtFilename > SearchPaths
 
typedef std::pair
< DtSymbolString, DtString
DtVariableNameType
 
typedef DtReaderWriterFactory *(* DtReaderWriterFactoryCreatorFcn )()
 
- Static Public Member Functions inherited from DtReaderWriter
static void putIndent (std::string &fp, int indentLevel)
 
static const
DtVariableBindingsList
nullVariableReference ()
 
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
 
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
 
static void setPutIndent (bool)
 
static bool putIndent ()
 
static const chartheXmlType ()
 
static const DtFilename & appPath ()
 
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 
static void createReaderWriterFactory ()
 
static void cleanupFactory ()
 
static DtReaderWriterFactoryfactory ()
 
static void setOutputStream (DtOutputStream *stream)
 
static DtOutputStream & outputStream ()
 
static DtReaderWritercreateFromXmlFile (const DtFilename &, bool createAsProperty=false)
 
static DtReaderWritercreateFromXml (const DtString &, bool createAsProperty=false)
 
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP, bool createAsProperty=false)
 
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 
- Static Protected Attributes inherited from DtReaderWriter
static DtString theUnspecifiedValue
 
static DtGetSelfCallbackInfo thePostGetSelfCallback
 
static DtPutSelfCallbackInfo thePrePutSelfCallback
 
static const DtVariableBindingsList theEmptyVariableBindingsList
 
static bool theCreatorFcnSet
 
static DtReaderWriterFactorytheFactory
 
static
DtReaderWriterFactoryCreatorFcn 
theFactoryCreatorFcn
 
static bool thePutIndent
 
static DtOutputStream * theOutputStream
 

Member Typedef Documentation

Map, by row, of changes to the animation file. When read back in will be applied to the movement file.

Constructor & Destructor Documentation

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 DtAnimationModel::~DtAnimationModel ( )
overridevirtual

Destructor.

Member Function Documentation

DtAnimationModel& DtAnimationModel::operator= ( const DtAnimationModel orig)

Assignment Operator.

virtual void DtAnimationModel::setTimeScale ( double  d)
virtual

Sets the time scale to apply to the time entries in the animation file. Default is 1.0.

virtual double DtAnimationModel::timeScale ( ) const
virtual

Sets the time scale to apply to the time entries in the animation file. Default is 1.0.

virtual void DtAnimationModel::setReferencePoint ( const DtVector &  )
virtual

If target point is not specified, then use this as the reference point for adding locations to. Location is in geocentric.

virtual DtVector DtAnimationModel::referencePoint ( ) const
virtual

If target point is not specified, then use this as the reference point for adding locations to. Location is in geocentric.

virtual void DtAnimationModel::setReferenceOrientation ( const DtTaitBryan &  )
virtual

If target point is not specified, then use this as the reference orientation. Orientation is in geocentric.

virtual DtTaitBryan DtAnimationModel::referenceOrientation ( ) const
virtual

If target point is not specified, then use this as the reference orientation. Orientation is in geocentric.

virtual void DtAnimationModel::setTarget ( const DtUUID )
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 DtSimObjectReference DtAnimationModel::target ( ) const
virtual

Was: targetPoint.

virtual void DtAnimationModel::setForceAutomaticOrientation ( bool  forceAuto)
virtual

Indicates if explicit orientation present in the animation model should be ignored. Default false.

virtual const bool DtAnimationModel::forceAutomaticOrientation ( ) const
virtual

Indicates if explicit orientation present in the animation model should be ignored. Default false.

virtual void DtAnimationModel::setMoveOutHeading ( double  )
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 double DtAnimationModel::moveOutHeading ( ) const
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 void DtAnimationModel::setScriptedMovementFile ( const DtString )
virtual

The csv file that contains the animation.

virtual const DtString& DtAnimationModel::scriptedMovementFile ( ) const
virtual

The csv file that contains the animation.

virtual void DtAnimationModel::setClampType ( int  )
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 int DtAnimationModel::clampType ( ) const
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 void DtAnimationModel::setCompletionRule ( int  )
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 int DtAnimationModel::completionRule ( ) const
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 void DtAnimationModel::setSpeedNegated ( bool  enable)
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 bool DtAnimationModel::isSpeedNegated ( ) const
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 void DtAnimationModel::setFileConfiguration ( const DtString )
virtual

Sets the string that represents the configuration of the csv file. This will be used to populate a DtScriptedMovementFileConfiguration.

virtual const DtString& DtAnimationModel::fileConfiguration ( ) const
virtual

Sets the string that represents the configuration of the csv file. This will be used to populate a DtScriptedMovementFileConfiguration.

virtual double DtAnimationModel::calculateOrientation ( int  frame,
double  dt,
DtTaitBryan &  ,
DtVector &  rotationalVelocity 
) const
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 DtVector DtAnimationModel::calculateLocation ( int  frameA,
int  frameB = -1,
double  timePastFrameA = 0 
) const
virtual

Returns location in geocentric.

virtual void DtAnimationModel::calculateSpeed ( int  frame,
DtVector &  velocity 
) const
virtual

Calculates velocity in local coordinates for transitioning the object from the given frame to the next frame.

virtual DtVector DtAnimationModel::targetPosition ( ) const
virtual

Returns reference point for the animation in geocentric coordinates.

virtual DtVector DtAnimationModel::localReferencePosition ( ) const
virtual

Returns the reference point for the animation in local coordinates.

virtual DtTaitBryan DtAnimationModel::targetOrientation ( ) const
virtual

Returns the reference orientation in geocentric coordinate system.

virtual DtVector DtAnimationModel::groundClamp ( const DtVector &  ) const
virtual

Expects and returns geocentric vector clamped to the terrain.

virtual DtVector DtAnimationModel::bodyOffsetVector ( int  frame) const
virtual

Returns the body offset vector at the given frame.

virtual DtTaitBryan DtAnimationModel::orientationOffset ( int  frame) const
virtual

Returns the offset orientation at the given frame.

virtual bool DtAnimationModel::groundClampHighFidelity ( const DtVector &  location,
double  heading,
DtTaitBryan &  newLocalOrienationTb,
DtVector &  newLocalLocation 
) const
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.

virtual DtVector DtAnimationModel::velocityForFrame ( int  frame) const
virtual

Returns the velocity for the given frame in local database coordinates.

virtual DtVector DtAnimationModel::calculateRotationalVelocity ( int  frame,
double  dt 
) const
virtual

Calculates the rotational velocity for the entity from the given frame to the next frame as bounded by dt.

virtual DtVector DtAnimationModel::calculateRotationalVelocity ( const DtTaitBryan &  currentFrame,
int  frame 
) const
virtual

Calculates rotational velocity given the supplied local orientation to the orientation represented by the frame + delta time.

virtual DtVector DtAnimationModel::heightAdjustedLocation ( const DtVector &  ) const
virtual

Adjusts location by bounding volume of entity. Input and output are in geocentric.

virtual DtTaitBryan DtAnimationModel::orientationForFrame ( int  frame,
double heading 
) const
virtual

Returns local orientation.

virtual bool DtAnimationModel::canBeAnimated ( ) const
virtual

Returns true if there is enough information to start calculation.

virtual int DtAnimationModel::animationRow ( double  ,
int  frameHint = 0 
) const
virtual

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 int DtAnimationModel::animationRows ( ) const
virtual

Returns the number of rows in the animation model.

virtual double DtAnimationModel::deltaTimeForFrame ( int  frame) const
virtual

Returns the delta time to get to the next frame.

virtual void DtAnimationModel::resetAnimationVariables ( )
virtual

Resets animation variables so model can be animated again.

virtual void DtAnimationModel::reset ( )
overridevirtual

Resets animation variables and clears out movement file.

Reimplemented from DtReaderWriter.

virtual bool DtAnimationModel::setupForAnimation ( )
virtual

Sets initial values based on current entity object.

virtual double DtAnimationModel::simulationTime ( int  ) const
virtual

Returns the simulation time (scale adjusted) at the given animation row.

virtual void DtAnimationModel::setFrameTime ( double  )
virtual

Regardless of what time is set in the data file, allow each frame to only take this amount of time.

virtual double DtAnimationModel::frameTime ( ) const
virtual

Returns frame time as set by developer via setFrameTime else will return the time difference between frame 1 and frame 0.

virtual void DtAnimationModel::setAnimationFrame ( int  )
virtual

Sets the animation frame to start animating at.

virtual int DtAnimationModel::animationFrame ( ) const
virtual
virtual void DtAnimationModel::setNeedsSetup ( bool  )
virtual

True/false if the model still needs setup.

virtual bool DtAnimationModel::needsSetup ( ) const
virtual
virtual bool DtAnimationModel::simulate ( double  simulateFor,
DtVector &  newLocation,
DtTaitBryan &  newOrientation,
DtVector &  newVelocity,
DtVector &  newRotationalVelocity,
bool  debug = false 
)
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 void DtAnimationModel::setElapsedAnimationTime ( double  )
virtual

The current elapsed total time of simulating.

virtual double DtAnimationModel::elapsedAnimationTime ( ) const
virtual
virtual void DtAnimationModel::setTransitionSpeed ( double  )
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 double DtAnimationModel::transitionSpeed ( ) const
virtual
virtual int DtAnimationModel::setObjectOffsetLocation ( int  row,
const DtVector &   
)
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.

virtual int DtAnimationModel::setObjectOffsetOrientation ( int  row,
const DtTaitBryan &   
)
virtual

If the row is -1 or > than the number of rows will add to the end, else will replace current value.

virtual void DtAnimationModel::setTimeDeltaFromPreviousRow ( int  forRow,
double  timeDelta 
)
virtual

Sets the time delta for the current row from the previous row. Does not effect any other row.

virtual int DtAnimationModel::addAnimationRow ( double  deltaTime,
double  lateral,
double  range,
double  altitude,
double  headingOffset = 0,
double  pitchOffset = 0,
double  rollOffset = 0 
)
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 void DtAnimationModel::removeRow ( int  )
virtual

Removes the current row.

virtual void DtAnimationModel::setEntity ( DtLocalObject )
virtual
virtual const DtLocalObject* DtAnimationModel::entity ( ) const
virtual
virtual DtLocalObject* DtAnimationModel::entity ( )
virtual
virtual const char* DtAnimationModel::readerWriterType ( ) const
overridevirtual

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.

virtual int DtAnimationModel::frameToTravelSpeed ( int  base,
double  speed 
) const
virtual

Returns the frame at which the distance travelled is the transition speed.

virtual double DtAnimationModel::lastSimulationTime ( ) const
virtual

Last amount of time simulated.

virtual bool DtAnimationModel::isFinished ( ) const
virtual

Returns true if the animation is complete.

void DtAnimationModel::createDeadReckoner ( )
protected

Creates a dead reckoner to update the location and orientation between animation frames.

virtual void DtAnimationModel::processObjectAboutToBeRemoved ( const DtSimObject )
protectedvirtual
virtual void DtAnimationModel::putSelf ( std::string &  fp,
int  indentLevel,
bool  writeUnspecified,
const DtFilename &  path 
)
overrideprotectedvirtual

Stash some internal variables before saving.

Reimplemented from DtReaderWriter.

virtual void DtAnimationModel::getSelf ( DtlObjPtr  args,
const DtReaderWriter::SearchPaths searchPaths,
const DtVariableBindingsList variableBindings 
)
overrideprotectedvirtual

Refresh internal state after read in.

Reimplemented from DtReaderWriter.

virtual void DtAnimationModel::initializeReferenceObject ( )
protectedvirtual

Looks up reference object.

virtual int DtAnimationModel::nextFrameToMaintainSpeed ( int  frame,
double  speed 
) const
protectedvirtual

Returns the next frame (from the current one) that woul be needed to maintain the specified speed.

virtual void DtAnimationModel::deadReckon ( double  overTime,
DtVector &  newWorldLocation,
DtTaitBryan &  newLocalOrientation,
DtVector &  newVelocity,
DtVector &  newRotationalVelocity 
) const
protectedvirtual

Dead reckons values during in-between calc time.

Member Data Documentation

DtMovementFile DtAnimationModel::myMovementFile
protected
DtLocalObject* DtAnimationModel::myEntity
protected
DtRwReal DtAnimationModel::myTimeScale
protected
DtRwVector DtAnimationModel::myReferencePoint
protected
DtRwTaitBryan DtAnimationModel::myReferenceOrientation
protected
DtRwSimObjectReference DtAnimationModel::myTarget
protected
DtRwReal DtAnimationModel::myMoveOutHeading
protected
DtRwString DtAnimationModel::myScriptedMovementFile
protected
DtRwInt DtAnimationModel::myClampType
protected
DtRwInt DtAnimationModel::myCompletionRule
protected
DtRwBoolean DtAnimationModel::mySpeedNegatedFlag
protected
DtRwString DtAnimationModel::myFileConfiguration
protected
DtRwReal DtAnimationModel::myFrameTime
protected
DtRwInt DtAnimationModel::myAnimationFrame
protected
DtRwBoolean DtAnimationModel::myLastFrameWasAnimated
protected
DtRwReal DtAnimationModel::myTransitionSpeed
protected
DtRwReal DtAnimationModel::myElapsedAnimationTime
protected
DtRwReal DtAnimationModel::myLastAnimationFrameTime
protected
DtRwBoolean DtAnimationModel::myForceAutomaticOrientation
protected
AnimationChanges DtAnimationModel::myAnimationChanges
protected
DtTaitBryan DtAnimationModel::myLastOrientation
protected
DtVector DtAnimationModel::myLastLocation
protected
DtVector DtAnimationModel::myLastRotationalVelocity
protected
DtVector DtAnimationModel::myLastRelativeVelocity
protected
DtVector DtAnimationModel::myLastVelocity
protected
DtVector DtAnimationModel::myOriginalLocation
protected
DtTaitBryan DtAnimationModel::myOriginalOrientation
protected
double DtAnimationModel::myLastSimulationTime
protected
DtRwBoolean DtAnimationModel::myNeedsSetup
protected
DtDeadReckoner* DtAnimationModel::myDeadReckoner
protected
bool DtAnimationModel::myIsEmbarked
protected
boost::signals2::scoped_connection DtAnimationModel::myDeleteObjectConnection
protected
DtMovementLocalObjectFacade* DtAnimationModel::myMovementLocalObjectFacade
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)