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

A DtAttachableUpdater updates a scene an object that can be positioned in the scene by (possibly) attaching it to one or more other scene objects. More...

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

Classes

class  AttachedPoint
 Common base class for all attachments. More...
 
class  LinearAttachedPoint
 AttachPoint used to attach to a point that is proportionally positioned between 2 other points. More...
 
class  ObjectAttachedPoint
 AttachedPoint used to attach to a scene object. More...
 
class  VertexAttachedPoint
 AttachPoint used to attach to a position provided through the updater interface. More...
 

Public Types

enum  AttachedPointType {
  AttachedPointTypeVertex, AttachedPointTypeObject, AttachedPointTypeProportional, AttachedPointTypeDeprecatedObject,
  AttachedPointTypeInvalidObject
}
 Types of attachments. More...
 
enum  AttachedPointMode { AttachedPointModePositionAndOrientation, AttachedPointModePositionOnly, AttachedPointModeOrientationOnly }
 
- 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...
 

Public Member Functions

 DtAttachableUpdater (DtDe &de, DtUniqueID id)
 CTOR. More...
 
virtual ~DtAttachableUpdater ()
 DTOR. More...
 
virtual bool needsUpdate (DtTime tNow)
 Does this updater need to update? More...
 
virtual void addAttachedPoint (const DtVector &position, int targetVertexIndex)
 Add a (vertex) attach point. More...
 
virtual void addAttachedPoint (DtUniqueID uniqueID, int targetVertexIndex)
 Add a (object) attach point. More...
 
virtual void addAttachedPoint (DtUniqueID uniqueID, int vtx1, int vtx2, double proportion, int targetVertexIndex)
 Add a (linear) attach point. More...
 
virtual const AttachedPointattachedPoint (int targetVertexIndex) const
 Returns the attached point at the given vertex. More...
 
virtual void setPositionOffset (const DtVector &offset)
 positionally offset the attach points by this amount. More...
 
virtual void setWorldPositionOffset (const DtVector &offset)
 positionally offset the specific attach point by this amount in world (database) coordinates. More...
 
virtual void setPositionOffset (const DtVector &offset, int vtx)
 positionally offset the specific attach point by this amount. More...
 
virtual void setOrientationOffset (const DtTaitBryan &offset)
 rotationally offset the attach points by this amount. More...
 
virtual void setWorldOrientationOffset (const DtTaitBryan &offset)
 rotationally offset the attach points by this amount in world (database) coordinates More...
 
virtual void setAttachedPointMode (unsigned int mode, int vtx)
 Set whether an attached point updates position, orientation, or both. More...
 
virtual void update (DtTime tNow)
 Calls doAttachment() More...
 
virtual void setSceneObject (DtSceneObject *sceneObject)
 Set the scene object to be updated. More...
 
virtual void doAttachment (DtTime tNow)
 Find the actual position and orientation based on the attach points and offsets. More...
 
DtTime lastUpdateTime () const
 
- Public Member Functions inherited from makVrv::DtTickable
virtual bool updateIfNeeded (DtTime tNow)
 Calls needsUpdate(), and then calls update() if needsUpdate() is true. 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 Types

typedef std::vector
< AttachedPoint * > 
AttachedPointsVector
 

Protected Member Functions

virtual bool pointLocationAndOrientation (AttachedPoint *point, double simTime, DtVector &location, DtTaitBryan &orientation)
 
virtual void removeAttachedPoint (int vtx, DtVector *positionOffset=0)
 Returns current position offset in supplied pointer. More...
 
Slots
virtual void slot_sceneObjectToBeDeleted (const DtUniqueID &id)
 
virtual void slot_attachedSceneObjectToBeDeleted (const DtUniqueID &)
 
virtual void slot_attachedUpdaterToBeDeleted (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

DtDemyDe
 The display engine. More...
 
DtUniqueID myUniqueId
 This distributed object's unique identifier. More...
 
DtSceneObjectmySceneObject
 A pointer to the current scene object being updated. More...
 
boost::signalslib::connection mySceneObjectConnection
 
boost::signalslib::connection mySceneObjectUpdaterConnection
 
DtTime myLastUpdateTime
 The last time stamp when the update() More...
 
AttachedPointsVector myAttachedPoints
 
DtVector myPositionOffset
 
DtTaitBryan myOrientationOffset
 
DtVector myWorldPositionOffset
 
DtTaitBryan myWorldOrientationOffset
 
DtUniqueID mySceneObjectId
 
- 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
 

Detailed Description

A DtAttachableUpdater updates a scene an object that can be positioned in the scene by (possibly) attaching it to one or more other scene objects.

Note that this is not a DtSceneObjectUpdater; It can't be linked to other DtSceneObjectUpdaters.

Member Typedef Documentation

Member Enumeration Documentation

Types of attachments.

Enumerator
AttachedPointTypeVertex 
AttachedPointTypeObject 
AttachedPointTypeProportional 
AttachedPointTypeDeprecatedObject 
AttachedPointTypeInvalidObject 
Enumerator
AttachedPointModePositionAndOrientation 
AttachedPointModePositionOnly 
AttachedPointModeOrientationOnly 

Constructor & Destructor Documentation

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

CTOR.

virtual makVrv::DtAttachableUpdater::~DtAttachableUpdater ( )
virtual

DTOR.

Member Function Documentation

virtual bool makVrv::DtAttachableUpdater::needsUpdate ( DtTime  tNow)
virtual

Does this updater need to update?

Reimplemented from makVrv::DtTickable.

virtual void makVrv::DtAttachableUpdater::addAttachedPoint ( const DtVector position,
int  targetVertexIndex 
)
virtual

Add a (vertex) attach point.

If multiple attach points are specified each will update its corresponding vertex in the scene object being updated

virtual void makVrv::DtAttachableUpdater::addAttachedPoint ( DtUniqueID  uniqueID,
int  targetVertexIndex 
)
virtual

Add a (object) attach point.

If multiple attach points are specified each will update its corresponding vertex in the scene object being updated

virtual void makVrv::DtAttachableUpdater::addAttachedPoint ( DtUniqueID  uniqueID,
int  vtx1,
int  vtx2,
double  proportion,
int  targetVertexIndex 
)
virtual

Add a (linear) attach point.

If multiple attach points are specified each will update its corresponding vertex in the scene object being updated

virtual const AttachedPoint& makVrv::DtAttachableUpdater::attachedPoint ( int  targetVertexIndex) const
virtual

Returns the attached point at the given vertex.

This method returns a copy of the current state of the attached point. If an attached point with the given index could not be found, this method returns an AttachedPoint with type AttachedPointTypeInvalidObject.

virtual void makVrv::DtAttachableUpdater::setPositionOffset ( const DtVector offset)
virtual

positionally offset the attach points by this amount.

This is in the coordinate system of the object attached to

virtual void makVrv::DtAttachableUpdater::setWorldPositionOffset ( const DtVector offset)
virtual

positionally offset the specific attach point by this amount in world (database) coordinates.

Will be used in conjunction with the overall position offset

virtual void makVrv::DtAttachableUpdater::setPositionOffset ( const DtVector offset,
int  vtx 
)
virtual

positionally offset the specific attach point by this amount.

This is in the coordinate system of the object attached to. Will be used in conjunction with the overall position offset

virtual void makVrv::DtAttachableUpdater::setOrientationOffset ( const DtTaitBryan &  offset)
virtual

rotationally offset the attach points by this amount.

This is in the coordinate system of the object attached to

virtual void makVrv::DtAttachableUpdater::setWorldOrientationOffset ( const DtTaitBryan &  offset)
virtual

rotationally offset the attach points by this amount in world (database) coordinates

virtual void makVrv::DtAttachableUpdater::setAttachedPointMode ( unsigned int  mode,
int  vtx 
)
virtual

Set whether an attached point updates position, orientation, or both.

virtual void makVrv::DtAttachableUpdater::update ( DtTime  tNow)
virtual
virtual void makVrv::DtAttachableUpdater::setSceneObject ( DtSceneObject sceneObject)
virtual

Set the scene object to be updated.

Parameters
[in]sceneObjectis the scene object to receive updates.

Reimplemented in makVrv::DtLineModelUpdater, and makVrf::DtRangeRingUpdater.

virtual void makVrv::DtAttachableUpdater::doAttachment ( DtTime  tNow)
virtual

Find the actual position and orientation based on the attach points and offsets.

DtTime makVrv::DtAttachableUpdater::lastUpdateTime ( ) const
inline
virtual void makVrv::DtAttachableUpdater::slot_sceneObjectToBeDeleted ( const DtUniqueID id)
protectedvirtual
virtual void makVrv::DtAttachableUpdater::slot_attachedSceneObjectToBeDeleted ( const DtUniqueID )
protectedvirtual
virtual void makVrv::DtAttachableUpdater::slot_attachedUpdaterToBeDeleted ( const DtUniqueID id)
protectedvirtual
virtual bool makVrv::DtAttachableUpdater::pointLocationAndOrientation ( AttachedPoint point,
double  simTime,
DtVector location,
DtTaitBryan &  orientation 
)
protectedvirtual
virtual void makVrv::DtAttachableUpdater::removeAttachedPoint ( int  vtx,
DtVector positionOffset = 0 
)
protectedvirtual

Returns current position offset in supplied pointer.

Member Data Documentation

DtDe& makVrv::DtAttachableUpdater::myDe
protected

The display engine.

DtUniqueID makVrv::DtAttachableUpdater::myUniqueId
protected

This distributed object's unique identifier.

DtSceneObject* makVrv::DtAttachableUpdater::mySceneObject
protected

A pointer to the current scene object being updated.

boost::signalslib::connection makVrv::DtAttachableUpdater::mySceneObjectConnection
protected
boost::signalslib::connection makVrv::DtAttachableUpdater::mySceneObjectUpdaterConnection
protected
DtTime makVrv::DtAttachableUpdater::myLastUpdateTime
protected

The last time stamp when the update()

AttachedPointsVector makVrv::DtAttachableUpdater::myAttachedPoints
protected
DtVector makVrv::DtAttachableUpdater::myPositionOffset
protected
DtTaitBryan makVrv::DtAttachableUpdater::myOrientationOffset
protected
DtVector makVrv::DtAttachableUpdater::myWorldPositionOffset
protected
DtTaitBryan makVrv::DtAttachableUpdater::myWorldOrientationOffset
protected
DtUniqueID makVrv::DtAttachableUpdater::mySceneObjectId
protected

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

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)