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::DtIndirectPerInstanceDataManager Class Reference

handles data that is specified per instance. Currently only the blend color from the DtOsgArticulatedModel. Owned by a DtIndirectGeometry 1:1

Inheritance diagram for makVrv::DtIndirectPerInstanceDataManager:
Inheritance graph
[legend]

Public Member Functions

virtual ~DtIndirectPerInstanceDataManager ()
 
virtual void addInstance (int perGeomInstanceIndex, int numPerGeomInstances, int instanceId, int lightPointGroupId, bool visible)
 
virtual void removeInstance (int instanceId)
 
virtual void processPerInstanceData (void)
 
virtual void releaseGLObjects (osg::State *state) const
 
virtual const DtGlBuffergpuPerInstanceDataBuffer (void) const
 
virtual void setColor (int instanceId, const Vector4_32 &color)
 
virtual Vector4_32 color (int instanceId) const
 
virtual void setOtherData0 (int instanceId, const Vector4_32 &data)
 
virtual Vector4_32 otherData0 (int instanceId) const
 
virtual void setVisibility (int instanceId, bool visible)
 
virtual bool visibility (int instanceId) const
 
virtual void setLightPointMaxDistance (int instanceId, float distance)
 
virtual float lightPointMaxDistance (int instanceId) const
 
virtual void setLightPointGroupId (int instanceId, int lightPointGroupId)
 
virtual int lightPointGroupId (int instanceId) const
 
- Public Member Functions inherited from makVrv::DtIndirectManager
 DtIndirectManager (DtDe &de, DtInstanceContainer &container)
 
virtual ~DtIndirectManager ()
 

Public Attributes

friend DtIndirectPerInstanceDataManagerCreator
 

Protected Types

typedef std::unordered_map
< int, int
MapInstanceIdToOffsetInInstanceDataBuffer
 

Protected Member Functions

 DtIndirectPerInstanceDataManager (DtDe &de, DtInstanceContainer &container)
 

Protected Attributes

DtGlBuffermyGpuPerInstanceDataBuffer
 
DtReusablePerInstanceData myVectorPerInstanceData
 
bool myMutablePerInstanceDataDirty
 
MapInstanceIdToOffsetInInstanceDataBuffer myMapInstanceIdToOffsetInInstanceDataBuffer
 
- Protected Attributes inherited from makVrv::DtIndirectManager
DtInstanceContainermyInstanceContainer
 
DtDemyDe
 

Private Member Functions

 DtIndirectPerInstanceDataManager ()=delete
 
 DtIndirectPerInstanceDataManager (const DtIndirectPerInstanceDataManager &other)=delete
 
DtIndirectPerInstanceDataManageroperator= (const DtIndirectPerInstanceDataManager &other)=delete
 

Additional Inherited Members

- Public Types inherited from makVrv::DtIndirectManager
enum  ManagerTypes {
  BaseClass, LodManager, SwitchManager, DofManager,
  UvOffsetManager, PerInstanceDataManager
}
 
- Static Public Member Functions inherited from makVrv::DtIndirectManager
static int managerType ()
 

Member Typedef Documentation

map of instance ids to offset in the instance data buffer

Constructor & Destructor Documentation

virtual makVrv::DtIndirectPerInstanceDataManager::~DtIndirectPerInstanceDataManager ( )
virtual

DTOR.

makVrv::DtIndirectPerInstanceDataManager::DtIndirectPerInstanceDataManager ( DtDe de,
DtInstanceContainer container 
)
protected

CTOR. only creator can create.

makVrv::DtIndirectPerInstanceDataManager::DtIndirectPerInstanceDataManager ( )
privatedelete

default constructor not implemented

makVrv::DtIndirectPerInstanceDataManager::DtIndirectPerInstanceDataManager ( const DtIndirectPerInstanceDataManager other)
privatedelete

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

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

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtIndirectPerInstanceDataManager::setColor ( int  instanceId,
const Vector4_32 color 
)
virtual

set/get the color (which is inside per instance data) on an instance

virtual Vector4_32 makVrv::DtIndirectPerInstanceDataManager::color ( int  instanceId) const
virtual

set/get the color (which is inside per instance data) on an instance

virtual void makVrv::DtIndirectPerInstanceDataManager::setOtherData0 ( int  instanceId,
const Vector4_32 data 
)
virtual

set/get the other data 0 (which is inside per instance data) on an instance

virtual Vector4_32 makVrv::DtIndirectPerInstanceDataManager::otherData0 ( int  instanceId) const
virtual

set/get the other data 0 (which is inside per instance data) on an instance

virtual void makVrv::DtIndirectPerInstanceDataManager::setVisibility ( int  instanceId,
bool  visible 
)
virtual

set/get the visibility (which is inside per instance data) on an instance

virtual bool makVrv::DtIndirectPerInstanceDataManager::visibility ( int  instanceId) const
virtual

set/get the visibility (which is inside per instance data) on an instance

virtual void makVrv::DtIndirectPerInstanceDataManager::setLightPointMaxDistance ( int  instanceId,
float  distance 
)
virtual

set/get the light point max distance (which is inside per instance data) on an instance

virtual float makVrv::DtIndirectPerInstanceDataManager::lightPointMaxDistance ( int  instanceId) const
virtual

set/get the light point max distance (which is inside per instance data) on an instance

virtual void makVrv::DtIndirectPerInstanceDataManager::setLightPointGroupId ( int  instanceId,
int  lightPointGroupId 
)
virtual

set/get the light point group id (which is inside per instance data) on an instance

virtual int makVrv::DtIndirectPerInstanceDataManager::lightPointGroupId ( int  instanceId) const
virtual

set/get the light point group id (which is inside per instance data) on an instance

virtual void makVrv::DtIndirectPerInstanceDataManager::addInstance ( int  perGeomInstanceIndex,
int  numPerGeomInstances,
int  instanceId,
int  lightPointGroupId,
bool  visible 
)
virtual

add an instance

virtual void makVrv::DtIndirectPerInstanceDataManager::removeInstance ( int  instanceId)
virtual

remove the instance

virtual void makVrv::DtIndirectPerInstanceDataManager::processPerInstanceData ( void  )
virtual

process the per instance data

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

clean up gl stuff

virtual const DtGlBuffer* makVrv::DtIndirectPerInstanceDataManager::gpuPerInstanceDataBuffer ( void  ) const
virtual

access the per instance data buffer

Member Data Documentation

friend makVrv::DtIndirectPerInstanceDataManager::DtIndirectPerInstanceDataManagerCreator

only creator can create

DtGlBuffer* makVrv::DtIndirectPerInstanceDataManager::myGpuPerInstanceDataBuffer
protected

the gpu buffer for per instance data

DtReusablePerInstanceData makVrv::DtIndirectPerInstanceDataManager::myVectorPerInstanceData
protected

the reusable vector representing per instance data that is used to hold & transfer the data to the GPU

bool makVrv::DtIndirectPerInstanceDataManager::myMutablePerInstanceDataDirty
mutableprotected

do we need an update

MapInstanceIdToOffsetInInstanceDataBuffer makVrv::DtIndirectPerInstanceDataManager::myMapInstanceIdToOffsetInInstanceDataBuffer
protected

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)