![]() |
VR-Forces 4.10 Class Documentation
|
handles the dof nodes for all the indirect geometry. More...

Classes | |
| struct | IndirectDofInfoInvalidator |
| initializer/invalidator for dof infos More... | |
| struct | IndirectDofInfoRemovalPredicate |
| removal predicate to know which dof infos belong to the same instance More... | |
Public Types | |
| typedef osg::observer_ptr < osg::Node > | NodeObserverPtr |
| typedef std::pair < NodeObserverPtr, DtIndirectDofInfo > | NodeDofInfoPair |
| typedef std::pair < NodeObserverPtr, int > | NodeDofInfoIndexPair |
| typedef std::deque < NodeDofInfoPair > | DequeNodeDofInfoPairs |
| typedef std::unordered_map < int, DtIndirectAnimatingDof * > | MapInfoIdxToAnimatingDof |
| typedef std::unordered_map < int, int > | MapInstanceIdToDofInfo |
| typedef std::map< osg::ref_ptr < osgSim::DOFTransform > , MapInstanceIdToDofInfo > | MapNodeToMapInstanceIdToDofInfoIndex |
Public Types inherited from makVrv::DtIndirectManager | |
| enum | ManagerTypes { BaseClass, LodManager, SwitchManager, DofManager, UvOffsetManager, PerInstanceDataManager } |
Public Member Functions | |
| virtual | ~DtIndirectDofManager () |
| DTOR. More... | |
| virtual void | addDofPaths (int perGeomInstanceIndex, int size, const DequeNodeDofInfoPairs &parentDofPaths, const DequeNodeDofInfoPairs &dofPaths, int instanceId, float modelScale, float modelRadius) |
| Add a list of dof paths to the dof manager. Once added they are connected to the signal or called directly, so that changes can be passed down to the indirect buffer. More... | |
| virtual void | removeDofPaths (int instanceId) |
| remove the dof paths/infos associated with an instance More... | |
| virtual void | setDof (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId) |
| set the dof state of an instance/clone, with an instance id. More... | |
| virtual void | setDofTranslation (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, const Vector3_64 &trans, const Vector3_64 &transVel) |
| set the translation and translation velocity for a particular instance of a particular dof More... | |
| virtual void | setDofOrientation (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, const Vector3_64 &hpr, const Vector3_64 &hprVel) |
| set the HPR (heading, pitch and roll) & HPR velocity for a particular instance of a particular dof More... | |
| virtual void | setDofOrientation (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, const Vector3_64 &hprVel, bool forceUpdate) |
| set the HPR velocity for a particular instance of a particular dof More... | |
| virtual void | setDofTransform (IndirectDofInfo &info, const osgSim::DOFTransform *clone) |
| set the dof transform for a particular instance of a particular dof More... | |
| virtual void | setInstanceXform (const Matrix4_32 &xform, int instanceId) |
| set the top level instance transform for an instance More... | |
| virtual Matrix4_32 | instanceXform (int instanceId) const |
| get the top level instance transform for an instance More... | |
| virtual void | update (const osg::FrameStamp *frameStamp) |
| update dofs when pure signal based dof is true, this function does nothing More... | |
| virtual void | setPureSignalBasedDofs (bool val) |
| indicate whether this manager's dofs get updated per frame via looking at the actual dofs or directly using signals More... | |
| virtual bool | pureSignalBasedDofs (void) const |
| indicate whether this manager's dofs get updated per frame via looking at the actual dofs or directly using signals More... | |
| virtual void | reloadShaders () const |
| reload shaders More... | |
| virtual void | releaseGLObjects (osg::State *state) const |
| clean up gl More... | |
| virtual void | processDofs (const DtIndirectViewParameters &viewParameters, const DtGlBuffer *gpuInputPerGeomInstancesBuffer, const DtGlBuffer *gpuMaterialsBuffer, const osg::Camera *camera) |
| setup and run the dof compute shader which calculates all the dof transform matrices More... | |
| virtual const DtGlBuffer * | gpuDofTransformBuffer (const osg::Camera *camera) const |
| Buffer containing the final transforms per geom instance id. More... | |
| virtual const DtGlBuffer * | gpuDofModelScaleBuffer (const osg::Camera *camera) const |
| Buffer containing the model scales per geom instance id used by the lod and the light point vs. More... | |
Public Member Functions inherited from makVrv::DtIndirectManager | |
| DtIndirectManager (DtDe &de, DtInstanceContainer &container) | |
| CTOR. More... | |
| virtual | ~DtIndirectManager () |
| DTOR. More... | |
Public Attributes | |
| friend | DtIndirectDofManagerCreator |
| only creator can create More... | |
Protected Types | |
| typedef std::map < osg::observer_ptr< const osg::Camera >, DtGlBuffer * > | CameraToBufferMap |
| typedef DtReusableMemoryVector < IndirectDofInfo, IndirectDofInfoInvalidator, IndirectDofInfoRemovalPredicate > | VectorIndirectDofInfos |
Protected Member Functions | |
| DtIndirectDofManager (DtDe &de, DtInstanceContainer &container) | |
| CTOR. only creator can create. More... | |
| virtual void | addDof (int perGeomInstanceIndex, const NodeDofInfoPair &dofChildPair, int instanceId, int baseParentDofIndex, const int dofInfoId, const float modelScale, const float modelRadius) |
| Adds a single dof for a single per geometry instance. More... | |
| virtual void | updateAnimatingDofs (const osg::FrameStamp *frameStamp) |
| update dofs More... | |
| virtual void | deleteBuffers (void) |
| delete the GPU buffers More... | |
| virtual void | tearDownBuffers (void) const |
| delete the GPU buffers but leave the CPU objects that hold the buffers alone. More... | |
| virtual void | updateDofBuffersIfNecessary () |
| if the dof buffers are dirty then update them More... | |
| virtual void | deleteShaders () const |
| delete the compute shader program More... | |
| virtual void | updateDofs () |
| update all the dofs managed by this manager More... | |
| virtual bool | findDofInfoIndex (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, int &infoIdx) |
| find the dof info index for a given clone in an instance returns true if succeeded. More... | |
| virtual DtIndirectAnimatingDof * | findOrCreateAnimatingDof (int infoIdx, osgSim::DOFTransform *dof) |
| find or create an animating dof for this dof info index for this dof More... | |
| virtual void | printInfo () |
| print out the info of what's contained in the maps More... | |
| virtual void | flushCameraSpecificBuffers (void) |
| model scale buffer and dof xform buffers are camera specific check to see if any cameras are no longer valid and destroy their buffers if they are invalid. More... | |
| virtual void | createCameraSpecificBuffersIfNeeded (const osg::Camera *camera) |
| model scale buffer and dof xform buffers are camera specific create them for the current camera if needed More... | |
Protected Attributes | |
| bool | myPureSignalBasedDofs |
| DtIndirectDofProgram * | myMutableDofProgram |
| DtGlBuffer * | myGpuDofInfoBuffer |
| The buffer containing all the dof infos for all instances managed by this manager. More... | |
| CameraToBufferMap | myGpuDofTransformBufferMap |
| The buffer containing the transform for each instance to know where it should be drawn. More... | |
| CameraToBufferMap | myGpuDofModelScaleBufferMap |
| The output buffer containing the computed model scale for each geom instance. More... | |
| bool | myMutableDofInfoDirty |
| unsigned int | myMaxPerGeomInstanceId |
| MapNodeToMapInstanceIdToDofInfoIndex | myMapNodeToMapInstanceIdToDofInfoIndex |
| VectorIndirectDofInfos | myVectorIndirectDofInfos |
| std::unordered_map< int, int > | myInstanceToXformBaseIndex |
| MapInfoIdxToAnimatingDof | myAnimatingDofs |
Protected Attributes inherited from makVrv::DtIndirectManager | |
| DtInstanceContainer & | myInstanceContainer |
| DtDe & | myDe |
Private Member Functions | |
| DtIndirectDofManager ()=delete | |
| default constructor not implemented More... | |
| DtIndirectDofManager (const DtIndirectDofManager &other)=delete | |
| Copy Constructor not implemented – Copy Not Allowed. More... | |
| DtIndirectDofManager & | operator= (const DtIndirectDofManager &other)=delete |
| Assignment Operator Not implemented – Assignment Not Allowed. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from makVrv::DtIndirectManager | |
| static int | managerType () |
| what type of manager is this class More... | |
handles the dof nodes for all the indirect geometry.
Sets up the default state of osg::Dof. runs a compute shader held by a DtIndirectDofProgram for processing the dofs for every per geometry per instance Owned by a DtIndirectGeometry 1:1
| typedef osg::observer_ptr<osg::Node> makVrv::DtIndirectDofManager::NodeObserverPtr |
| typedef std::pair<NodeObserverPtr, DtIndirectDofInfo> makVrv::DtIndirectDofManager::NodeDofInfoPair |
| typedef std::pair<NodeObserverPtr, int> makVrv::DtIndirectDofManager::NodeDofInfoIndexPair |
| typedef std::deque<NodeDofInfoPair> makVrv::DtIndirectDofManager::DequeNodeDofInfoPairs |
| typedef std::unordered_map<int, DtIndirectAnimatingDof* > makVrv::DtIndirectDofManager::MapInfoIdxToAnimatingDof |
| typedef std::unordered_map<int, int> makVrv::DtIndirectDofManager::MapInstanceIdToDofInfo |
| typedef std::map<osg::ref_ptr<osgSim::DOFTransform>, MapInstanceIdToDofInfo > makVrv::DtIndirectDofManager::MapNodeToMapInstanceIdToDofInfoIndex |
|
protected |
|
protected |
|
virtual |
DTOR.
|
protected |
CTOR. only creator can create.
|
privatedelete |
default constructor not implemented
|
privatedelete |
Copy Constructor not implemented – Copy Not Allowed.
|
privatedelete |
Assignment Operator Not implemented – Assignment Not Allowed.
|
virtual |
Add a list of dof paths to the dof manager. Once added they are connected to the signal or called directly, so that changes can be passed down to the indirect buffer.
|
virtual |
remove the dof paths/infos associated with an instance
|
virtual |
set the dof state of an instance/clone, with an instance id.
The representative 'master' that is in the indirect dof manager is the parameter 'master'
|
virtual |
set the translation and translation velocity for a particular instance of a particular dof
|
virtual |
set the HPR (heading, pitch and roll) & HPR velocity for a particular instance of a particular dof
|
virtual |
set the HPR velocity for a particular instance of a particular dof
|
virtual |
set the dof transform for a particular instance of a particular dof
|
virtual |
set the top level instance transform for an instance
|
virtual |
get the top level instance transform for an instance
|
virtual |
update dofs when pure signal based dof is true, this function does nothing
|
virtual |
indicate whether this manager's dofs get updated per frame via looking at the actual dofs or directly using signals
|
virtual |
indicate whether this manager's dofs get updated per frame via looking at the actual dofs or directly using signals
|
virtual |
reload shaders
|
virtual |
clean up gl
|
virtual |
setup and run the dof compute shader which calculates all the dof transform matrices
|
virtual |
Buffer containing the final transforms per geom instance id.
|
virtual |
Buffer containing the model scales per geom instance id used by the lod and the light point vs.
|
protectedvirtual |
Adds a single dof for a single per geometry instance.
|
protectedvirtual |
update dofs
|
protectedvirtual |
delete the GPU buffers
|
protectedvirtual |
delete the GPU buffers but leave the CPU objects that hold the buffers alone.
|
protectedvirtual |
if the dof buffers are dirty then update them
|
protectedvirtual |
delete the compute shader program
|
protectedvirtual |
update all the dofs managed by this manager
|
protectedvirtual |
find the dof info index for a given clone in an instance returns true if succeeded.
infoIdx contains the index returns false if failed. infoIdx contains -1
|
protectedvirtual |
find or create an animating dof for this dof info index for this dof
|
protectedvirtual |
print out the info of what's contained in the maps
|
protectedvirtual |
model scale buffer and dof xform buffers are camera specific check to see if any cameras are no longer valid and destroy their buffers if they are invalid.
|
protectedvirtual |
model scale buffer and dof xform buffers are camera specific create them for the current camera if needed
| friend makVrv::DtIndirectDofManager::DtIndirectDofManagerCreator |
only creator can create
|
protected |
|
mutableprotected |
|
protected |
The buffer containing all the dof infos for all instances managed by this manager.
|
protected |
The buffer containing the transform for each instance to know where it should be drawn.
|
protected |
The output buffer containing the computed model scale for each geom instance.
This is used by the lod processor
|
mutableprotected |
|
protected |
|
protected |
|
protected |