VR-Forces Developer's Guide
 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::DtIndirectFeatureGeomHandler Class Reference

class used to collect geometry coming in via feature_geom and add it to the indirect engine. will process point features (expressed as GS or GT) and extruded geometry (procedurally generated) Handles callback from a feature_geom layer in order to add indirect geometry to the scene.

Public Member Functions

virtual ~DtIndirectFeatureGeomHandler ()
 
virtual void onDataPremerge (osg::Node *data)
 
virtual void onDataUnloaded (const osg::Node *data)
 
virtual void slot_postTick ()
 

Protected Member Functions

 DtIndirectFeatureGeomHandler (DtDe &de, const osgEarth::Layer &layer, const DtIndirectFadeParameters &fadeParameters, bool dynamicTerrainInstallerActive, bool cullFaceEnabled)
 
virtual void processSubstituteModelFilterNodes (osg::Node *data)
 
virtual void processExtrudeGeometryFilterNodes (osg::Node *data)
 
virtual void processExtrudeGeometryFilterNode (osgEarth::ExtrudeGeometryFilterNode *pFeatureNode, osg::Node *data)
 
virtual void processSubstituteModelFilterNode (const osgEarth::SubstituteModelFilterNode *pFeatureNode, const osg::Node *data)
 
virtual void processSubstituteModelFilterNodeAsGT (const osgEarth::SubstituteModelFilterNode *pFeatureNode, const osg::Group *keyNode)
 
virtual void processSubstituteModelFilterNodeAsGS (const osgEarth::SubstituteModelFilterNode *pFeatureNode, const osg::Group *keyNode)
 
virtual void processCustomFeatures (osg::Node *data)
 
virtual void processCustomFeature (const osgEarth::CustomFeatureNode *pFeatureNode, const osg::Node *key)
 
virtual void setLayerMask (const osgEarth::Layer *layer) const
 
virtual void turnOffIntersectionsIfSoSpecified (const osgEarth::Layer *layer) const
 

Protected Attributes

friend DtIndirectFeatureGeomHandlerCreator
 
DtDemyDe
 
osg::observer_ptr< const
osgEarth::Layer > 
myLayer
 
DtCellToGeoTypicalIndirectGeoMapmyCellToGTIndirectGeoMap
 
DtIndirectModelsContainermyGTModelsContainer
 
DtCellToGeoSpecificIndirectGeoMapmyCellToGSIndirectGeoMap
 
DtCellToGeoSpecificIndirectGeoMapmyCellToProceduralGSIndirectGeoMap
 
osg::ref_ptr
< osgEarth::StateSetCache > 
myStateSetCache
 
DtIndirectFadeParameters myFadeParameters
 
const bool myDynamicTerrainInstallerActive
 
const bool myCullFaceEnabled
 
DtSignalConnectionManager myConnections
 
DtIndirectModelContainerForHandlersmyIndirectModelContainerForHandlers
 
DtIndirectFeatureGeomHandlerSignalermySignaler
 

Private Member Functions

 DtIndirectFeatureGeomHandler (const DtIndirectFeatureGeomHandler &other)=delete
 
DtIndirectFeatureGeomHandleroperator= (const DtIndirectFeatureGeomHandler &other)=delete
 

Constructor & Destructor Documentation

virtual makVrv::DtIndirectFeatureGeomHandler::~DtIndirectFeatureGeomHandler ( )
virtual

DTOR.

makVrv::DtIndirectFeatureGeomHandler::DtIndirectFeatureGeomHandler ( DtDe de,
const osgEarth::Layer &  layer,
const DtIndirectFadeParameters fadeParameters,
bool  dynamicTerrainInstallerActive,
bool  cullFaceEnabled 
)
protected

CTOR.

makVrv::DtIndirectFeatureGeomHandler::DtIndirectFeatureGeomHandler ( const DtIndirectFeatureGeomHandler other)
privatedelete

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

DtIndirectFeatureGeomHandler& makVrv::DtIndirectFeatureGeomHandler::operator= ( const DtIndirectFeatureGeomHandler other)
privatedelete

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtIndirectFeatureGeomHandler::onDataPremerge ( osg::Node *  data)
virtual

called before data is added to the scenegraph

virtual void makVrv::DtIndirectFeatureGeomHandler::onDataUnloaded ( const osg::Node *  data)
virtual

called before data is deleted from the scenegraph

virtual void makVrv::DtIndirectFeatureGeomHandler::slot_postTick ( )
virtual

handle the postTick signal.

virtual void makVrv::DtIndirectFeatureGeomHandler::processSubstituteModelFilterNodes ( osg::Node *  data)
protectedvirtual

process point replacement features

virtual void makVrv::DtIndirectFeatureGeomHandler::processExtrudeGeometryFilterNodes ( osg::Node *  data)
protectedvirtual

process multiple extruded geometry nodes by calling processExtrudeGeometryFilterNode for each one in the data

virtual void makVrv::DtIndirectFeatureGeomHandler::processExtrudeGeometryFilterNode ( osgEarth::ExtrudeGeometryFilterNode *  pFeatureNode,
osg::Node *  data 
)
protectedvirtual

process the extruded geometry and add it to the geocell from a DtCellToGeoSpecificIndirectGeoMap

virtual void makVrv::DtIndirectFeatureGeomHandler::processSubstituteModelFilterNode ( const osgEarth::SubstituteModelFilterNode *  pFeatureNode,
const osg::Node *  data 
)
protectedvirtual

Internal methods that will actually process the nodes. checks the instancing to see if the layer is GT (instanced) or GS (not instanced) and then calls the appropriate additional processSubstituteModelFilerNodeAs* function.

virtual void makVrv::DtIndirectFeatureGeomHandler::processSubstituteModelFilterNodeAsGT ( const osgEarth::SubstituteModelFilterNode *  pFeatureNode,
const osg::Group *  keyNode 
)
protectedvirtual

processes the model filter and adds it to a geocell obtained from the DtCellToGeoTypicalIndirectGeoMap

virtual void makVrv::DtIndirectFeatureGeomHandler::processSubstituteModelFilterNodeAsGS ( const osgEarth::SubstituteModelFilterNode *  pFeatureNode,
const osg::Group *  keyNode 
)
protectedvirtual

processes the model filter and adds it to a geocell obtained from the DtCellToGeoSpecificIndirectGeoMap

virtual void makVrv::DtIndirectFeatureGeomHandler::processCustomFeatures ( osg::Node *  data)
protectedvirtual

Process the tile to see if there are any custom feature nodes and add them to the indirect system if there are any. These come from feature_custom driver model layers.

virtual void makVrv::DtIndirectFeatureGeomHandler::processCustomFeature ( const osgEarth::CustomFeatureNode pFeatureNode,
const osg::Node *  key 
)
protectedvirtual

Internal method that will actually process a single CustomFeatureNode. Called via processCustomFeatures.

virtual void makVrv::DtIndirectFeatureGeomHandler::setLayerMask ( const osgEarth::Layer *  layer) const
protectedvirtual

Internal method for setting flags on an incoming layer or layernode.

virtual void makVrv::DtIndirectFeatureGeomHandler::turnOffIntersectionsIfSoSpecified ( const osgEarth::Layer *  layer) const
protectedvirtual

turn off intersections if <intersectable>false</intersectable> was specified for the layer

Member Data Documentation

friend makVrv::DtIndirectFeatureGeomHandler::DtIndirectFeatureGeomHandlerCreator
protected

creator friend class so it is the only one that can create new DtIndirectFeatureGeomHandlers

DtDe& makVrv::DtIndirectFeatureGeomHandler::myDe
protected
osg::observer_ptr<const osgEarth::Layer> makVrv::DtIndirectFeatureGeomHandler::myLayer
protected

store by observer ptr here onDataPremerge for a node can get launched (in another thread) just after the layer has been deleted (e.g. reload) so the layer and hence the nodes being traverse via findTopMostNodeOfType are possibly invalid

DtCellToGeoTypicalIndirectGeoMap* makVrv::DtIndirectFeatureGeomHandler::myCellToGTIndirectGeoMap
protected

GeoTypical stuff.

DtIndirectModelsContainer* makVrv::DtIndirectFeatureGeomHandler::myGTModelsContainer
protected
DtCellToGeoSpecificIndirectGeoMap* makVrv::DtIndirectFeatureGeomHandler::myCellToGSIndirectGeoMap
protected

GeoSpecific stuff.

DtCellToGeoSpecificIndirectGeoMap* makVrv::DtIndirectFeatureGeomHandler::myCellToProceduralGSIndirectGeoMap
protected

Procedural stuff. Is also geospecific in the sense that each tile will have its own registrar. Therefore, we need the gs variant.

osg::ref_ptr< osgEarth::StateSetCache > makVrv::DtIndirectFeatureGeomHandler::myStateSetCache
protected
DtIndirectFadeParameters makVrv::DtIndirectFeatureGeomHandler::myFadeParameters
protected
const bool makVrv::DtIndirectFeatureGeomHandler::myDynamicTerrainInstallerActive
protected
const bool makVrv::DtIndirectFeatureGeomHandler::myCullFaceEnabled
protected
DtSignalConnectionManager makVrv::DtIndirectFeatureGeomHandler::myConnections
protected

manager for connections

DtIndirectModelContainerForHandlers& makVrv::DtIndirectFeatureGeomHandler::myIndirectModelContainerForHandlers
protected
DtIndirectFeatureGeomHandlerSignaler& makVrv::DtIndirectFeatureGeomHandler::mySignaler
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)