VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtEllipseUpdater Class Reference

DtEllipseUpdater is an updater that updates the orientation of ellipse (2D or 3D) based on the origin and first point in the model. More...

Inheritance diagram for makVrv::DtEllipseUpdater:
Inheritance graph
[legend]

Public Member Functions

 DtEllipseUpdater (makVrv::DtDe &de, makVrv::DtUniqueID id)
 CTOR. More...
 
virtual ~DtEllipseUpdater ()
 DTOR. More...
 
virtual void update (double simTime)
 If origin or to point have changed, recalc orientation. More...
 
virtual void setOrientationDelta (double)
 
virtual void setClamped (bool)
 Sets to clamp. Will recalculate orientations and clamp position on next update. More...
 
virtual void setPosition (int, const DtVector &)
 Sets positions of ellipse. More...
 
virtual void setSceneObject (DtSceneObject *sceneObject)
 Set the scene object to be updated. More...
 
virtual bool needsUpdate (DtTime tNow)
 The check function called by DtTickableManager to verify if an update is required. More...
 
virtual void setUpdaterPosition (int vtx, const DtVector &pos)
 Set the position of a vertex. More...
 
virtual void setUpdaterOrientation (int vtx, const DtTaitBryan &ori)
 Set the orientation of a vertex. More...
 
virtual void setDynamicOrigin (bool)
 Sets whether or origin is set in the updater or retrieved from the scene object. More...
 
- Public Member Functions inherited from makVrv::DtTickable
virtual bool updateIfNeeded (DtTime tNow)
 Calls needsUpdate(), and then calls update() if needsUpdate() is true. More...
 
virtual void update (DtTime tNow)=0
 The update function called by DtTickableManager during update-ticks. More...
 
virtual ~DtTickable ()
 Virtual DTOR. More...
 
virtual void setIsThreadSafe (bool safe)
 Get/set whether this tickable can be updated in parallel with other tickables. More...
 
virtual bool isThreadSafe () const
 
virtual void setTickableListState (TickableListState safeList)
 Track which tickable list (if any) this tickable is on Since the tickable constructor puts ALL tickables on the main (unThreadSafe) to start we need a way to check which list a tickable is on (and this way we can request removals from the correct list instead of having to call DtTickableManager::removeTickableObject(), which tries both lists). More...
 
virtual TickableListState tickableListState () const
 
virtual void setUpdatePeriod (unsigned int period)
 Specify how often (in # of frames) this tickable should call update. More...
 
virtual unsigned int updatePeriod () const
 
virtual bool lodSystemEnabled () const
 is the update LOD system enabled, overridden by subclasses More...
 

Protected Member Functions

virtual bool computeGroundClampingHit (const DtVector &up, const DtVector &unclampedPosition, DtVector &hitLocation, DtVector &hitNormal)
 
virtual DtTaitBryan computeOrientation (const DtVector &pos, double topoHeading) const
 Computes orientation of the ellipse as level to terrain. More...
 
Signals
virtual void slot_sceneObjectToBeDeleted (const DtUniqueID &id)
 
- Protected Member Functions inherited from makVrv::DtTickable
 DtTickable (DtTickableManagerInterface *manager)
 CTOR. More...
 
 DtTickable ()
 Unimplemented default CTOR. More...
 
virtual void slot_managerAboutToBeDeleted ()
 

Protected Attributes

DtVector myOrigin
 
DtVector myClampedOrigin
 
double myOrientationDelta
 
bool mySceneObjectChanged
 
bool myClamped
 
DtDemyDe
 The display engine. More...
 
DtUniqueID myUniqueId
 This distributed object's unique identifier. More...
 
DtSceneObjectmySceneObject
 A pointer to the current scene object. More...
 
boost::signalslib::connection mySceneObjectConnection
 
DtSceneObject::TransformList myTransforms
 Local copy of the vertex positions and orientations. More...
 
DtTime myLastUpdateTime
 
DtTaitBryan myInitialOrientation
 
bool myDynamicOrigin
 
DtVector myLastAnglePosition
 
DtVector myDynamicOriginPosition
 
- Protected Attributes inherited from makVrv::DtTickable
DtTickableManagerInterfacemyManager
 Pointer to manager for removal during destruction. More...
 
DtSignalConnectionManager myConnections
 
unsigned int myFrameCounter
 
unsigned int myFrameToUpdate
 
unsigned int myUpdatePeriod
 
DtTime myLastUpdateTime
 
bool myIsThreadSafe
 
TickableListState myTickableListState
 

Private Member Functions

DtSceneObject::ObjectTransformgetOrCreateTransform (int vtx)
 Helper function to get the transform at a given vertex. More...
 

Additional Inherited Members

- Public Types inherited from makVrv::DtTickable
enum  TickableListState { TickableNotOnList, TickableOnMainList, TickableOnThreadSafeList }
 Enumeration used to indicate which DtTickableManager's tickable list the tickable is on, if any. More...
 

Detailed Description

DtEllipseUpdater is an updater that updates the orientation of ellipse (2D or 3D) based on the origin and first point in the model.

Constructor & Destructor Documentation

makVrv::DtEllipseUpdater::DtEllipseUpdater ( makVrv::DtDe de,
makVrv::DtUniqueID  id 
)

CTOR.

virtual makVrv::DtEllipseUpdater::~DtEllipseUpdater ( )
virtual

DTOR.

Member Function Documentation

virtual void makVrv::DtEllipseUpdater::update ( double  simTime)
virtual

If origin or to point have changed, recalc orientation.

virtual void makVrv::DtEllipseUpdater::setOrientationDelta ( double  )
virtual
virtual void makVrv::DtEllipseUpdater::setClamped ( bool  )
virtual

Sets to clamp. Will recalculate orientations and clamp position on next update.

virtual void makVrv::DtEllipseUpdater::setPosition ( int  ,
const DtVector  
)
virtual

Sets positions of ellipse.

Will update orientation and radii appropriately. Vector is considered in local coordinates

virtual void makVrv::DtEllipseUpdater::setSceneObject ( DtSceneObject sceneObject)
virtual

Set the scene object to be updated.

Parameters
[in]sceneObjectis the scene object to receive updates.
virtual bool makVrv::DtEllipseUpdater::needsUpdate ( DtTime  tNow)
virtual

The check function called by DtTickableManager to verify if an update is required.

If this function returns true, the DtTickableManager will then call update().

Parameters
[in]tNowis the current time-stamp.
Return values
trueif this object needs to be ticked.
falseotherwise.

Reimplemented from makVrv::DtTickable.

Reimplemented in makVrf::DtVrfRangeEllipseUpdater.

virtual void makVrv::DtEllipseUpdater::setUpdaterPosition ( int  vtx,
const DtVector pos 
)
virtual

Set the position of a vertex.

Parameters
[in]vtxis the vertex.
[in]posis the position to set.
virtual void makVrv::DtEllipseUpdater::setUpdaterOrientation ( int  vtx,
const DtTaitBryan &  ori 
)
virtual

Set the orientation of a vertex.

Parameters
[in]vtxis the vertex.
[in]oriis the orientation to set.
virtual void makVrv::DtEllipseUpdater::setDynamicOrigin ( bool  )
virtual

Sets whether or origin is set in the updater or retrieved from the scene object.

Default is false (retrieved from origin)

virtual bool makVrv::DtEllipseUpdater::computeGroundClampingHit ( const DtVector up,
const DtVector unclampedPosition,
DtVector hitLocation,
DtVector hitNormal 
)
protectedvirtual
virtual DtTaitBryan makVrv::DtEllipseUpdater::computeOrientation ( const DtVector pos,
double  topoHeading 
) const
protectedvirtual

Computes orientation of the ellipse as level to terrain.

virtual void makVrv::DtEllipseUpdater::slot_sceneObjectToBeDeleted ( const DtUniqueID id)
protectedvirtual
DtSceneObject::ObjectTransform& makVrv::DtEllipseUpdater::getOrCreateTransform ( int  vtx)
private

Helper function to get the transform at a given vertex.

If the vertex is above range, new transforms are created.

Parameters
[in]vtxis the vertex of the transform to get.
Returns
The transform at the given vertex.
Exceptions
DtCorruptedStateif vtx is less than zero.

Member Data Documentation

DtVector makVrv::DtEllipseUpdater::myOrigin
protected
DtVector makVrv::DtEllipseUpdater::myClampedOrigin
protected
double makVrv::DtEllipseUpdater::myOrientationDelta
protected
bool makVrv::DtEllipseUpdater::mySceneObjectChanged
protected
bool makVrv::DtEllipseUpdater::myClamped
protected
DtDe& makVrv::DtEllipseUpdater::myDe
protected

The display engine.

DtUniqueID makVrv::DtEllipseUpdater::myUniqueId
protected

This distributed object's unique identifier.

DtSceneObject* makVrv::DtEllipseUpdater::mySceneObject
protected

A pointer to the current scene object.

boost::signalslib::connection makVrv::DtEllipseUpdater::mySceneObjectConnection
protected
DtSceneObject::TransformList makVrv::DtEllipseUpdater::myTransforms
protected

Local copy of the vertex positions and orientations.

These are typically pre-calculated, and then pushed to the scene object at a later time, making the concatenation of updaters simpler.

DtTime makVrv::DtEllipseUpdater::myLastUpdateTime
protected
DtTaitBryan makVrv::DtEllipseUpdater::myInitialOrientation
protected
bool makVrv::DtEllipseUpdater::myDynamicOrigin
protected
DtVector makVrv::DtEllipseUpdater::myLastAnglePosition
protected
DtVector makVrv::DtEllipseUpdater::myDynamicOriginPosition
protected

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

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)