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 | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtIndirectPerInstanceDataManager Class Reference

handles data that is specified per instance. More...

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

Public Member Functions

virtual ~DtIndirectPerInstanceDataManager ()
 DTOR. More...
 
virtual void addInstance (int perGeomInstanceIndex, int numPerGeomInstances, int instanceId, int lightPointGroupId)
 add an instance More...
 
virtual void removeInstance (int instanceId)
 remove the instance More...
 
virtual void processPerInstanceData (void)
 process the per instance data More...
 
virtual void releaseGLObjects (osg::State *state) const
 clean up gl stuff More...
 
virtual const DtGlBuffergpuPerInstanceDataBuffer (void) const
 access the per instance data buffer More...
 
virtual void setColor (int instanceId, const Vector4_32 &color)
 set/get the color (which is inside per instance data) on an instance More...
 
virtual Vector4_32 color (int instanceId) const
 
virtual void setOtherData0 (int instanceId, const Vector4_32 &data)
 set/get the other data 0 (which is inside per instance data) on an instance More...
 
virtual Vector4_32 otherData0 (int instanceId) const
 
virtual void setVisibility (int instanceId, bool visible)
 set/get the visibility (which is inside per instance data) on an instance More...
 
virtual bool visibility (int instanceId) const
 
virtual void setLightPointMaxDistance (int instanceId, float distance)
 set/get the light point max distance (which is inside per instance data) on an instance More...
 
virtual float lightPointMaxDistance (int instanceId) const
 
virtual void setLightPointGroupId (int instanceId, int lightPointGroupId)
 set/get the light point group id (which is inside per instance data) on an instance More...
 
virtual int lightPointGroupId (int instanceId) const
 
- Public Member Functions inherited from makVrv::DtIndirectManager
 DtIndirectManager (DtDe &de, DtInstanceContainer &container)
 CTOR. More...
 
virtual ~DtIndirectManager ()
 DTOR. More...
 

Public Attributes

friend DtIndirectPerInstanceDataManagerCreator
 only creator can create More...
 

Protected Types

typedef std::unordered_map
< int, int
MapInstanceIdToOffsetInInstanceDataBuffer
 map of instance ids to offset in the instance data buffer More...
 

Protected Member Functions

 DtIndirectPerInstanceDataManager (DtDe &de, DtInstanceContainer &container)
 CTOR. only creator can create. More...
 

Protected Attributes

DtGlBuffermyGpuPerInstanceDataBuffer
 the gpu buffer for per instance data More...
 
DtReusablePerInstanceData myVectorPerInstanceData
 the reusable vector representing per instance data that is used to hold & transfer the data to the GPU More...
 
bool myMutablePerInstanceDataDirty
 do we need an update More...
 
MapInstanceIdToOffsetInInstanceDataBuffer myMapInstanceIdToOffsetInInstanceDataBuffer
 
- Protected Attributes inherited from makVrv::DtIndirectManager
DtInstanceContainermyInstanceContainer
 
DtDemyDe
 

Private Member Functions

 DtIndirectPerInstanceDataManager ()=delete
 default constructor not implemented More...
 
 DtIndirectPerInstanceDataManager (const DtIndirectPerInstanceDataManager &other)=delete
 Copy Constructor not implemented – Copy Not Allowed. More...
 
DtIndirectPerInstanceDataManageroperator= (const DtIndirectPerInstanceDataManager &other)=delete
 Assignment Operator Not implemented – Assignment Not Allowed. More...
 

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 ()
 what type of manager is this class More...
 

Detailed Description

handles data that is specified per instance.

Currently only the blend color from the DtOsgArticulatedModel. Owned by a DtIndirectGeometry 1:1

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
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
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
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
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
virtual void makVrv::DtIndirectPerInstanceDataManager::addInstance ( int  perGeomInstanceIndex,
int  numPerGeomInstances,
int  instanceId,
int  lightPointGroupId 
)
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 Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)