VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtElementData Class Reference

The element data is all the information about all elements in the scene.

Public Types

typedef std::vector< DtUniqueIDSceneObjectIdList
 
typedef boost::unordered_map
< DtElementID, DtElementEntry * > 
ElementEntryMap
 
typedef boost::unordered_map
< DtElementID,
SceneObjectIdList
ElementToSceneObjectMap
 
typedef std::vector
< DtElementEntry * > 
ElementList
 
typedef std::vector< DtElementIDUniqueIdList
 
typedef std::vector< DtElementIDElementIdList
 

Public Member Functions

 DtElementData (DtDe &de)
 
virtual ~DtElementData ()
 
void applyChanges (const DtElementChanges &changes)
 
const ElementEntryMapelements () const
 
const ElementToSceneObjectMapelementToSceneObjectMap () const
 
DtElementEntryfindElement (DtElementID id)
 
void findAll (DtElementEntry::ElementType type, ElementList &outVector, bool sort=true)
 
void findAll (const std::vector< DtElementEntry::ElementType > &types, ElementList &outVector, bool sort=true)
 
void findAll (ElementList &outVector, bool sort=true)
 
virtual void addElementID (const DtElementID &elementID, const DtUniqueID &sceneObjectID, int modelSet)
 
virtual void addElementID (const DtElementID &elementID, const DtUniqueID &sceneObjectID)
 
virtual void removeElementID (const DtElementID &elementID, const DtUniqueID &sceneObjectID, int modelSet)
 
virtual void removeElementID (const DtElementID &elementID, const DtUniqueID &sceneObjectID)
 
virtual void getSceneObjectIds (const DtElementID &elementID, SceneObjectIdList &outputList, int modelSet=-1) const
 
DtSceneObjectfindSceneObjectFromElementId (DtElementID elementId, int modelSet=DtObserverMode::ModelSet3dModels)
 
DtSceneObjectfindSceneObjectFromSceneObjectId (DtUniqueID sceneObjId)
 
virtual DtElementID elementIdFromSceneObjectId (const DtUniqueID &sceneObjectID) const
 
virtual const
DtElementAttributeManager
attributeManager () const
 
virtual DtElementAttributeManagerattributeManager ()
 

Public Attributes

boost::signalslib::signal
< void(const ElementList &) > 
signal_elementsAdded
 
boost::signalslib::signal
< void(const ElementIdList &) > 
signal_elementsInitialized
 
boost::signalslib::signal
< void(const ElementIdList &) > 
signal_elementsToBeRemoved
 
boost::signalslib::signal
< void(const ElementIdList &) > 
signal_sceneObjectsAdded
 

Protected Types

typedef boost::unordered_map
< int, ElementToSceneObjectMap
ModelSetToElementSceneObjectMap
 
typedef boost::unordered_map
< DtUniqueID, DtElementID
SceneObjectToElementMap
 

Protected Member Functions

virtual void slot_preTick ()
 

Protected Attributes

DtDemyDe
 
ElementEntryMap myElements
 
ElementToSceneObjectMap myElementToSceneObjectMap
 
ModelSetToElementSceneObjectMap myModelSetToElementSceneObjectMap
 
SceneObjectToElementMap mySceneObjectToElementMap
 
boost::unordered_set< DtElementIDmyElementsAddedLastFrame
 
DtElementAttributeManagermyElementAttributeManager
 

Private Member Functions

 DtElementData ()
 
 DtElementData (const DtElementData &orig)
 
DtElementDataoperator= (const DtElementData &rhs)
 

Member Typedef Documentation

Public Type Definitions.

Type definition for a vector of scene object Ids.

Type definition for an unordered map of element ids to DtElementEntry pointers.

Type definition for an unordered map of element ids to SceneObjectIdList.

Type definition for a vector of DtElementEntry pointers.

Public Type Definitions.

Type definition for a vector of scene object Ids.

Type definition for a vector of DtElementIDs. DtElementIDs ARE DtUniqueIDs, but not all DtUniqueIDs are DtElementIDs. Using this type instead of UniqueIdList makes it clear to the user that they are working with DtElementIDs.

typedef boost::unordered_map<DtUniqueID, DtElementID> makVrv::DtElementData::SceneObjectToElementMap
protected

Constructor & Destructor Documentation

makVrv::DtElementData::DtElementData ( DtDe de)

CTOR.

virtual makVrv::DtElementData::~DtElementData ( )
virtual

DTOR.

makVrv::DtElementData::DtElementData ( )
private

Unimplemented default CTOR.

makVrv::DtElementData::DtElementData ( const DtElementData orig)
private

Unimplemented Default Copy CTOR.

Member Function Documentation

void makVrv::DtElementData::applyChanges ( const DtElementChanges changes)

Apply changes via an element changes object.

const ElementEntryMap& makVrv::DtElementData::elements ( ) const

Get the element map.

const ElementToSceneObjectMap& makVrv::DtElementData::elementToSceneObjectMap ( ) const

Get the element to scene object map.

DtElementEntry* makVrv::DtElementData::findElement ( DtElementID  id)

Find an element.

void makVrv::DtElementData::findAll ( DtElementEntry::ElementType  type,
ElementList outVector,
bool  sort = true 
)

Find all elements of a given type, and return in a array (which by default is sorted according to their ID)

void makVrv::DtElementData::findAll ( const std::vector< DtElementEntry::ElementType > &  types,
ElementList outVector,
bool  sort = true 
)

Find all elements of a for several types, and return in a array (which by default is sorted according to their ID)

void makVrv::DtElementData::findAll ( ElementList outVector,
bool  sort = true 
)

Find all elements and return in a array (which by default is sorted according to their ID)

virtual void makVrv::DtElementData::addElementID ( const DtElementID elementID,
const DtUniqueID sceneObjectID,
int  modelSet 
)
virtual

Tell the mapper about an element ID / scene object ID pairing, as well as the model set the scene object is from.

virtual void makVrv::DtElementData::addElementID ( const DtElementID elementID,
const DtUniqueID sceneObjectID 
)
virtual

Tell the mapper about an element ID / scene object ID pairing for an element that is not part of a model set (such as a prop)

virtual void makVrv::DtElementData::removeElementID ( const DtElementID elementID,
const DtUniqueID sceneObjectID,
int  modelSet 
)
virtual

remove an element ID / scene object ID pairing for a scene object that is part of a model set.

virtual void makVrv::DtElementData::removeElementID ( const DtElementID elementID,
const DtUniqueID sceneObjectID 
)
virtual

remove an element ID / scene object ID pairing for a scene object that is not part of a model set.

virtual void makVrv::DtElementData::getSceneObjectIds ( const DtElementID elementID,
SceneObjectIdList outputList,
int  modelSet = -1 
) const
virtual

Get the scene object ID from the specified modelset that is associated with an element ID (or all scene object IDs associated with that element ID)

DtSceneObject* makVrv::DtElementData::findSceneObjectFromElementId ( DtElementID  elementId,
int  modelSet = DtObserverMode::ModelSet3dModels 
)

Find a single scene object from a specified model set. This function gets all the scene object ids for the given elementId, using getSceneObjectIds(...), and returns NULL if getSceneObjectIds(...) returns an empty list.

Parameters
elementIdThe element ID of the scene object being sought after
modelSetThe model set of the scene object being sought after, defaults to 3D Models.
See Also
DtObserverMode::ModelSets
DtSceneObject* makVrv::DtElementData::findSceneObjectFromSceneObjectId ( DtUniqueID  sceneObjId)

Find a scene object from a scene object id. May return NULL.

virtual DtElementID makVrv::DtElementData::elementIdFromSceneObjectId ( const DtUniqueID sceneObjectID) const
virtual

Get the element ID associated with a scene object ID Returns (DtElementID)-1 if element id is not found.

virtual const DtElementAttributeManager& makVrv::DtElementData::attributeManager ( ) const
virtual

Get a const reference to the.

See Also
DtElementAttributeManager
virtual DtElementAttributeManager& makVrv::DtElementData::attributeManager ( )
virtual

Get a non-const reference to the.

See Also
DtElementAttributeManager
DtElementData& makVrv::DtElementData::operator= ( const DtElementData rhs)
private

Unimplemented Default assignment operator.

virtual void makVrv::DtElementData::slot_preTick ( )
protectedvirtual

Check for new elements from last frame.

Member Data Documentation

boost::signalslib::signal< void (const ElementList&) > makVrv::DtElementData::signal_elementsAdded

Signal that elements have been added.

boost::signalslib::signal< void (const ElementIdList&) > makVrv::DtElementData::signal_elementsInitialized

When the signal_elementsAdded signal is raised, none of the element attributes (like displayName, connectionObjectID, etc.) have been set yet; nor have any associated scene objects, which limits the usefulness of that signal. This signal is raised at the start of the next frame after the elements were added, at which point any initial attributes will be set and scene objects created. Note that users needs to listen to DtSceneObject::signal_sceneObjectToBeDeleted if holding on to scene object pointers.

boost::signalslib::signal< void (const ElementIdList&) > makVrv::DtElementData::signal_elementsToBeRemoved

Signal elements to be removed.

boost::signalslib::signal< void(const ElementIdList&) > makVrv::DtElementData::signal_sceneObjectsAdded

Signal a list of elements that have had scene objects added. This can be used in place of signal_elementsInitialized if desired (we will probably deprecate that signal.

DtDe& makVrv::DtElementData::myDe
protected
ElementEntryMap makVrv::DtElementData::myElements
protected
ElementToSceneObjectMap makVrv::DtElementData::myElementToSceneObjectMap
protected
ModelSetToElementSceneObjectMap makVrv::DtElementData::myModelSetToElementSceneObjectMap
protected
SceneObjectToElementMap makVrv::DtElementData::mySceneObjectToElementMap
protected
boost::unordered_set<DtElementID> makVrv::DtElementData::myElementsAddedLastFrame
protected
DtElementAttributeManager* makVrv::DtElementData::myElementAttributeManager
protected

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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)