VR-Forces 4.1.1 Class Documentation
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
makVrv::DtAttachableEntityFanUpdater Class Reference

Class which will keep track of EntityFan los object (spokes between an origin and the outer rim of the circle). More...

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

Classes

struct  EntityFanIntersectionInformation

Public Member Functions

 DtAttachableEntityFanUpdater (DtDe &de, DtElementID id, bool suppressTick=false)
 CTOR.
virtual ~DtAttachableEntityFanUpdater ()
 DTOR.
virtual void setEntityFanUpdateRate (double d)
virtual void setCircleAgent (DtOverlayEllipseArcModelAgent *)
 Sets the agent used to draw the circle.
virtual void setCircleAgent (DtExtrudedCircleModelAgent *)
virtual void setMultiLineModelAgent (DtMultiLineModelAgent *)
 Sets the agent used to draw the lines between the center and the entities in the circle.
virtual void setSceneObjectAgent (DtSceneObjectAgent *)
 Sets the agent used to manage scene objects.
- Public Member Functions inherited from makVrv::DtAttachableIntervisibilityUpdater
 DtAttachableIntervisibilityUpdater (DtDe &de, DtElementID id, bool suppressTick=false)
 CTOR.
virtual ~DtAttachableIntervisibilityUpdater ()
 DTOR.
virtual void setFixedDistance (bool)
 If true, sets the end point to be a fixed distance (given the current distance) from the start point, if the start points moves and the end point is not attached.
- Public Member Functions inherited from makVrv::DtLineModelUpdater
 DtLineModelUpdater (DtDe &de, DtElementID id, bool suppressTick=false)
 CTOR.
virtual ~DtLineModelUpdater ()
 DTOR.
virtual void setStartPoint (const DtVector &position)
 Sets the origin of the line (absolute)
virtual void attachStartPoint (DtElementID id)
 Sets the origin of the line to be attached to an element.
virtual void setStartPointOffset (const DtVector &offset)
 Sets the offset of the start attach point.
virtual void setEndPoint (const DtVector &position)
 Sets the end of the Intervisibility line (absolute)
virtual void attachEndPoint (DtElementID id)
 Sets the end of the line to be attached to an element.
virtual void setEndPointOffset (const DtVector &offset)
 Sets the offset of the end attach point.
virtual DtVector calculateStartPoint ()
 Accessor for the origin of the line.
virtual DtVector calculateEndPoint ()
 Accessor for the end point of the line.
virtual void setSceneObject (DtSceneObject *sceneObject)
 Override to set model set to use for intersections.
- Public Member Functions inherited from makVrv::DtAttachableUpdater
 DtAttachableUpdater (DtDe &de, DtUniqueID id, bool suppressTick=false)
 CTOR.
virtual ~DtAttachableUpdater ()
 DTOR.
virtual void addAttachedPoint (const DtVector &position, int targetVertexIndex)
 Add a (vertex) attach point.
virtual void addAttachedPoint (DtUniqueID uniqueID, int targetVertexIndex)
 Add a (object) attach point.
virtual void addAttachedPoint (DtUniqueID uniqueID, int vtx1, int vtx2, double proportion, int targetVertexIndex)
 Add a (linear) attach point.
virtual const AttachedPointattachedPoint (int targetVertexIndex) const
 Returns the attached point at the given vertex.
virtual void setPositionOffset (const DtVector &offset)
 positionally offset the attach points by this amount.
virtual void setPositionOffset (const DtVector &offset, int vtx)
 positionally offset the specific attach point by this amount.
virtual void setOrientationOffset (const DtTaitBryan &offset)
 rotationally offset the attach points by this amount.
virtual void setAttachedPointMode (unsigned int mode, int vtx)
 Set whether an attached point updates position, orientation, or both.
virtual void doAttachment (DtTime tNow)
 Find the actual position and orientation based on the attach points and offsets.
- Public Member Functions inherited from makVrv::DtSceneObjectUpdater
 DtSceneObjectUpdater (DtDe &de, DtUniqueID id, bool suppressTick=false)
 CTOR.
virtual ~DtSceneObjectUpdater ()
 Virtual DTOR.
virtual bool needsUpdate (DtTime tNow)
 The check function called by DtTickableManager to verify if an update is required.
virtual DtTime lastUpdateTime () const
 Get the time-stamp of the last update.
DtSceneObjectfindSceneObject ()
 Get the current scene object for this updater.
DtUniqueID uniqueId () const
 Returns the distributed object id of this updater.
virtual void setUpdaterPosition (int vtx, const DtVector &pos)
 Set the position of a scene object vertex.
virtual const DtVectorupdaterPosition (int vtx) const
 Get the position of a scene object vertex.
virtual void setUpdaterOrientation (int vtx, const DtTaitBryan &ori)
 Set the orientation of a scene object vertex.
virtual const DtTaitBryan & updaterOrientation (int vtx) const
 Get the orientation of a scene object vertex.
virtual void terrainScaleTransformsIfNeeded ()
 Scales the transforms if the terrain scaling flag is set.

Protected Types

typedef boost::unordered_map
< DtElementID,
EntityFanIntersectionInformation
Intersections
 Map type for mapping entity ids to entity fan intersection info.

Protected Member Functions

virtual void updateSceneObject (DtTime tNow)
 Update the scene object position and orientation at each vertex and set the last updated time-stamp.
virtual bool doIntersection ()
 Does intersection if points have changed. Returns true if something has changed.
virtual void update ()
 Calls update with current de sim time.
virtual void update (DtTime tNow)
 Sees if inter-visibility needs to be recalculated, and, if so recalculates and sets all associated lines.
virtual bool removeElement (DtElementID id, bool disconnect=true)
 Removes the element from the intersections list, if it exists.
virtual void sceneObjectRemoved (DtUniqueID)
 Called when a scene object is removed, remove it as an element.
virtual bool isIntersectableObject (const DtElementEntry &) const
 Returns true if the object should be checked for intersection.
- Protected Member Functions inherited from makVrv::DtAttachableIntervisibilityUpdater
virtual double calculateDistance (const DtVector &start, const DtVector &end, DtVector *circleOrigin=0) const
 Calculates distance based on topo coordinates in 3 dimensions.
virtual void calculateFixedDistance ()
 Calculates the distance from the start to end point and assigns to myFixedDistance member.
virtual DtVector fixedDistanceFrom (const DtVector &start, const DtVector &end, double heading, double distance) const
 Given two points (for an angle), returns a fixed distance from the start point.
virtual double calculateHeading (const DtVector &start, const DtVector &end) const
 Calculates topographic heading from start to end point.
- Protected Member Functions inherited from makVrv::DtLineModelUpdater
virtual void cleanup (PointInformation &pointInfo)
 Cleans up (resets) information for given point.
virtual DtVector offsetPoint (DtVector point, const DtVector &offset, const DtTaitBryan &ori=DtTaitBryan()) const
 Offsets the given point and returns new position Applies the given offset to the input point at the given orientation.
virtual DtVector getAttachedPosition (PointInformation &pointInfo)
 Gets the attached position of the given point Attempts to get and return the attached position of the given point, and returns pointInfo.position if obtaining the attached scene object or updater failed.
virtual void getSceneInformation (const PointInformation &info, DtUniqueID &sceneId)
 Gets the id of the attached element to use for positioning.
virtual void slot_attachedSceneObjectToBeDeleted (DtUniqueID, PointInformation *)
 Called when scene object that this item is attached to is to be deleted.
virtual void slot_attachedUpdaterToBeDeleted (DtUniqueID, PointInformation *)
 Called when updater of attached scene object is to be deleted.
- Protected Member Functions inherited from makVrv::DtAttachableUpdater
virtual void slot_attachedSceneObjectToBeDeleted (const DtUniqueID &)
virtual void slot_attachedUpdaterToBeDeleted (const DtUniqueID &id)
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.
- Protected Member Functions inherited from makVrv::DtSceneObjectUpdater
virtual void slot_sceneObjectToBeDeleted (const DtUniqueID &id)
 Signal that this updater is being destroyed.

Protected Attributes

Intersections myIntersections
double myEntityFanUpdateRate
bool myForceUpdate
double myLastRadius
DtOverlayEllipseArcModelAgent * my2DCircleAgent
DtExtrudedCircleModelAgent * my3DCircleAgent
DtMultiLineModelAgent * myMultiLineModelAgent
DtSceneObjectAgent * mySceneObjectAgent
DtUniqueID mySceneObjectId
- Protected Attributes inherited from makVrv::DtAttachableIntervisibilityUpdater
IntersectionInformation myIntersectionInformation
bool myFixDistance
double myFixedDistance
double myFixedHeading
- Protected Attributes inherited from makVrv::DtLineModelUpdater
PointInformation myStartPoint
PointInformation myEndPoint
- Protected Attributes inherited from makVrv::DtAttachableUpdater
AttachedPointsVector myAttachedPoints
DtVector myPositionOffset
DtTaitBryan myOrientationOffset
- Protected Attributes inherited from makVrv::DtSceneObjectUpdater
DtDemyDe
 The display engine.
DtUniqueID myUniqueId
 This distributed object's unique identifier.
DtSceneObjectmySceneObject
 A pointer to the current scene object being updated.
DtTime myLastUpdateTime
 The last time stamp when the updateSceneObject() was called.
DtSceneObject::TransformList myTransforms
 Local copy of the vertex positions and orientations.
const DtDeSharedStatemyDeSharedState
 This is kept to make terrain scale updating cheaper ( by one virtual function call ).
bool myInManager
 If tick was suppressed, then this updater is not on the tickableManager.

Additional Inherited Members

- Public Types inherited from makVrv::DtAttachableUpdater
enum  AttachedPointType {
  AttachedPointTypeVertex, AttachedPointTypeObject, AttachedPointTypeProportional, AttachedPointTypeDeprecatedObject,
  AttachedPointTypeInvalidObject
}
 Types of attachments. More...
enum  AttachedPointMode { AttachedPointModePositionAndOrientation, AttachedPointModePositionOnly, AttachedPointModeOrientationOnly }
- Public Attributes inherited from makVrv::DtSceneObjectUpdater
boost::signal< void(const
DtUniqueID &) > 
signal_updaterToBeDeleted
 Signal that this updater is being destroyed.

Detailed Description

Class which will keep track of EntityFan los object (spokes between an origin and the outer rim of the circle).

This class is only ever meant to be used in the main thread. It is sub-classed from the DtAttachableintervisibilityUpdater only to reuse code from that class. This class intentionally does not have an agent as it cannot be used in a thread-safe way, so, it should only be used in the main thread (as it is currently used from the DtIntervisibilityEntityFanVisualizer).

Member Typedef Documentation

Map type for mapping entity ids to entity fan intersection info.

Constructor & Destructor Documentation

makVrv::DtAttachableEntityFanUpdater::DtAttachableEntityFanUpdater ( DtDe de,
DtElementID  id,
bool  suppressTick = false 
)

CTOR.

Note
If suppressTick is set true, this objects update() callback gets connected to DtRenderer::signal_postUpdate() signal in the display engine.
virtual makVrv::DtAttachableEntityFanUpdater::~DtAttachableEntityFanUpdater ( )
virtual

DTOR.

Member Function Documentation

virtual void makVrv::DtAttachableEntityFanUpdater::setEntityFanUpdateRate ( double  d)
virtual
virtual void makVrv::DtAttachableEntityFanUpdater::setCircleAgent ( DtOverlayEllipseArcModelAgent *  )
virtual

Sets the agent used to draw the circle.

virtual void makVrv::DtAttachableEntityFanUpdater::setCircleAgent ( DtExtrudedCircleModelAgent *  )
virtual
virtual void makVrv::DtAttachableEntityFanUpdater::setMultiLineModelAgent ( DtMultiLineModelAgent *  )
virtual

Sets the agent used to draw the lines between the center and the entities in the circle.

virtual void makVrv::DtAttachableEntityFanUpdater::setSceneObjectAgent ( DtSceneObjectAgent *  )
virtual

Sets the agent used to manage scene objects.

virtual void makVrv::DtAttachableEntityFanUpdater::updateSceneObject ( DtTime  tNow)
protectedvirtual

Update the scene object position and orientation at each vertex and set the last updated time-stamp.

Parameters
[in]tNowis the current time-stamp.
Note
Derived classes should call this function in their implementation of the update function.
See Also
update( DtTime ).

Reimplemented from makVrv::DtAttachableIntervisibilityUpdater.

virtual bool makVrv::DtAttachableEntityFanUpdater::doIntersection ( )
protectedvirtual

Does intersection if points have changed. Returns true if something has changed.

Reimplemented from makVrv::DtAttachableIntervisibilityUpdater.

virtual void makVrv::DtAttachableEntityFanUpdater::update ( )
protectedvirtual

Calls update with current de sim time.

virtual void makVrv::DtAttachableEntityFanUpdater::update ( DtTime  tNow)
protectedvirtual

Sees if inter-visibility needs to be recalculated, and, if so recalculates and sets all associated lines.

Reimplemented from makVrv::DtAttachableIntervisibilityUpdater.

virtual bool makVrv::DtAttachableEntityFanUpdater::removeElement ( DtElementID  id,
bool  disconnect = true 
)
protectedvirtual

Removes the element from the intersections list, if it exists.

Returns
true if removed
virtual void makVrv::DtAttachableEntityFanUpdater::sceneObjectRemoved ( DtUniqueID  )
protectedvirtual

Called when a scene object is removed, remove it as an element.

virtual bool makVrv::DtAttachableEntityFanUpdater::isIntersectableObject ( const DtElementEntry ) const
protectedvirtual

Returns true if the object should be checked for intersection.

Returns
true for entities

Member Data Documentation

Intersections makVrv::DtAttachableEntityFanUpdater::myIntersections
protected
double makVrv::DtAttachableEntityFanUpdater::myEntityFanUpdateRate
protected
bool makVrv::DtAttachableEntityFanUpdater::myForceUpdate
protected
double makVrv::DtAttachableEntityFanUpdater::myLastRadius
protected
DtOverlayEllipseArcModelAgent* makVrv::DtAttachableEntityFanUpdater::my2DCircleAgent
protected
DtExtrudedCircleModelAgent* makVrv::DtAttachableEntityFanUpdater::my3DCircleAgent
protected
DtMultiLineModelAgent* makVrv::DtAttachableEntityFanUpdater::myMultiLineModelAgent
protected
DtSceneObjectAgent* makVrv::DtAttachableEntityFanUpdater::mySceneObjectAgent
protected
DtUniqueID makVrv::DtAttachableEntityFanUpdater::mySceneObjectId
protected

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

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)