VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions
makVrv::DtCellGeoSpecificIndirectGeo Class Reference

Helper for managing indirect geometry, its intersection group and registrar corresponding to a 'tile node' (gs cell or gt cell) DtCellToIndirectGeoMap in turn manages a map of feature tile nodes (for a layer) to a corresponding instance of DtCellGeoSpecificIndirectGeo. More...

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

Public Member Functions

 DtCellGeoSpecificIndirectGeo (DtDe &de, DtIndirectGeometryCreator &indirectGeomCreator, DtIndirectGeoComputeBoundCallbackCreator &indirectGeoCallbackCreator, DtIndirectVisitorControlGroupCreator &indirectGeoIntersectionGroupCreator, bool includeIntersectionGeoInNodePath, bool terrainPatch, const DtIndirectFadeParameters &fadeParameters)
 CTOR. More...
 
virtual ~DtCellGeoSpecificIndirectGeo ()
 DTOR. More...
 
virtual void addInstance (const osg::Matrixd &instanceXForm, const std::string &modelName, const osg::NodePath &nodePath=osg::NodePath(), const DtIndirectLodManager::DequeIndirectLodInfos &lodStack=DtIndirectLodManager::DequeIndirectLodInfos(), bool addToIntersectionGroup=true, const DtIndirectSwitchManager::DequeNodeSwitchInfoPairs &switchStack=DtIndirectSwitchManager::DequeNodeSwitchInfoPairs())
 
virtual void addInstance (const osg::Matrixd &instanceXForm, const osg::Node *modelNode, const std::string &modelNameSuffix, const osg::NodePath &nodePath=osg::NodePath(), const DtIndirectLodManager::DequeIndirectLodInfos &lodStack=DtIndirectLodManager::DequeIndirectLodInfos(), bool addToIntersectionGroup=true, const DtIndirectSwitchManager::DequeNodeSwitchInfoPairs &switchStack=DtIndirectSwitchManager::DequeNodeSwitchInfoPairs(), bool cullFaceEnabled=true, const DtIndirectPolygonOffset &polygonOffset=DtIndirectPolygonOffset(0, 0))
 
- Public Member Functions inherited from makVrv::DtCellIndirectGeo
 DtCellIndirectGeo (DtDe &de, DtIndirectGeometryCreator &indirectGeometryCreator, DtIndirectGeoComputeBoundCallbackCreator &indirectGeoComputeCallbackCreator, DtIndirectVisitorControlGroupCreator &indirectGeoIntersectionGroupCreator, bool includeIntersectionGeoInNodePath, bool terrainPatch, const DtIndirectFadeParameters &fadeParameters)
 CTOR. More...
 
virtual ~DtCellIndirectGeo ()
 DTOR. More...
 
virtual void setModelsContainer (DtIndirectModelsContainer *modelsContainer, bool ownsModelsContainer)
 set the models container. More...
 
virtual void setCullShaderConfig (const DtCullShaderConfig &cullShaderConfig)
 set the cull shader config More...
 
virtual void setParent (const osg::Group *parent)
 Sets up the parent of the indirect geometry which this manages. More...
 
virtual const osg::BoundingBoxd & boundingBox (void) const
 An indirect geometry doesn't know how to calculate bounding box since this is related to the instances as well as the osg models (that indirect geometry knows nothing about This class computes it for it, and sets itself up as the compute bound call back for the indirect geometry. More...
 
virtual const DtIndirectGeometryindirectGeometry (void) const
 internal. Access the internally held indirect geometry More...
 
virtual DtIndirectGeometryindirectGeometry (void)
 internal. Access the internally held indirect geometry More...
 
virtual osg::Group * indirectIntersectionGroup ()
 get the intersection group for this cell More...
 

Private Member Functions

 DtCellGeoSpecificIndirectGeo ()
 CTOR (unimplemented default CTOR) More...
 

Additional Inherited Members

- Protected Member Functions inherited from makVrv::DtCellIndirectGeo
virtual void expandBoundingBox (const osg::Node *modelNode, const osg::Matrixd &instanceXForm)
 internal method to actually expand the bounding box based on the instance xform as well as the model node (and hence the model bbox in question) More...
 
virtual void addInstanceInternal (const osg::Matrixd &instanceXForm, const int modelId, const osg::Node *modelNode, const osg::NodePath &nodePath, const DtIndirectLodManager::DequeIndirectLodInfos &lodInfo=DtIndirectLodManager::DequeIndirectLodInfos(), bool addToIntersectionGroup=true, const DtIndirectSwitchManager::DequeNodeSwitchInfoPairs &switchStack=DtIndirectSwitchManager::DequeNodeSwitchInfoPairs())
 internal method to add intersection geometry for an instance of the modelNode, with transform as instanceXForm More...
 
- Protected Attributes inherited from makVrv::DtCellIndirectGeo
DtIndirectModelsContainermyModelsContainer
 
bool myOwnsModelsContainer
 
osg::ref_ptr< DtIndirectGeometrymyIndirectGeometry
 
osg::ref_ptr< osg::Group > myIndirectGeoIntersectionGroup
 
osg::BoundingBoxd myBoundingBox
 bounding box computation management More...
 
Threading::Mutex myMutableBoundingBoxMutex
 
DtDemyDe
 
bool myFirstInstance
 
DtIndirectVisitorControlGroupCreatormyIndirectGeoIntersectionGroupCreator
 
bool myIncludeIntersectionGeoInNodePath
 

Detailed Description

Helper for managing indirect geometry, its intersection group and registrar corresponding to a 'tile node' (gs cell or gt cell) DtCellToIndirectGeoMap in turn manages a map of feature tile nodes (for a layer) to a corresponding instance of DtCellGeoSpecificIndirectGeo.

Constructor & Destructor Documentation

makVrv::DtCellGeoSpecificIndirectGeo::DtCellGeoSpecificIndirectGeo ( DtDe de,
DtIndirectGeometryCreator indirectGeomCreator,
DtIndirectGeoComputeBoundCallbackCreator indirectGeoCallbackCreator,
DtIndirectVisitorControlGroupCreator indirectGeoIntersectionGroupCreator,
bool  includeIntersectionGeoInNodePath,
bool  terrainPatch,
const DtIndirectFadeParameters fadeParameters 
)

CTOR.

virtual makVrv::DtCellGeoSpecificIndirectGeo::~DtCellGeoSpecificIndirectGeo ( )
virtual

DTOR.

makVrv::DtCellGeoSpecificIndirectGeo::DtCellGeoSpecificIndirectGeo ( )
private

CTOR (unimplemented default CTOR)

Member Function Documentation

virtual void makVrv::DtCellGeoSpecificIndirectGeo::addInstance ( const osg::Matrixd &  instanceXForm,
const std::string &  modelName,
const osg::NodePath &  nodePath = osg::NodePath(),
const DtIndirectLodManager::DequeIndirectLodInfos lodStack = DtIndirectLodManager::DequeIndirectLodInfos(),
bool  addToIntersectionGroup = true,
const DtIndirectSwitchManager::DequeNodeSwitchInfoPairs switchStack = DtIndirectSwitchManager::DequeNodeSwitchInfoPairs() 
)
virtual
Parameters
instanceXFormis the transformation relative to the node under which this cell/tile (and hence the indirect geometry) is parented
modelIdper the registrar
modelNodethe top level osg node corresponding to the model geometry
virtual void makVrv::DtCellGeoSpecificIndirectGeo::addInstance ( const osg::Matrixd &  instanceXForm,
const osg::Node *  modelNode,
const std::string &  modelNameSuffix,
const osg::NodePath &  nodePath = osg::NodePath(),
const DtIndirectLodManager::DequeIndirectLodInfos lodStack = DtIndirectLodManager::DequeIndirectLodInfos(),
bool  addToIntersectionGroup = true,
const DtIndirectSwitchManager::DequeNodeSwitchInfoPairs switchStack = DtIndirectSwitchManager::DequeNodeSwitchInfoPairs(),
bool  cullFaceEnabled = true,
const DtIndirectPolygonOffset polygonOffset = DtIndirectPolygonOffset(0, 0) 
)
virtual
Parameters
instanceXFormis the transformation relative to the node under which this cell/tile (and hence the indirect geometry) is parented
modelNodethe top level osg node corresponding to the model geometry
modelNamePrefixa raw pointer to be indirected does not really have any model name. The printed string if something goes wrong is the pointer value itself this suffix/debug string will be appended to this suffix

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)