![]() |
VR-Forces 5.0.3 Developer's Guide
|
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

Classes | |
| struct | IndirectDofInfoInvalidator |
| struct | IndirectDofInfoRemovalPredicate |
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 () |
| virtual void | addDofPaths (int perGeomInstanceIndex, int size, const DequeNodeDofInfoPairs &parentDofPaths, const DequeNodeDofInfoPairs &dofPaths, int instanceId, float modelScale, float modelRadius) |
| virtual void | removeDofPaths (int instanceId) |
| virtual void | setDof (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, int flags) |
| virtual void | setDofTranslation (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, const Vector3_64 &trans, const Vector3_64 &transVel) |
| virtual void | setDofOrientation (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, const Vector3_64 &hpr, const Vector3_64 &hprVel, int animationFlags) |
| virtual void | setDofOrientation (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, const Vector3_64 &hprVel, bool forceUpdate, int animationFlags) |
| virtual void | setDofTransform (IndirectDofInfo &info, const osgSim::DOFTransform *clone) |
| virtual void | setInstanceXform (const Matrix4_32 &xform, int instanceId) |
| virtual Matrix4_32 | instanceXform (int instanceId) const |
| virtual void | update (const osg::FrameStamp *frameStamp) |
| virtual void | setPureSignalBasedDofs (bool val) |
| virtual bool | pureSignalBasedDofs (void) const |
| virtual void | reloadShaders () const |
| virtual void | releaseGLObjects (osg::State *state) const |
| virtual void | processDofs (const DtIndirectViewParameters &viewParameters, const DtGlBuffer *gpuInputPerGeomInstancesBuffer, const DtGlBuffer *gpuMaterialsBuffer, const osg::Camera *camera) |
| virtual const DtGlBuffer * | gpuDofTransformBuffer (const osg::Camera *camera) const |
| virtual const DtGlBuffer * | gpuDofModelScaleBuffer (const osg::Camera *camera) const |
Public Member Functions inherited from makVrv::DtIndirectManager | |
| DtIndirectManager (DtDe &de, DtInstanceContainer &container) | |
| virtual | ~DtIndirectManager () |
Public Attributes | |
| friend | DtIndirectDofManagerCreator |
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) | |
| virtual void | addDof (int perGeomInstanceIndex, const NodeDofInfoPair &dofChildPair, int instanceId, int baseParentDofIndex, const int dofInfoId, const float modelScale, const float modelRadius) |
| virtual void | updateAnimatingDofs (const osg::FrameStamp *frameStamp) |
| virtual void | deleteBuffers (void) |
| virtual void | tearDownBuffers (void) const |
| virtual void | updateDofBuffersIfNecessary () |
| virtual void | updateDofs () |
| virtual bool | findDofInfoIndex (osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int instanceId, int &infoIdx) |
| virtual DtIndirectAnimatingDof * | findOrCreateAnimatingDof (int infoIdx, osgSim::DOFTransform *dof) |
| virtual void | printInfo () |
| virtual void | flushCameraSpecificBuffers (void) |
| virtual void | createCameraSpecificBuffersIfNeeded (const osg::Camera *camera) |
Private Member Functions | |
| DtIndirectDofManager ()=delete | |
| DtIndirectDofManager (const DtIndirectDofManager &other)=delete | |
| DtIndirectDofManager & | operator= (const DtIndirectDofManager &other)=delete |
Additional Inherited Members | |
Static Public Member Functions inherited from makVrv::DtIndirectManager | |
| static int | managerType () |
| 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 |
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 |
|
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 |