VR-Forces 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 addModelGeometryToLoad (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
 
virtual MapModelsToModelInfomapModelsToModelInfo ()
 
virtual std::shared_timed_mutex & mapModelsToModelInfoMutex ()
 

Public Attributes

friend DtIndirectModelInfoContainerCreator
 

Protected Types

using MapModelsToModelInfo = std::map< int, DtIndirectModelInfo * >
 

Protected Member Functions

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

Protected Attributes

MapModelsToModelInfo myMapModelsToModelInfo
 
tbb::concurrent_queue
< DtCopyModelDataStructure
myModelDataToCopy
 
std::atomic< intmyIsCopyingData
 
boost::mutex myCopyDataMutex
 
std::shared_timed_mutex myMutableMapModelsToModelInfoMutex
 
boost::mutex myMutableMaxCoordsBindlessMutex
 
int myMaxCoordsBindless
 
std::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::addModelGeometryToLoad ( 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 MapModelsToModelInfo& makVrv::DtIndirectModelInfoContainer::mapModelsToModelInfo ( )
virtual

Access the model info map and the model info map mutex Allows for single lock for multiple look ups (DtGpuCulling::updateStateIdToMaxNumCommands)

virtual std::shared_timed_mutex& makVrv::DtIndirectModelInfoContainer::mapModelsToModelInfoMutex ( )
virtual

Access the model info map and the model info map mutex Allows for single lock for multiple look ups (DtGpuCulling::updateStateIdToMaxNumCommands)

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
std::atomic<int> makVrv::DtIndirectModelInfoContainer::myIsCopyingData
protected
boost::mutex makVrv::DtIndirectModelInfoContainer::myCopyDataMutex
protected
std::shared_timed_mutex makVrv::DtIndirectModelInfoContainer::myMutableMapModelsToModelInfoMutex
mutableprotected

mutex needs to be used in const functions so must be mutable. read/write mutex protecting the myMapModelsToModelInfo

boost::mutex makVrv::DtIndirectModelInfoContainer::myMutableMaxCoordsBindlessMutex
mutableprotected
int makVrv::DtIndirectModelInfoContainer::myMaxCoordsBindless
protected
std::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 Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)