VR-Forces 4.0.4 Class Documentation
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]

List of all members.

Classes

struct  EntityFanIntersectionInformation

Public Member Functions

 DtAttachableEntityFanUpdater (DtDe &de, DtElementID id, bool doNotAddToMgr=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.

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 ()
 push the results to the scene object. Called by update()
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 (double)
 Sees if intervisibility 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. Returns true for entities.

Protected Attributes

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

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 subclassed 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

CTOR.

If doNotAddToMgr is true, will hook up callback for postTick on de to to do the update

DTOR.


Member Function Documentation

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 ( ) [protected, virtual]

push the results to the scene object. Called by update()

Reimplemented from makVrv::DtAttachableIntervisibilityUpdater.

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

Reimplemented from makVrv::DtAttachableIntervisibilityUpdater.

virtual void makVrv::DtAttachableEntityFanUpdater::update ( ) [protected, virtual]

Calls update with current de sim time.

virtual void makVrv::DtAttachableEntityFanUpdater::update ( double  ) [protected, virtual]

Sees if intervisibility 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 
) [protected, virtual]

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

Returns true if removed

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

virtual bool makVrv::DtAttachableEntityFanUpdater::isIntersectableObject ( const DtElementEntry ) const [protected, virtual]

Returns true if the object should be checked for intersection. Returns true for entities.


Member Data Documentation

DtOverlayEllipseArcModelAgent* makVrv::DtAttachableEntityFanUpdater::my2DCircleAgent [protected]
DtExtrudedCircleModelAgent* makVrv::DtAttachableEntityFanUpdater::my3DCircleAgent [protected]

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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)