![]() |
VR-Forces 4.8 Class Documentation
|
Indirect rendering works because we are able to combine multiple geometries into a single 'aggregated geometry' and render this with a single draw call This visitor allows us to incrementally aggregate multiple such osg nodes (e.g flight files) More...

Classes | |
| struct | AggregatorData |
| current state of the model traversal More... | |
Public Member Functions | |
| DtIndirectGeometryAggregator (DtAggregatedGeometry &aggregatedGeometry, DtIndirectEffectTexturesTemplate &aggregatedEffectTexturesState, DtIndirectGeometryStateManager &stateManager, const DtIndirectTextureCollectionPolicy &textureCollectionPolicy) | |
| Constructor 'aggregatedGeometry', represents the flattened vertex, index buffer of all geometries/drawables encountered so far. More... | |
| virtual | ~DtIndirectGeometryAggregator () |
| Destructor. More... | |
| virtual void | aggregate (osg::Node *node, int modelId, const std::string &modelFileName, bool cullFaceEnabled, const DtIndirectPolygonOffset &polygonOffset) |
| run the aggregator visitor on the node, it represents the model specified by modelId and loaded from modelFileName More... | |
| virtual void | apply (osg::Geometry &geometry) |
| used to get the bounding box information for a particular geometry More... | |
| virtual void | apply (DtDynamicTerrainSwitchNode &node) |
| Gather the switch node information. More... | |
| virtual void | apply (osg::Geode &geode) |
| Gather the geodes so they can be added to the indirect registrar. More... | |
| virtual void | apply (osg::Node &node) |
| used to call apply on the osgSim::MultiSwitch and DtDynamicTerrainSwitchNodes More... | |
| virtual void | apply (osg::Switch &node) |
| Gather the switch node information. More... | |
| virtual void | apply (osgSim::MultiSwitch &node) |
| Gather the switch node information. More... | |
| virtual void | apply (osg::LOD &node) |
| Gather the Lod information. More... | |
| virtual void | apply (osg::Sequence &node) |
| Gather the sequence information. More... | |
| virtual void | apply (osg::Billboard &node) |
| used to ignore billboards for nwo More... | |
| virtual void | apply (osg::MatrixTransform &matTrans) |
| used to gather the matrix transforms so we get the geometry and lods in the correct position. More... | |
| virtual void | apply (osgSim::DOFTransform &node) |
| used to ignore DOFTransforms for now More... | |
| virtual int | numGeodes () const |
| number of geodes visited/encountered More... | |
| virtual int | numGeometries () const |
| number of geometries successfully visited/encountered (if something went wrong with aggregating a geometry, this count will reflect that) More... | |
| virtual int | maxSingleModelIndices () |
| maximum number of indices any single model that's been agregated has, if greater then 65k needs int storage. More... | |
Static Public Member Functions | |
| static void | loadTheDefaultTexture (const std::string &filename) |
| create a default texture for indirect to use when there is not a diffuse texture on a stateset More... | |
Public Attributes | |
| DtIndirectAggregateHelper | myAggregateHelper |
Static Public Attributes | |
| static const DtMaterial | theDefaultMaterial |
| static osg::ref_ptr< osg::Texture > | theDefaultTexture |
Protected Member Functions | |
| virtual DtMaterial | gatherMaterial (osg::StateSet *ss) const |
| find the material specified by this stateset if it exists More... | |
| virtual bool | isCullFaceEnabled (osg::StateSet *ss) const |
| check the stateset to see if it has cull face enabled More... | |
| virtual DtIndirectPolygonOffset | gatherPolygonOffset (osg::StateSet *ss) const |
| check the stateset for any polygon offset state attributes More... | |
| virtual DtIndirectGeometryTextures * | gatherTextures (osg::StateSet *ss, const std::string &modelFileName) |
| find the textures on the stateset if they are specified More... | |
Protected Attributes | |
| int | myNumGeodes |
| int | myNumGeometries |
| DtAggregateModelInfo * | myModelInfo |
| int | myLastVertexOffset |
| int | myLastIndexOffset |
| int | myMaxSingleModelIndices |
| DtIndirectEffectTexturesTemplate & | myAggregatedEffectTexturesState |
| DtIndirectGeometryStateManager & | myStateManager |
| DtAggregatedGeometry & | myAggregatedGeometry |
| std::stack< AggregatorData > | myDataStack |
| stack of Aggregator as traversal happens. More... | |
| std::stack< osg::Matrix > | myMatrixStack |
| DtIndirectLodManager::DequeIndirectLodInfos | myLodStack |
| DtIndirectSwitchManager::DequeNodeSwitchInfoPairs | mySwitchStack |
| const DtIndirectTextureCollectionPolicy & | myTextureCollectionPolicy |
| std::string | myModelFileName |
Private Member Functions | |
| DtIndirectGeometryAggregator () | |
| DtIndirectGeometryAggregator (const DtIndirectGeometryAggregator &other) | |
| Copy Constructor not implemented – Copy Not Allowed. More... | |
| DtIndirectGeometryAggregator & | operator= (const DtIndirectGeometryAggregator &other) |
| Assignment Operator Not implemented – Assignment Not Allowed. More... | |
Friends | |
| class | StackOperator |
Indirect rendering works because we are able to combine multiple geometries into a single 'aggregated geometry' and render this with a single draw call This visitor allows us to incrementally aggregate multiple such osg nodes (e.g flight files)
| makVrv::DtIndirectGeometryAggregator::DtIndirectGeometryAggregator | ( | DtAggregatedGeometry & | aggregatedGeometry, |
| DtIndirectEffectTexturesTemplate & | aggregatedEffectTexturesState, | ||
| DtIndirectGeometryStateManager & | stateManager, | ||
| const DtIndirectTextureCollectionPolicy & | textureCollectionPolicy | ||
| ) |
Constructor 'aggregatedGeometry', represents the flattened vertex, index buffer of all geometries/drawables encountered so far.
|
virtual |
Destructor.
|
private |
|
private |
Copy Constructor not implemented – Copy Not Allowed.
|
private |
Assignment Operator Not implemented – Assignment Not Allowed.
|
virtual |
run the aggregator visitor on the node, it represents the model specified by modelId and loaded from modelFileName
|
virtual |
used to get the bounding box information for a particular geometry
|
virtual |
Gather the switch node information.
|
virtual |
Gather the geodes so they can be added to the indirect registrar.
|
virtual |
used to call apply on the osgSim::MultiSwitch and DtDynamicTerrainSwitchNodes
|
virtual |
Gather the switch node information.
|
virtual |
Gather the switch node information.
|
virtual |
Gather the Lod information.
|
virtual |
Gather the sequence information.
|
virtual |
used to ignore billboards for nwo
|
virtual |
used to gather the matrix transforms so we get the geometry and lods in the correct position.
|
virtual |
used to ignore DOFTransforms for now
|
virtual |
number of geodes visited/encountered
|
virtual |
number of geometries successfully visited/encountered (if something went wrong with aggregating a geometry, this count will reflect that)
|
virtual |
maximum number of indices any single model that's been agregated has, if greater then 65k needs int storage.
|
static |
create a default texture for indirect to use when there is not a diffuse texture on a stateset
|
protectedvirtual |
find the material specified by this stateset if it exists
|
protectedvirtual |
check the stateset to see if it has cull face enabled
|
protectedvirtual |
check the stateset for any polygon offset state attributes
|
protectedvirtual |
find the textures on the stateset if they are specified
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
stack of Aggregator as traversal happens.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
|
static |
| DtIndirectAggregateHelper makVrv::DtIndirectGeometryAggregator::myAggregateHelper |