![]() |
VR-Forces 4.10 Class Documentation
|
\ ::,
which allows us to hook into our indirect engine to render using indirect rendering. More...

Classes | |
| struct | CloneMasterPair |
| Helper struct to make the code a bit more clear. More... | |
Public Types | |
| typedef std::unordered_map < int, Matrix4_32 > | MapInstanceIdToXform |
| Structure to hold instance orientation until the instance is actually added. More... | |
| typedef CloneMasterPair < osgSim::MultiSwitch > | MultiSwitchPair |
| Structure to hold instance multi-switches' state until the instance is actually added Use the pair to hold the refs and the raw pointer to index into the map. More... | |
| typedef std::unordered_map < osgSim::MultiSwitch *, MultiSwitchPair > | MapCloneToMultiSwitchPair |
| typedef std::unordered_map < int, MapCloneToMultiSwitchPair > | MapInstanceToMapCloneToMasterMultiSwitches |
| typedef CloneMasterPair < osgSim::DOFTransform > | DofTransformPair |
| Maps an instance id and a master dof to the clone dof so we can get to the cloned dof which contains the state for that particular instance of the dof. More... | |
| typedef std::unordered_map < osgSim::DOFTransform *, DofTransformPair > | MapCloneToDofTransformPair |
| typedef std::unordered_map < int, MapCloneToDofTransformPair > | MapInstanceToMapCloneToMasterDofs |
| typedef CloneMasterPair < osg::Sequence > | SequencePair |
| Maps an instance id and a master sequence to the clone sequence so we can get to the cloned sequence which contains the state for that particular instance of the sequence. More... | |
| typedef std::unordered_map < osg::Sequence *, SequencePair > | MapCloneToSequencePair |
| typedef std::unordered_map < int, MapCloneToSequencePair > | MapInstanceToMapCloneToMasterSequences |
| typedef std::map< const std::string, DtIndirectUvOffsetManager::UvOffset > | MapAnnotationToUvOffsetData |
| Maps and instance id and a string to the current uv offset for this particular annotation. More... | |
| typedef std::unordered_map < int, MapAnnotationToUvOffsetData > | MapInstanceToMapAnnotationToUvOffsetData |
| typedef std::unordered_map < int, DtIndirectUvOffsetManager::UvOffset > | MapInstanceToUvOffset |
Public Member Functions | |
| virtual void | setName (const std::string &name) override |
| set the name for the base class, the culling and the main thread job More... | |
| virtual void | setRegistrar (DtIndirectGeometryRegistrar *registrar) |
| set the registrar More... | |
| virtual DtIndirectGeometryRegistrar * | registrar () |
| provide access to this indirect geometries indirect registrar More... | |
| virtual void | setCullShaderConfig (const DtCullShaderConfig &cullShaderConfig) |
| set the compute shader config More... | |
| virtual const char * | className () const |
| get the classes name in a char pointer. Used by OSG to identify objects of this class More... | |
| virtual void | drawImplementation (osg::RenderInfo &renderInfo) const |
| inherited from osg::drawable will do the culling/lod'ing of the instances (via compute shaders) , and subsequent rendering of the instances More... | |
| virtual unsigned int | rebuildRegistrar (osg::RenderInfo &renderInfo) const |
| draw imp helper function returns myLastRebuiltFrameNum More... | |
| virtual int | addInstance (const DtIndirectGeometryInstance &instance) |
| Add an 'instance' of a model which has lod, transform, switch and node path information used by vrvOsg to add instances from: -paging databases and terrain patches -osgEarth features returns the instance id in the indirect geometry for the added instance. More... | |
| virtual int | addInstance (int modelId, const osg::Matrixd &xForm, float modelScale, float modelRadius, int lightPointGroupId) |
| Add a simple instance of a model which only has lod and transform information used by vrvOsg to add instances from: -entity indirect path instances -CDB instances returns the instance id in the indirect geometry for the added instance. More... | |
| virtual void | setInstanceMatrixTransform (int instanceId, const Matrix4_32 &xForm) |
| set the transform on an instance More... | |
| virtual Matrix4_32 | instanceMatrixTransform (int instanceId) const |
| get the transform on an instance More... | |
| virtual void | removeInstance (int id) |
| remove an instance More... | |
| virtual void | accept (osg::NodeVisitor &nv) |
| overridden: because we do certain processing (state set modification, etc) that needs to happen outside of the draw pass. More... | |
| virtual void | setParent (const osg::Group *parent) |
| Typically a feature tile node/cdb group node. More... | |
| virtual void | setRegistrarInvalid (void) |
| Indicate to us that our registrar is now invalid registrars are externally held, and the DtIndirectGeometry needs to know this because it may be deleted much after the registrar has been deleted, and possibly internally to osg. More... | |
| virtual void | releaseGLObjects (osg::State *state) const |
| release all gl objects used by this indirect geometry More... | |
| virtual void | accept (osg::PrimitiveFunctor &functor) const |
| override of Drawable function which allows the osg Statistics to work for Indirect Geometry More... | |
| virtual void | setupIndirect () |
| Makes sure Indirect Geometry is ready to go, can be called from multiple threads (e.g. More... | |
| virtual void | setupIndirectShadersOnly () |
| Makes sure Indirect Geometry is ready to go, can be called from multiple threads (e.g. More... | |
| virtual void | setLocalOriginTransform (const osg::Matrixd &localOriginTransform) |
| set the matrix used to adjust the local origin of this indirect geometry this is used to fix precision issue that arise from having large numbers in the vertex buffers or in the instance transforms More... | |
| virtual const osg::Matrixd & | localOriginTransform () const |
| get the matrix used to adjust the local origin of this indirect geometry this is used to fix precision issue that arise from having large numbers in the vertex buffers or in the instance transforms More... | |
| virtual bool | actuallyAddQueuedUpInstances (void) |
| adds all instances that have been queued up by calling addInstanceActual with them as the parameter More... | |
| virtual void | launchMainThreadJobAndWait (DtDe &de, DtOsgRenderer &renderer) |
| finish initialization of geometry More... | |
| virtual boost::condition_variable & | waitCondition () |
| returns a wait condition for use as a sync point between class and main thread job More... | |
| virtual void | updateGpuBuffers (osg::RenderInfo &renderInfo) |
| helper function for job to call the culling and lod updater More... | |
| virtual void | setPureSignalBasedUpdates (bool val) |
| indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals More... | |
| virtual bool | pureSignalBasedUpdates (void) const |
| indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals More... | |
| virtual void | setInstanceMultiSwitch (int id, osgSim::MultiSwitch *clone, osgSim::MultiSwitch *master) |
| set the multi-switches on an instance More... | |
| virtual void | instanceMultiSwitches (int instanceIdIndirect, MapCloneToMultiSwitchPair &mapCloneToMasterMultiSwitches) const |
| get the multi swiches map for this instance More... | |
| virtual void | setInstanceUvOffset (int id, const std::string &annotation, float uOffset, float vOffset) |
| set the uv offset for a particular instance. More... | |
| virtual void | scrollUv (int id, float uOffset, float vOffset) |
| scroll the uv offset for a particular instance. More... | |
| virtual void | instanceAnnotationsAndUvOffsets (int instanceIdIndirect, std::vector< DtIndirectAnnotationAndUvOffset > &annotations) const |
| get all the annotations and uv offsets for a particular instance. More... | |
| virtual void | setInstanceDof (int id, osgSim::DOFTransform *clone, osgSim::DOFTransform *master) |
| handle changes to an instances dof node More... | |
| virtual void | setInstanceDofTranslation (int id, osgSim::DOFTransform *clone, osgSim::DOFTransform *master, const Vector3_64 &trans, const Vector3_64 &transVel) |
| set the translation and translation velocity on a (clone) dof More... | |
| virtual void | setInstanceDofOrientation (int id, osgSim::DOFTransform *clone, osgSim::DOFTransform *master, const Vector3_64 &hpr, const Vector3_64 &hprVel) |
| set the HPR (heading, pitch and roll) & HPR velocity on a (clone) dof More... | |
| virtual void | setInstanceDofOrientation (int id, osgSim::DOFTransform *clone, osgSim::DOFTransform *master, const Vector3_64 &hprVel, bool forceUpdate) |
| set the HPR velocity on a (clone) dof More... | |
| virtual void | instanceDofs (int instanceIdIndirect, MapCloneToDofTransformPair &mapCloneToDofTransformPair) const |
| get the dofs for a particular instance More... | |
| virtual void | setInstanceSequence (int id, osg::Sequence *clone, osg::Sequence *master) |
| handle change to an instances sequence node More... | |
| virtual void | instanceSequences (int instanceIdIndirect, MapCloneToSequencePair &mapCloneToMasterSequences) const |
| get the sequences for a particular instance id More... | |
| virtual void | setFadeParameters (const DtIndirectFadeParameters &fadeParameters) |
| set the fade parameters More... | |
| virtual const DtIndirectFadeParameters & | fadeParameters (void) const |
| set the fade parameters More... | |
| virtual void | perCameraUpdateAndCull (osg::RenderInfo &renderInfo, const osg::Camera *camera, const osg::Matrix &modelViewMatrix, const osg::FrameStamp *frameStamp) |
| update any per camera data that is needed and then run the cull compute shader for this camera More... | |
| virtual void | fillViewParameters (DtIndirectViewParameters &destViewParameters, const osg::Matrix &modelViewMatrix, const osg::Camera *camera, osg::RenderInfo &renderInfo) const |
| calculate and fill the destination view parameters based on the model view, camera, and renderInfo More... | |
| virtual bool | readyToRender (const int instanceIdInIndirect) const |
| can the instance be rendered this frame? More... | |
| virtual bool | hasInProgressInstanceMove () const |
| does this indirect geometry have any instances in the process of moving? used by the indirect geometry grid node to force this geometry to render even when it is not in the frustum since it has instances that are in the process of moving. More... | |
| virtual void | addInProgressInstanceMove () |
| Add one to the count of instances in the process of moving. More... | |
| virtual void | subtractInProgressInstanceMove () |
| remove one from the count of instances in the process of moving. More... | |
| virtual bool | instanceEverAdded (void) const |
| was an instance ever added? not the same as numInstances() (implemented as pass through to the internal instance container) More... | |
| virtual int | numValidInstances (void) const |
| the number of (valid) instances (implemented as pass through to the internal instance container) More... | |
| virtual const osg::Geode * | parentGeode (void) const |
| internal. More... | |
| virtual osg::Geode * | parentGeode (void) |
| virtual void | setManagesIndividualInstances (bool val) |
| indicate whether we can manage individual instances (set position, orientation, deletion, etc) More... | |
| virtual bool | managesIndividualInstances () const |
| indicate whether we can manage individual instances (set position, orientation, deletion, etc) More... | |
| virtual void | setInstanceColor (int instanceIdIndirect, const Vector4_32 &color) |
| set/get the color for a particular instance. More... | |
| virtual Vector4_32 | instanceColor (int instanceIdIndirect) const |
| virtual void | setInstanceOtherData0 (int instanceIdIndirect, const Vector4_32 &data) |
| set/get the otherdata0 for a particular instance. More... | |
| virtual Vector4_32 | instanceOtherData0 (int instanceIdIndirect) const |
| virtual void | setInstanceVisibility (int instanceIdIndirect, bool visible) |
| set/get the visibility for a particular instance. More... | |
| virtual bool | instanceVisibility (int instanceIdIndirect) const |
| virtual void | setInstanceLightPointMaxDistance (int instanceIdIndirect, float lightPointMaxDistance) |
| set/get the light point max distance for a particular instance. More... | |
| virtual float | instanceLightPointMaxDistance (int instanceIdIndirect) const |
| virtual void | setUpdateBuffersJobsRequiredCurrentFrame (bool requiredCurrentFrame) |
| set/get whether to force immediate update of patch indirect geometries internal buffers. More... | |
| virtual bool | updateBuffersJobsRequiredCurrentFrame (void) const |
Protected Types | |
| typedef std::unordered_map < int, int > | MapIndirectIdToInstanceContainerId |
| Map of instances' id in indirect geometry to their id in the instance container. More... | |
| typedef std::unordered_set< int > | SetInstancesToDelete |
| Structure to hold instance ids to be deleted. More... | |
Protected Member Functions | |
| DtIndirectGeometry (DtDe &de, bool terrainPatch) | |
| purposely protected. only creator can create More... | |
| virtual | ~DtIndirectGeometry () |
| purposely protected More... | |
| virtual bool | addInstanceActual (const DtIndirectGeometryInstance &instance) |
| actually add the instances that were queued up via possibly multiple threads this happens as part of the culling call More... | |
| virtual void | setupShadersIfNecessary () |
| to initialize the shader files cache, because DtIndirectGeometry doesn't have direct access to DtDe yet (it could; but that would break the cdb plugin) lock myInternalsMutex before calling More... | |
| virtual void | setupDebugUniforms () |
| setup the uniforms needed to visualize debug information for indirect geometry lock myInternalsMutex before calling More... | |
| virtual void | installDefaultMaterial (osg::StateSet *ss) |
| install a default material on ourselves, so that there's no state leakage with regards ubos/osg::material because we are using materials encoded into an ssbo for indirect rendering More... | |
| virtual void | slot_reloadShaders () |
| slot for handling when the shaders are reloaded More... | |
| virtual void | updateIndicesCount (const DtAggregateModelInfo &modelInfo, int instanceContainerIndex) |
| internal method to update num of triangles that this geometry will render in the worst case (all lods across all models across all instances) More... | |
| virtual void | removeInstanceFromIndicesCount (int instanceContainerIndex) |
| remove a particular instances indicies from the count. More... | |
| virtual void | updateModelIdsToInstances (int modelId, int instanceId, bool add) |
| increment the number of instance for the model id (called internally when an instance is added) More... | |
| virtual void | drawFromCommandBuffer (osg::RenderInfo &renderInfo, const DtIndirectViewParameters &viewParameters, const osg::Camera *camera) const |
| setup and draw a command buffer More... | |
| virtual void | setMultiSwitchOnInstanceInInstanceContainer (int instanceContainerId, osgSim::MultiSwitch *clone, osgSim::MultiSwitch *master) |
| wrapper function for setting a switch state in the switch manager More... | |
| virtual void | setDofOnInstanceInInstanceContainer (int instanceContainerId, osgSim::DOFTransform *clone, osgSim::DOFTransform *master) |
| wrapper function for setting a dof state in the dof manager More... | |
| virtual void | updateInstancePositionOrientationAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) |
| added actual functions are called when the instance is added to update the state that has been already set for that instance and pass it down to the managers. More... | |
| virtual void | updateInstanceSwitchesAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) |
| update an instance's switches More... | |
| virtual void | updateInstanceSequencesAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) |
| update an instance's sequences More... | |
| virtual void | setUvOffsetOnInstanceInInstanceContainer (const int instanceId, const std::string &annotation, float uOffset, float vOffset) |
| set the uv offset for a particular instance in the instance container. More... | |
| virtual void | updateInstanceUvOffsetsAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) |
| set all the uv offsets that have been saved off from before the instance was added. More... | |
| virtual void | updateInstanceColorAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) |
| set color that has been saved off before the instance was added More... | |
| virtual void | updateInstanceOtherData0AddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) |
| set otherdata0 that has been saved off before the instance was added More... | |
| virtual void | updateInstanceVisibilityLightPointMaxDistanceActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) |
| set visibility, light point max distance and other data 1 that has been saved off before the instance was added More... | |
| virtual bool | updateInstanceDeletionBeforeAddedActual (const DtIndirectGeometryInstance &instance) |
| check to see if this instance was marked for deletion before it was added More... | |
| virtual void | updateInstancesDofsAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) |
| update an instance's dofs states More... | |
| virtual void | removeInstanceInInstanceContainer (int instanceContainerId) |
| remove an instance from the instance container More... | |
| virtual void | reloadShadersIfNecessary (void) const |
| reload the shaders if necessary (marks a flag and they are reloaded before the next draw. More... | |
| virtual void | update (const osg::FrameStamp *frameStamp) |
| run update on managers that need to run during the update traversal. More... | |
| virtual DtIndirectDrawComponent * | drawComponent (int stateId) const |
| get the indirect draw component for a particular state More... | |
| virtual bool | hasLightPoints (void) const |
| similar to the drawComponent above, but checks for the existence of GL_POINTS (light points) primitives More... | |
| virtual void | debugDrawIfNecessary (osg::RenderInfo &renderInfo, const int maxCommands, const osg::Camera *camera) |
| virtual void | deleteDrawComponents (void) |
| delete the draw components More... | |
| virtual void | initDrawComponents (void) |
| initialize the draw components More... | |
| virtual DtIndirectModelScalingAlgorithm | scalingAlgorithm (const DtOsgCullVisitorParameters *params) const |
| get the scaling algorithm, given the cull parameters More... | |
| virtual const DtOsgCullVisitorParameters * | findCullVisitorParameters (osg::RenderInfo &renderInfo) const |
| get the cull visitor parameters based on the current render info. More... | |
Static Protected Attributes | |
| static DtVirtualProgramCache * | theVirtualProgramCache |
Private Member Functions | |
| DtIndirectGeometry ()=delete | |
| not allowed More... | |
| DtIndirectGeometry (const DtIndirectGeometry &other)=delete | |
| Copy Constructor not implemented – Copy Not Allowed. More... | |
| DtIndirectGeometry & | operator= (const DtIndirectGeometry &other)=delete |
| Assignment Operator Not implemented – Assignment Not Allowed. More... | |
Friends | |
| class | DtIndirectGeometryCreator |
| class | DtIndirectVaoManager |
| class | DtIndirectGeometryInitMainThreadJob |
| needed to give access to wait conditions and mutexes. More... | |
\ ::,
which allows us to hook into our indirect engine to render using indirect rendering.
In the case of features, the
| typedef std::unordered_map<int, Matrix4_32> makVrv::DtIndirectGeometry::MapInstanceIdToXform |
Structure to hold instance orientation until the instance is actually added.
| typedef CloneMasterPair<osgSim::MultiSwitch> makVrv::DtIndirectGeometry::MultiSwitchPair |
Structure to hold instance multi-switches' state until the instance is actually added Use the pair to hold the refs and the raw pointer to index into the map.
Maps an instance id and a master switch to the clone switch so we can get to the cloned switch which contains the state for that particular instance of the switch.
| typedef std::unordered_map< osgSim::MultiSwitch*, MultiSwitchPair> makVrv::DtIndirectGeometry::MapCloneToMultiSwitchPair |
| typedef std::unordered_map< int, MapCloneToMultiSwitchPair> makVrv::DtIndirectGeometry::MapInstanceToMapCloneToMasterMultiSwitches |
| typedef CloneMasterPair<osgSim::DOFTransform> makVrv::DtIndirectGeometry::DofTransformPair |
Maps an instance id and a master dof to the clone dof so we can get to the cloned dof which contains the state for that particular instance of the dof.
| typedef std::unordered_map< osgSim::DOFTransform*, DofTransformPair > makVrv::DtIndirectGeometry::MapCloneToDofTransformPair |
| typedef std::unordered_map< int, MapCloneToDofTransformPair> makVrv::DtIndirectGeometry::MapInstanceToMapCloneToMasterDofs |
| typedef CloneMasterPair<osg::Sequence> makVrv::DtIndirectGeometry::SequencePair |
Maps an instance id and a master sequence to the clone sequence so we can get to the cloned sequence which contains the state for that particular instance of the sequence.
| typedef std::unordered_map< osg::Sequence*, SequencePair > makVrv::DtIndirectGeometry::MapCloneToSequencePair |
| typedef std::unordered_map< int, MapCloneToSequencePair> makVrv::DtIndirectGeometry::MapInstanceToMapCloneToMasterSequences |
| typedef std::map< const std::string, DtIndirectUvOffsetManager::UvOffset> makVrv::DtIndirectGeometry::MapAnnotationToUvOffsetData |
Maps and instance id and a string to the current uv offset for this particular annotation.
| typedef std::unordered_map< int, MapAnnotationToUvOffsetData> makVrv::DtIndirectGeometry::MapInstanceToMapAnnotationToUvOffsetData |
| typedef std::unordered_map< int, DtIndirectUvOffsetManager::UvOffset> makVrv::DtIndirectGeometry::MapInstanceToUvOffset |
|
protected |
Map of instances' id in indirect geometry to their id in the instance container.
|
protected |
Structure to hold instance ids to be deleted.
purposely protected. only creator can create
|
protectedvirtual |
purposely protected
|
privatedelete |
not allowed
|
privatedelete |
Copy Constructor not implemented – Copy Not Allowed.
|
privatedelete |
Assignment Operator Not implemented – Assignment Not Allowed.
|
overridevirtual |
set the name for the base class, the culling and the main thread job
|
virtual |
set the registrar
| registrar | The indirect geometry registrar which will contain the 'specs' corresponding to models whose instances this DtIndirectGeometry rendered This is purposely separated out from DtIndirectGeometry, because several DtIndirectGeometry'ies may share the same models (for example cdb gt layers), in which case all DtIndirectGeometry'ies share the same registrar or use the 1 registrar per tile (as is the case with cdb gs layers) in which case one registrar is made per geometry(tile) |
|
virtual |
provide access to this indirect geometries indirect registrar
|
virtual |
set the compute shader config
|
virtual |
get the classes name in a char pointer. Used by OSG to identify objects of this class
|
virtual |
inherited from osg::drawable will do the culling/lod'ing of the instances (via compute shaders) , and subsequent rendering of the instances
|
virtual |
draw imp helper function returns myLastRebuiltFrameNum
|
virtual |
Add an 'instance' of a model which has lod, transform, switch and node path information used by vrvOsg to add instances from: -paging databases and terrain patches -osgEarth features returns the instance id in the indirect geometry for the added instance.
|
virtual |
Add a simple instance of a model which only has lod and transform information used by vrvOsg to add instances from: -entity indirect path instances -CDB instances returns the instance id in the indirect geometry for the added instance.
|
virtual |
set the transform on an instance
|
virtual |
get the transform on an instance
|
virtual |
remove an instance
|
virtual |
overridden: because we do certain processing (state set modification, etc) that needs to happen outside of the draw pass.
So, we check for and do this in the cull visitor pass
|
virtual |
Typically a feature tile node/cdb group node.
|
virtual |
Indicate to us that our registrar is now invalid registrars are externally held, and the DtIndirectGeometry needs to know this because it may be deleted much after the registrar has been deleted, and possibly internally to osg.
|
virtual |
release all gl objects used by this indirect geometry
|
virtual |
override of Drawable function which allows the osg Statistics to work for Indirect Geometry
|
virtual |
Makes sure Indirect Geometry is ready to go, can be called from multiple threads (e.g.
cdb) -draw components' effect textures' state is setup correctly -debug uniforms are set up correctly
|
virtual |
Makes sure Indirect Geometry is ready to go, can be called from multiple threads (e.g.
cdb) -draw components' effect textures' state is setup correctly
|
virtual |
internal.
Access the parent geode for this indirect geometry
|
virtual |
|
virtual |
set the matrix used to adjust the local origin of this indirect geometry this is used to fix precision issue that arise from having large numbers in the vertex buffers or in the instance transforms
|
virtual |
get the matrix used to adjust the local origin of this indirect geometry this is used to fix precision issue that arise from having large numbers in the vertex buffers or in the instance transforms
|
virtual |
adds all instances that have been queued up by calling addInstanceActual with them as the parameter
|
virtual |
finish initialization of geometry
|
virtual |
returns a wait condition for use as a sync point between class and main thread job
|
virtual |
helper function for job to call the culling and lod updater
|
virtual |
indicate whether we can manage individual instances (set position, orientation, deletion, etc)
|
virtual |
indicate whether we can manage individual instances (set position, orientation, deletion, etc)
|
virtual |
indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals
|
virtual |
indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals
|
virtual |
set the multi-switches on an instance
|
virtual |
get the multi swiches map for this instance
|
virtual |
set the uv offset for a particular instance.
|
virtual |
scroll the uv offset for a particular instance.
|
virtual |
get all the annotations and uv offsets for a particular instance.
|
virtual |
set/get the color for a particular instance.
|
virtual |
|
virtual |
set/get the otherdata0 for a particular instance.
|
virtual |
|
virtual |
set/get the visibility for a particular instance.
|
virtual |
set/get the light point max distance for a particular instance.
|
virtual |
|
virtual |
handle changes to an instances dof node
|
virtual |
set the translation and translation velocity on a (clone) dof
|
virtual |
set the HPR (heading, pitch and roll) & HPR velocity on a (clone) dof
|
virtual |
set the HPR velocity on a (clone) dof
|
virtual |
get the dofs for a particular instance
|
virtual |
handle change to an instances sequence node
|
virtual |
get the sequences for a particular instance id
|
virtual |
set the fade parameters
|
virtual |
set the fade parameters
|
virtual |
update any per camera data that is needed and then run the cull compute shader for this camera
|
virtual |
calculate and fill the destination view parameters based on the model view, camera, and renderInfo
|
virtual |
set/get whether to force immediate update of patch indirect geometries internal buffers.
Internal gpu buffers are not necessarily updated in a given frame/tick even if they are dirty (i.e. new models, textures came in). Setting this to true forces the internal buffers to update immediately that frame/tick.
|
virtual |
|
virtual |
can the instance be rendered this frame?
|
virtual |
does this indirect geometry have any instances in the process of moving? used by the indirect geometry grid node to force this geometry to render even when it is not in the frustum since it has instances that are in the process of moving.
|
virtual |
Add one to the count of instances in the process of moving.
|
virtual |
remove one from the count of instances in the process of moving.
|
virtual |
was an instance ever added? not the same as numInstances() (implemented as pass through to the internal instance container)
|
virtual |
the number of (valid) instances (implemented as pass through to the internal instance container)
|
protectedvirtual |
actually add the instances that were queued up via possibly multiple threads this happens as part of the culling call
|
protectedvirtual |
to initialize the shader files cache, because DtIndirectGeometry doesn't have direct access to DtDe yet (it could; but that would break the cdb plugin) lock myInternalsMutex before calling
|
protectedvirtual |
setup the uniforms needed to visualize debug information for indirect geometry lock myInternalsMutex before calling
|
protectedvirtual |
install a default material on ourselves, so that there's no state leakage with regards ubos/osg::material because we are using materials encoded into an ssbo for indirect rendering
|
protectedvirtual |
slot for handling when the shaders are reloaded
|
protectedvirtual |
internal method to update num of triangles that this geometry will render in the worst case (all lods across all models across all instances)
|
protectedvirtual |
remove a particular instances indicies from the count.
should be called when an instance is removed.
|
protectedvirtual |
increment the number of instance for the model id (called internally when an instance is added)
|
protectedvirtual |
setup and draw a command buffer
|
protectedvirtual |
wrapper function for setting a switch state in the switch manager
|
protectedvirtual |
wrapper function for setting a dof state in the dof manager
|
protectedvirtual |
added actual functions are called when the instance is added to update the state that has been already set for that instance and pass it down to the managers.
update an instances position and orientation
|
protectedvirtual |
update an instance's switches
|
protectedvirtual |
update an instance's sequences
|
protectedvirtual |
set the uv offset for a particular instance in the instance container.
|
protectedvirtual |
set all the uv offsets that have been saved off from before the instance was added.
|
protectedvirtual |
set color that has been saved off before the instance was added
|
protectedvirtual |
set otherdata0 that has been saved off before the instance was added
|
protectedvirtual |
set visibility, light point max distance and other data 1 that has been saved off before the instance was added
|
protectedvirtual |
check to see if this instance was marked for deletion before it was added
|
protectedvirtual |
update an instance's dofs states
|
protectedvirtual |
remove an instance from the instance container
|
protectedvirtual |
reload the shaders if necessary (marks a flag and they are reloaded before the next draw.
|
protectedvirtual |
run update on managers that need to run during the update traversal.
Currenly only the dof manager. The dof manager needs to update so that the dof transforms are updated in time for the post update to update the observer if it is attached to a part.
|
protectedvirtual |
get the indirect draw component for a particular state
|
protectedvirtual |
similar to the drawComponent above, but checks for the existence of GL_POINTS (light points) primitives
|
protectedvirtual |
|
protectedvirtual |
delete the draw components
|
protectedvirtual |
initialize the draw components
|
protectedvirtual |
get the scaling algorithm, given the cull parameters
|
protectedvirtual |
get the cull visitor parameters based on the current render info.
|
friend |
|
friend |
|
friend |
needed to give access to wait conditions and mutexes.
|
protected |
pointer to the (external) registrar
|
protected |
addInstance may be called from multiple threads. Hence, concurrent queue
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
the accumulated effect textures' state which represents the superset of all effect textures cumulatively used by the models of the instances of this Indirect geometry
|
protected |
|
protected |
|
protected |
number of indices across all unique models across instances
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
container for all the instances registered here
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
mutableprotected |
FIXME should be a static but currently the cull shader is per indirect.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Structure to hold instance orientation until the instance is actually added.
|
protected |
Structure to hold instance multi-switches' state until the instance is actually added Use the pair to hold the refs and the raw pointer to index into the map.
Maps an instance id and a master switch to the clone switch so we can get to the cloned switch which contains the state for that particular instance of the switch.
|
protected |
Maps an instance id and a master dof to the clone dof so we can get to the cloned dof which contains the state for that particular instance of the dof.
|
protected |
Maps an instance id and a master sequence to the clone sequence so we can get to the cloned sequence which contains the state for that particular instance of the sequence.
|
protected |
Maps and instance id and a string to the current uv offset for this particular annotation.
|
protected |
Maps and instance id to the current uv offset for all scrollable uv offsets.
|
protected |
Maps an instance id to the color for that instance.
|
protected |
Maps an instance id to the other data0 for that instance.
Maps an instance id to the visibility for that instance.
|
protected |
Maps an instance id to the light point max distance for that instance.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
whether gpu buffers for instances are updated immediately
|
protected |
|
staticprotected |