VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions
makVrv::DtInstanceContainer Class Reference

Helper class to manage instances This class allows you to add a DtInstance_64 Internally, however it stores this as a DtInstance (which the GPU can directly read) More...

Public Member Functions

 DtInstanceContainer ()
 CTOR. More...
 
virtual ~DtInstanceContainer ()
 DTOR. More...
 

Private Member Functions

 DtInstanceContainer (const DtInstanceContainer &)=delete
 not allowed More...
 
DtInstanceContaineroperator= (const DtInstanceContainer &)=delete
 not allowed More...
 
typedef std::unordered_map
< int, DtIndirectOffsetAndSize
MapInstanceIdToPerGeomInstanceOffsetAndSize
 
typedef std::unordered_map
< int, int
MapInstanceIdToNumLightSources
 
MapIntToInt myModelIdToGeomOffset
 
SetInts myUniqueModels
 
VectorInts myModelAddedOrder
 
MapIntToInt myModelIdToGeometryCount
 
int myNumUniqueGeometries
 
MapInstanceIdToPerGeomInstanceOffsetAndSize myMapInstanceIdToPerGeomInstanceOffsetAndSize
 
MapInstanceIdToNumLightSources myMapInstanceIdToNumLightSources
 
int myRunningInstanceId
 
int myNumValidInstances
 
DtReusablePerGeomInstances myPerGeomInstances
 
unsigned int myMaxNumLightSources
 
virtual void addInstance (const int modelId, const DtPerGeomInstances &perGeomInstancesTemplate, int geometryLocations, int lightSourceCount, int &outPerGeomTemplateOffset, int &outNumGeoms, int &outInstanceIndex)
 Add, remove, access instances addInstance also creates the perGeomInstances needed and returns the number of per geom instances that were created and the offset into the perGeomInstance vector. More...
 
virtual bool removeInstance (int instanceId)
 remove an instance with a given id More...
 
virtual bool hasInstance (int instanceId) const
 has an instance with a given id? More...
 
virtual const
DtReusablePerGeomInstances
perGeomInstances (void) const
 gets unique geometry Instance data like switch states. (const) More...
 
virtual
DtReusablePerGeomInstances
perGeomInstances (void)
 gets unique geometry Instance data like switch states. (non-const) More...
 
virtual void printPerGeomInstances () const
 For debugging. Print the contents. More...
 
virtual int numValidInstances (void) const
 the number of (valid) instances More...
 
virtual int numUniqueGeometriesForModel (int modelId) const
 get the number of unique geometries that a particular model has More...
 
virtual int numUniqueGeometries () const
 tracks how many unique geometries there are, for use in buffer memory management. More...
 
virtual bool instanceEverAdded (void) const
 was an instance ever added? not the same as numValidInstances() More...
 
virtual const
DtIndirectOffsetAndSize
perGeomInstanceOffsetAndSize (int instanceId) const
 access the per geom instance offset and size vector More...
 
virtual void incrementNumUniqueGeometries (int number)
 adds number to myNumUniqueGeometries More...
 
virtual const std::vector< int > & modelAddedOrder () const
 get the vector of model ids in the order that they were added More...
 
virtual unsigned int maxNumLightSources () const
 get the maximum number of light sources that can possibly be rendered by this container More...
 

Detailed Description

Helper class to manage instances This class allows you to add a DtInstance_64 Internally, however it stores this as a DtInstance (which the GPU can directly read)

Member Typedef Documentation

Constructor & Destructor Documentation

makVrv::DtInstanceContainer::DtInstanceContainer ( )

CTOR.

virtual makVrv::DtInstanceContainer::~DtInstanceContainer ( )
virtual

DTOR.

makVrv::DtInstanceContainer::DtInstanceContainer ( const DtInstanceContainer )
privatedelete

not allowed

Member Function Documentation

DtInstanceContainer& makVrv::DtInstanceContainer::operator= ( const DtInstanceContainer )
privatedelete

not allowed

virtual void makVrv::DtInstanceContainer::addInstance ( const int  modelId,
const DtPerGeomInstances perGeomInstancesTemplate,
int  geometryLocations,
int  lightSourceCount,
int outPerGeomTemplateOffset,
int outNumGeoms,
int outInstanceIndex 
)
virtual

Add, remove, access instances addInstance also creates the perGeomInstances needed and returns the number of per geom instances that were created and the offset into the perGeomInstance vector.

virtual bool makVrv::DtInstanceContainer::removeInstance ( int  instanceId)
virtual

remove an instance with a given id

virtual bool makVrv::DtInstanceContainer::hasInstance ( int  instanceId) const
virtual

has an instance with a given id?

virtual const DtReusablePerGeomInstances& makVrv::DtInstanceContainer::perGeomInstances ( void  ) const
virtual

gets unique geometry Instance data like switch states. (const)

virtual DtReusablePerGeomInstances& makVrv::DtInstanceContainer::perGeomInstances ( void  )
virtual

gets unique geometry Instance data like switch states. (non-const)

virtual void makVrv::DtInstanceContainer::printPerGeomInstances ( ) const
virtual

For debugging. Print the contents.

virtual int makVrv::DtInstanceContainer::numValidInstances ( void  ) const
virtual

the number of (valid) instances

virtual int makVrv::DtInstanceContainer::numUniqueGeometriesForModel ( int  modelId) const
virtual

get the number of unique geometries that a particular model has

virtual int makVrv::DtInstanceContainer::numUniqueGeometries ( ) const
virtual

tracks how many unique geometries there are, for use in buffer memory management.

virtual bool makVrv::DtInstanceContainer::instanceEverAdded ( void  ) const
virtual

was an instance ever added? not the same as numValidInstances()

virtual const DtIndirectOffsetAndSize& makVrv::DtInstanceContainer::perGeomInstanceOffsetAndSize ( int  instanceId) const
virtual

access the per geom instance offset and size vector

virtual void makVrv::DtInstanceContainer::incrementNumUniqueGeometries ( int  number)
virtual

adds number to myNumUniqueGeometries

virtual const std::vector<int>& makVrv::DtInstanceContainer::modelAddedOrder ( ) const
virtual

get the vector of model ids in the order that they were added

virtual unsigned int makVrv::DtInstanceContainer::maxNumLightSources ( ) const
virtual

get the maximum number of light sources that can possibly be rendered by this container

Member Data Documentation

MapIntToInt makVrv::DtInstanceContainer::myModelIdToGeomOffset
protected
SetInts makVrv::DtInstanceContainer::myUniqueModels
protected
VectorInts makVrv::DtInstanceContainer::myModelAddedOrder
protected
MapIntToInt makVrv::DtInstanceContainer::myModelIdToGeometryCount
protected
int makVrv::DtInstanceContainer::myNumUniqueGeometries
protected
MapInstanceIdToPerGeomInstanceOffsetAndSize makVrv::DtInstanceContainer::myMapInstanceIdToPerGeomInstanceOffsetAndSize
protected
MapInstanceIdToNumLightSources makVrv::DtInstanceContainer::myMapInstanceIdToNumLightSources
protected
int makVrv::DtInstanceContainer::myRunningInstanceId
protected
int makVrv::DtInstanceContainer::myNumValidInstances
protected
DtReusablePerGeomInstances makVrv::DtInstanceContainer::myPerGeomInstances
protected
unsigned int makVrv::DtInstanceContainer::myMaxNumLightSources
protected

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

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)