VR-Forces 5.0.3 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::DtIndirectModelInfoContainer Class Reference

Class that loads and contains a bunch of models registered with the registrar. It is owned by the Indirect geometry registrar.

Public Member Functions

virtual ~DtIndirectModelInfoContainer ()
 
virtual void releaseGLObjects (osg::State *state) const
 
virtual void addModelSubGeometryToLoad (const DtCopyModelDataStructure &cds)
 
virtual bool hasDataToAsyncLoad () const
 
virtual bool hasDataToCopy () const
 
virtual int isCopyingData () const
 
virtual bool isNotCopyingData ()
 
virtual int numModels (void) const
 
virtual int modelId (int index) const
 
virtual
DtIndirectModelInfoCreationResult 
getOrCreateModelInfoFor (int modelId)
 
virtual DtIndirectModelInfofindModelInfoFor (int modelId)
 
virtual GLenum indicesType (void) const
 
virtual void copyDataQueue ()
 
virtual int numTexCoordArrays (void) const
 

Public Attributes

friend DtIndirectModelInfoContainerCreator
 

Protected Types

typedef std::map< int,
DtIndirectModelInfo * > 
MapModelsToModelInfo
 

Protected Member Functions

 DtIndirectModelInfoContainer (DtDe &de)
 
virtual void copyData (DtCopyModelDataStructure &data)
 

Protected Attributes

MapModelsToModelInfo myMapModelsToModelInfo
 
tbb::concurrent_queue
< DtCopyModelDataStructure
myModelDataToCopy
 
tbb::atomic< intmyIsCopyingData
 
boost::mutex myCopyDataMutex
 
boost::mutex myMutableMapModelsToModelInfoMutex
 
boost::mutex myMutableMaxCoordsBindlessMutex
 
int myMaxCoordsBindless
 
tbb::atomic< intmyCancelTask
 
DtDemyDe
 

Private Member Functions

 DtIndirectModelInfoContainer ()=delete
 
 DtIndirectModelInfoContainer (const DtIndirectModelInfoContainer &other)=delete
 
DtIndirectModelInfoContaineroperator= (const DtIndirectModelInfoContainer &other)=delete
 

Member Typedef Documentation

Constructor & Destructor Documentation

virtual makVrv::DtIndirectModelInfoContainer::~DtIndirectModelInfoContainer ( )
virtual

destructor

makVrv::DtIndirectModelInfoContainer::DtIndirectModelInfoContainer ( DtDe de)
protected

constructor. protected. only creator can create

makVrv::DtIndirectModelInfoContainer::DtIndirectModelInfoContainer ( )
privatedelete

not allowed

makVrv::DtIndirectModelInfoContainer::DtIndirectModelInfoContainer ( const DtIndirectModelInfoContainer other)
privatedelete

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

DtIndirectModelInfoContainer& makVrv::DtIndirectModelInfoContainer::operator= ( const DtIndirectModelInfoContainer other)
privatedelete

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtIndirectModelInfoContainer::releaseGLObjects ( osg::State *  state) const
virtual

used to release resources

virtual void makVrv::DtIndirectModelInfoContainer::addModelSubGeometryToLoad ( const DtCopyModelDataStructure cds)
virtual

add geometry descriptor to the queue for future async loading.

virtual bool makVrv::DtIndirectModelInfoContainer::hasDataToAsyncLoad ( ) const
virtual

checks if there's data to start loading and isn't currently running an async task

virtual bool makVrv::DtIndirectModelInfoContainer::hasDataToCopy ( ) const
virtual

checks if there's data to start loading

virtual int makVrv::DtIndirectModelInfoContainer::isCopyingData ( ) const
virtual

access to copy data atomic

virtual bool makVrv::DtIndirectModelInfoContainer::isNotCopyingData ( )
virtual

check whether the copy data atomic is false and also the copy data mutex was acquired PPP: not sure why both are needed

virtual int makVrv::DtIndirectModelInfoContainer::numModels ( void  ) const
virtual

number of models registered here

virtual int makVrv::DtIndirectModelInfoContainer::modelId ( int  index) const
virtual

the actual model id of the model with index

virtual DtIndirectModelInfoCreationResult makVrv::DtIndirectModelInfoContainer::getOrCreateModelInfoFor ( int  modelId)
virtual

the actual modelinfo from the modelid

virtual DtIndirectModelInfo* makVrv::DtIndirectModelInfoContainer::findModelInfoFor ( int  modelId)
virtual

the actual modelinfo from the modelid

virtual GLenum makVrv::DtIndirectModelInfoContainer::indicesType ( void  ) const
virtual

the indices' type (unsigned short or unsigned int, usually unsigned int)

virtual void makVrv::DtIndirectModelInfoContainer::copyDataQueue ( )
virtual

run through the data that needs to be copied and copy until canceled

virtual int makVrv::DtIndirectModelInfoContainer::numTexCoordArrays ( void  ) const
virtual

The max texture coordinates unit/number of the texture coordinate sets.

virtual void makVrv::DtIndirectModelInfoContainer::copyData ( DtCopyModelDataStructure data)
protectedvirtual

copy data described in structure into the aggregate geometry, usually called by async thread.

Member Data Documentation

friend makVrv::DtIndirectModelInfoContainer::DtIndirectModelInfoContainerCreator

only creator can create

MapModelsToModelInfo makVrv::DtIndirectModelInfoContainer::myMapModelsToModelInfo
protected
tbb::concurrent_queue<DtCopyModelDataStructure> makVrv::DtIndirectModelInfoContainer::myModelDataToCopy
protected
tbb::atomic<int> makVrv::DtIndirectModelInfoContainer::myIsCopyingData
protected
boost::mutex makVrv::DtIndirectModelInfoContainer::myCopyDataMutex
protected
boost::mutex makVrv::DtIndirectModelInfoContainer::myMutableMapModelsToModelInfoMutex
mutableprotected

mutex needs to be used in const functions so must be mutable.

boost::mutex makVrv::DtIndirectModelInfoContainer::myMutableMaxCoordsBindlessMutex
mutableprotected
int makVrv::DtIndirectModelInfoContainer::myMaxCoordsBindless
protected
tbb::atomic<int> makVrv::DtIndirectModelInfoContainer::myCancelTask
protected
DtDe& makVrv::DtIndirectModelInfoContainer::myDe
protected

reference to De


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

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)