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 | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtCellIndirectGeo 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 DtCellIndirectGeo. More...

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

Public Member Functions

 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...
 

Protected Member Functions

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

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
 

Private Member Functions

 DtCellIndirectGeo ()
 default constructor not implemented More...
 
 DtCellIndirectGeo (const DtCellIndirectGeo &other)
 Copy Constructor not implemented – Copy Not Allowed. More...
 
DtCellIndirectGeooperator= (const DtCellIndirectGeo &other)
 Assignment Operator Not implemented – Assignment Not Allowed. More...
 

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 DtCellIndirectGeo.

Constructor & Destructor Documentation

makVrv::DtCellIndirectGeo::DtCellIndirectGeo ( DtDe de,
DtIndirectGeometryCreator indirectGeometryCreator,
DtIndirectGeoComputeBoundCallbackCreator indirectGeoComputeCallbackCreator,
DtIndirectVisitorControlGroupCreator indirectGeoIntersectionGroupCreator,
bool  includeIntersectionGeoInNodePath,
bool  terrainPatch,
const DtIndirectFadeParameters fadeParameters 
)

CTOR.

virtual makVrv::DtCellIndirectGeo::~DtCellIndirectGeo ( )
virtual

DTOR.

makVrv::DtCellIndirectGeo::DtCellIndirectGeo ( )
private

default constructor not implemented

makVrv::DtCellIndirectGeo::DtCellIndirectGeo ( const DtCellIndirectGeo other)
private

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

DtCellIndirectGeo& makVrv::DtCellIndirectGeo::operator= ( const DtCellIndirectGeo other)
private

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtCellIndirectGeo::setModelsContainer ( DtIndirectModelsContainer modelsContainer,
bool  ownsModelsContainer 
)
virtual

set the models container.

Parameters
ownsModelsContainerwhether cell owns the container (and hence should delete on its own destruction. Essentially a value of true transfers ownership to the cell
virtual void makVrv::DtCellIndirectGeo::setCullShaderConfig ( const DtCullShaderConfig cullShaderConfig)
virtual

set the cull shader config

virtual void makVrv::DtCellIndirectGeo::setParent ( const osg::Group *  parent)
virtual

Sets up the parent of the indirect geometry which this manages.

virtual const osg::BoundingBoxd& makVrv::DtCellIndirectGeo::boundingBox ( void  ) const
virtual

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.

virtual const DtIndirectGeometry* makVrv::DtCellIndirectGeo::indirectGeometry ( void  ) const
virtual

internal. Access the internally held indirect geometry

virtual DtIndirectGeometry* makVrv::DtCellIndirectGeo::indirectGeometry ( void  )
virtual

internal. Access the internally held indirect geometry

virtual osg::Group* makVrv::DtCellIndirectGeo::indirectIntersectionGroup ( )
virtual

get the intersection group for this cell

virtual void makVrv::DtCellIndirectGeo::expandBoundingBox ( const osg::Node *  modelNode,
const osg::Matrixd &  instanceXForm 
)
protectedvirtual

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)

virtual void makVrv::DtCellIndirectGeo::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() 
)
protectedvirtual

internal method to add intersection geometry for an instance of the modelNode, with transform as instanceXForm

Member Data Documentation

DtIndirectModelsContainer* makVrv::DtCellIndirectGeo::myModelsContainer
protected
bool makVrv::DtCellIndirectGeo::myOwnsModelsContainer
protected
osg::ref_ptr<DtIndirectGeometry> makVrv::DtCellIndirectGeo::myIndirectGeometry
protected
osg::ref_ptr<osg::Group> makVrv::DtCellIndirectGeo::myIndirectGeoIntersectionGroup
protected
osg::BoundingBoxd makVrv::DtCellIndirectGeo::myBoundingBox
protected

bounding box computation management

Threading::Mutex makVrv::DtCellIndirectGeo::myMutableBoundingBoxMutex
mutableprotected
DtDe& makVrv::DtCellIndirectGeo::myDe
protected
bool makVrv::DtCellIndirectGeo::myFirstInstance
protected
DtIndirectVisitorControlGroupCreator& makVrv::DtCellIndirectGeo::myIndirectGeoIntersectionGroupCreator
protected
bool makVrv::DtCellIndirectGeo::myIncludeIntersectionGeoInNodePath
protected

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)