VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Static 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. More...

Inheritance diagram for DtAnimationModel:
Inheritance graph
[legend]

Classes

class  AnimationChange
class  AnimationChangeList
struct  LocalAnimationChange

Public Member Functions

 DtAnimationModel (DtVrfObject *, 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 ()
virtual double calculateOrientation (int frame, double dt, DtTaitBryan &, DtVector &rotationalVelocity) const
 Returns a new heading.
virtual DtVector calculateLocation (int frame) const
 Returns location in geocentric.
virtual void calculateSpeed (int frame, double dt, DtVector &velocity) const
 Calculates velocity in local coordinates for transitioning the object from the given frame to the next frame.
virtual DtVector targetPosition () const
 Returns reference point for the animation in geocentric coordinates.
virtual DtVector localReferencePosition () const
 Returns the reference point for the animation in local coordinates.
virtual DtTaitBryan targetOrientation () const
 Returns the reference orientation in geocentric coordinate system.
virtual DtVector groundClamp (const DtVector &) const
 Expects and returns geocentric vector clamped to the terrain.
virtual DtVector bodyOffsetVector (int frame) const
 Returns the body offset vector at the given frame.
virtual DtTaitBryan orientationOffset (int frame) const
 Returns the offset orientation at the given frame.
virtual DtVector groundClampHighFidelity (const DtVector &location, double heading, DtTaitBryan &newLocalOrienationTb) const
 Ground clamps for three points, given geocentric location and topographic heading.
virtual DtVector velocityForFrame (int frame, double dt) const
 Returns the velocity for the given frame in local database coordinates.
virtual DtVector calculateRotationalVelocity (int frame, double dt) const
 Calculates the rotational velocity for the entity from the given frame to the next frame as bounded by dt.
virtual DtVector calculateRotationalVelocity (const DtTaitBryan &currentFrame, int frame, double dt) const
 Calculates rotational velocity given the supplied local orientation to the orientation represented by the frame + delta time.
virtual DtVector heightAdjustedLocation (const DtVector &) const
 Adjusts location by bounding volume of entity. Input and output are in geocentric.
virtual DtTaitBryan orientationForFrame (int frame, double &heading) const
 Returns local orientation.
virtual bool canBeAnimated () const
 Returns true if there is enough information to start calculation.
virtual int animationRow (double, int frameHint=0) const
 Given the simulation time, return the animation row that matches.
virtual int animationRows () const
 Returns the number of rows in the animation model.
virtual double deltaTimeForFrame (int frame) const
 Returns the delta time to get to the next frame.
virtual void resetAnimationVariables ()
 Resets animation variables so model can be animated again.
virtual void reset ()
 Resets animation variables and clears out movement file.
virtual void setupForAnimation ()
 Sets initial values based on current entity object.
virtual double simulationTime (int) const
 Returns the simulation time (scale adjusted) at the given animation row.
virtual void setFrameTime (double)
 Regardless of what time is set in the data file, allow each frame to only take this amount of time.
virtual double frameTime () const
 Returns frame time as set by developer via setFrameTime else will return the time difference between frame 1 and frame 0.
virtual void setAnimationFrame (int)
 Sets the animation frame to start animating at.
virtual int animationFrame () const
virtual void setNeedsSetup (bool)
 True/false if the model still needs setup.
virtual bool needsSetup () const
virtual bool simulate (double simulateFor, DtVector &newLocation, DtTaitBryan &newOrientation, DtVector &newVelocity, DtVector &newRotationalVelocity, bool debug=false)
 Simulates the animation for the give time.
virtual void setElapsedAnimationTime (double)
 The current elapsed total time of simulating.
virtual double elapsedAnimationTime () const
virtual void setTransitionSpeed (double)
 Sets the speed to use to transition into this animation.
virtual double transitionSpeed () const
virtual void setEntity (DtVrfObject *)
virtual DtVrfObjectentity () const
virtual DtVrfObjecttargetPoint () const
virtual const charreaderWriterType () const
 Used to supply a string type that this reader writer type is.
virtual int frameToTravelSpeed (int base, double speed) const
 Returns the frame at which the distance travelled is the transition speed.
virtual double dT () const
 Last dT of simulation calculation.
virtual double lastSimulationTime () const
 Last amount of time simulated.
virtual bool isFinished () const
 Returns true if the animation is complete.
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 setReferenceObject (const DtString &)
virtual const DtStringreferenceObject () 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 setFileConfiguration (const DtString &)
virtual const DtStringfileConfiguration () const
virtual int setObjectOffsetLocation (int row, const DtVector &)
virtual int setObjectOffsetOrientation (int row, const DtTaitBryan &)
 If the row is -1 or > than the number of rows will add to the end, else will replace current value.
virtual void setTimeDeltaFromPreviousRow (int forRow, double timeDelta)
 Sets the time delta for the current row from the previous row. Does not effect any other row.
virtual int addAnimationRow (double deltaTime, double lateral, double range, double altitude, double headingOffset=0, double pitchOffset=0, double rollOffset=0)
 Adds a new data row into the system.
virtual void removeRow (int)
 Removes the current row.
- Public Member Functions inherited from DtReaderWriter
 DtReaderWriter ()
 default constructor
 DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 real constructor Setting the readonly flag prevents object from writing itself to the stream.
 DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 pseudo-copy constructor
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL)
 copy constructor
const DtReaderWriteroperator= (const DtReaderWriter &orig)
 assignment operator
bool operator== (const DtReaderWriter &) const
 Equivalence operator.
bool operator!= (const DtReaderWriter &rhs)
virtual ~DtReaderWriter ()
 destructor
virtual void postPutSelf ()
 Called after either version of put self (file or environment). Default is no-op.
virtual void prePutSelf ()
 Called before either version of put self (file or environment). Default is no-op.
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Top level to read itself from an input stream.
virtual void postGetSelf ()
 Called after either version of getSelf (mtl or environment). Default is no-op.
virtual void preGetSelf ()
 Called before either version of get self (file or environment). Default is no-op.
virtual void writeSelf (FILE *fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Called from putSelf, calls myRegistry.putSelf which in turn calls putSelf on each reader/writer in the registry.
virtual DtSymbolString name () const
 Accessor for name of this readable/writable object.
virtual void addAlias (const DtSymbolString &alias)
 Add an alias as an alternative name for this object.
virtual bool hasAlias (const DtSymbolString &alias)
virtual const aliasContaineraliases () const
virtual void setReadonly (bool flag)
 Set read-only flag.
virtual bool isReadonly () const
virtual int alignment () const
 For those items that are sent over the network via HLA, this will give the network alignment.
virtual bool variableIsBound () const
virtual void unbindVariable ()
 Sets the myVariableIsBound flag to false.
virtual void setName (const DtString &)
 Set the name of the object.
virtual const charxmlType () const
virtual DtString prettyPrint () const
 Routine to return a human readable form of the reader/writer variable.
std::string debugText () const
virtual void bindVariables (DtVariableBindingsList variableBindings)
 Runs a variable binding pass on this reader writer and any of its children.
virtual std::list
< DtVariableNameType
unboundVariables () const
bool invalid () const
virtual bool hasChild (const DtReaderWriter *p) const
 Returns true if this variable has a child p in it's chain.
virtual bool hasVariableReference () const
 Returns true if this item or any item in the registry (recursive) is a variable reference.
virtual void bindLocalVariables (const DtVariableBindingsList &variableBindings)
 Checks to see if this RW object is a variable reference that can be bound using the provided bindings.
virtual void recordUpdateTime () const
 Can be implemented in subclasses to stamp the time when updated.
virtual bool wasUpdatedSince (DtTime t) const
 Can be implemented in subclasses to return true if an update occurred after the specified time.
virtual void putData (FILE *fp, int indentLevel=0)
 Deriving class overrides these to get/put class specific data.
virtual DtlObjPtr getData (DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
 Deriving class overrides these to get/put class specific data.
virtual void setValueSpecified (bool specified, bool recurse=false)
 The specified flags are used for optional values.
virtual bool valueSpecified () const
 The specified flags are used for optional values.
virtual bool isVariableReference () const
 Specifies whether or not this reader writer is really a variable that is specified elsewhere.
virtual void setIsVariableReference (bool value)
virtual void clearAllVariableReferenceFlags ()
 Clears out all variable reference flags from all readerwriter items in registry recursively.
virtual DtSymbolString variableName () const
 The variable name, if this object is a variable reference.
virtual void setVariableName (const DtSymbolString variableName)
 The variable name, if this object is a variable reference.
virtual const DtReaderWriterdefaultRWValue () const
 The default value to use if the reader/writer object is a variable and that variable is not specified.
virtual DtReaderWriterdefaultRWValue ()
 The default value to use if the reader/writer object is a variable and that variable is not specified.
virtual void setDefaultRWValue (DtReaderWriter *)
 Previous default value, if exists, will be removed and replaced with a clone of the supplied variable.
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Give the stream, if the stream contains a default value then set it here.
const DtReaderWriterRegistryregistry () const
 Collection of child DtReaderWriter nodes owned by this object.
DtReaderWriterRegistryregistry ()
 Collection of child DtReaderWriter nodes owned by this object.
virtual DtPropertyInterfaceproperty ()
virtual const DtPropertyInterfaceproperty () const
virtual DtString toXml () const
virtual bool toXml (const DtFilename &) const
 Writes contents of xml result to the given filename.
virtual bool fromXml (const DtString &)
 Restores object from given xml string. Returns true if valid.
virtual bool fromXmlFile (const DtFilename &)
 Restires object from given xml file.
virtual void putSelf (DtEnvironmentSP, DtEnvValueSP parent) const
virtual void putData (DtEnvironmentSP, DtEnvValueSP value) const
 Override to add attributes of actual data.
virtual void putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const
 Called when the item is a variable reference.
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())
 Gets data from the environment value.
virtual void unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings)
 Called when the xml reader tries to parse an unknown reader/writer item. Default is a no-op.
virtual void getVariableReference (DtEnvironmentSP, DtEnvValueSP value)
 Called when the item is a variable reference.

Protected Types

typedef std::map< int,
LocalAnimationChange
AnimationChanges
 Map, by row, of changes to the animation file.

Protected Member Functions

void createDeadReckoner ()
 Creates a dead reckoner to update the location and orientation between animation frames.
virtual void processObjectAboutToBeRemoved (DtVrfObject *)
virtual void processObjectAddedCallback (DtVrfObject *)
virtual void putSelf (FILE *fp, int indentLevel, bool writeUnspecified, const DtFilename &path)
 Stash some internal variables before saving.
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
 Refresh internal state after read in.
virtual void initializeReferenceObject ()
 Looks up reference object.
virtual int nextFrameToMaintainSpeed (int frame, double speed) const
 Returns the next frame (from the current one) that woul be needed to maintain the specified speed.
virtual void deadReckon (double overTime, DtVector &newWorldLocation, DtTaitBryan &newLocalOrientation, DtVector &newVelocity, DtVector &newRotationalVelocity) const
 Dead reckons values during in-between calc time.
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 Copies values from the specified DtReaderWriter.
- Protected Member Functions inherited from DtObjectDebugger< DtReaderWriter >
 DtObjectDebugger ()
 DtObjectDebugger (const DtObjectDebugger &)
 ~DtObjectDebugger ()

Static Protected Member Functions

static void objectAboutToBeRemovedCallback (DtVrfObject *object, void *usr)
 Calls to reference when objects are added or removed for target point object.
static void objectAddedCallback (DtVrfObject *object, void *usr)

Protected Attributes

DtMovementFile myMovementFile
DtVrfObjectmyEntity
DtVrfObjectmyTargetPoint
DtRwReal myTimeScale
DtRwVector myReferencePoint
DtRwTaitBryan myReferenceOrientation
DtRwString myReferenceObject
DtRwReal myMoveOutHeading
DtRwString myScriptedMovementFile
DtRwInt myClampType
DtRwInt myCompletionRule
DtRwString myFileConfiguration
DtRwReal myFrameTime
DtRwBoolean myMaintainCurrentSpeed
DtRwInt myAnimationFrame
DtRwReal myTransitionSpeed
DtRwReal myElapsedAnimationTime
DtRwReal myLastAnimationFrameTime
DtRwBoolean myForceAutomaticOrientation
AnimationChanges myAnimationChanges
double myDt
DtTaitBryan myLastOrientation
DtVector myLastLocation
DtVector myLastRotationalVelocity
DtVector myLastRelativeVelocity
DtVector myLastVelocity
DtVector myOriginalLocation
DtTaitBryan myOriginalOrientation
double myLastSimulationTime
DtRwBoolean myNeedsSetup
DtDeadReckoner * myDeadReckoner
bool myIsEmbarked
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
DtReaderWriterRegistry myRegistry
DtReaderWriterRegistrymyParentRegistry
bool myValueSpecified
bool myReadOnlyFlag
bool myIsVariableReference
DtSymbolString myVariableName
bool myVariableIsBound
DtReaderWritermyDefaultValue
aliasContainer myAliases
 Container for the aliases which represent alternative names for the object.
bool myInvalid
 Set to true if there is a problem reading this item.

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 (FILE *fp, int indentLevel)
static const
DtVariableBindingsList
nullVariableReference ()
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
static const chartheXmlType ()
 The type that is used when archiving to an XML stream.
static const DtFilename & appPath ()
 Gets the current working directory.
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 Sets the function to create the DtReaderWriterFactory.
static void createReaderWriterFactory ()
static void cleanupFactory ()
static DtReaderWriterFactoryfactory ()
static DtReaderWritercreateFromXmlFile (const DtFilename &)
 Given a filename, returns a newly created reader/writer object from the object found within.
static DtReaderWritercreateFromXml (const DtString &)
 Given a xml string, returns a newly created reader/writer object from the object found within.
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP)
 Given a xml environment, returns a newly created reader/writer object from the object found within.
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 Gets the named attribute from a DtEnvValueSP.
- 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

Detailed Description

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

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 ( DtVrfObject ,
const DtString rwName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0 
)
DtAnimationModel::DtAnimationModel ( const DtAnimationModel orig,
const DtString rwName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0 
)
virtual DtAnimationModel::~DtAnimationModel ( )
virtual

Member Function Documentation

DtAnimationModel& DtAnimationModel::operator= ( const DtAnimationModel orig)
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::setReferenceObject ( const DtString )
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

virtual const DtString& DtAnimationModel::referenceObject ( ) const
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

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::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  frame) const
virtual

Returns location in geocentric.

virtual void DtAnimationModel::calculateSpeed ( int  frame,
double  dt,
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 DtVector DtAnimationModel::groundClampHighFidelity ( const DtVector location,
double  heading,
DtTaitBryan &  newLocalOrienationTb 
) const
virtual

Ground clamps for three points, given geocentric location and topographic heading.

Will also calculate new orientation and return in local coordinates. The location is returned in geocentric coordinates

virtual DtVector DtAnimationModel::velocityForFrame ( int  frame,
double  dt 
) 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,
double  dt 
) 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 ( )
virtual

Resets animation variables and clears out movement file.

Reimplemented from DtReaderWriter.

virtual void 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 ( DtVrfObject )
virtual
virtual DtVrfObject* DtAnimationModel::entity ( ) const
virtual
virtual DtVrfObject* DtAnimationModel::targetPoint ( ) const
virtual
virtual const char* DtAnimationModel::readerWriterType ( ) const
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.

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::dT ( ) const
virtual

Last dT of simulation calculation.

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.

static void DtAnimationModel::objectAboutToBeRemovedCallback ( DtVrfObject object,
void *  usr 
)
staticprotected

Calls to reference when objects are added or removed for target point object.

virtual void DtAnimationModel::processObjectAboutToBeRemoved ( DtVrfObject )
protectedvirtual
static void DtAnimationModel::objectAddedCallback ( DtVrfObject object,
void *  usr 
)
staticprotected
virtual void DtAnimationModel::processObjectAddedCallback ( DtVrfObject )
protectedvirtual
virtual void DtAnimationModel::putSelf ( FILE *  fp,
int  indentLevel,
bool  writeUnspecified,
const DtFilename &  path 
)
protectedvirtual

Stash some internal variables before saving.

Reimplemented from DtReaderWriter.

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

Refresh internal state after read in.

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
DtVrfObject* DtAnimationModel::myEntity
protected
DtVrfObject* DtAnimationModel::myTargetPoint
protected
DtRwReal DtAnimationModel::myTimeScale
protected
DtRwVector DtAnimationModel::myReferencePoint
protected
DtRwTaitBryan DtAnimationModel::myReferenceOrientation
protected
DtRwString DtAnimationModel::myReferenceObject
protected
DtRwReal DtAnimationModel::myMoveOutHeading
protected
DtRwString DtAnimationModel::myScriptedMovementFile
protected
DtRwInt DtAnimationModel::myClampType
protected
DtRwInt DtAnimationModel::myCompletionRule
protected
DtRwString DtAnimationModel::myFileConfiguration
protected
DtRwReal DtAnimationModel::myFrameTime
protected
DtRwBoolean DtAnimationModel::myMaintainCurrentSpeed
protected
DtRwInt DtAnimationModel::myAnimationFrame
protected
DtRwReal DtAnimationModel::myTransitionSpeed
protected
DtRwReal DtAnimationModel::myElapsedAnimationTime
protected
DtRwReal DtAnimationModel::myLastAnimationFrameTime
protected
DtRwBoolean DtAnimationModel::myForceAutomaticOrientation
protected
AnimationChanges DtAnimationModel::myAnimationChanges
protected
double DtAnimationModel::myDt
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

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

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)