![]() |
VR-Forces 4.8 Class Documentation
|
class used to collect geometry coming in via feature_geom and add it to the indirect engine. More...
Public Member Functions | |
| virtual | ~DtIndirectFeatureGeomHandler () |
| DTOR. More... | |
| virtual void | onDataPremerge (osg::Node *data) |
| called before data is added to the scenegraph More... | |
| virtual void | onDataUnloaded (const osg::Node *data) |
| called before data is deleted from the scenegraph More... | |
| virtual const osg::Node * | preloadModelAndRunDynamicTerrainParser (const std::string &modelName) |
| loads the model and stores a reference pointer to it in the modelName to modelNode map. More... | |
| virtual void | markTaskFinished () |
| helper function called by async loader to update atomic counter, and signal the wait condition More... | |
Protected Types | |
| typedef osg::ref_ptr< const osg::Node > | NodeRefPtr |
Protected Member Functions | |
| DtIndirectFeatureGeomHandler (DtDe &de, const osgEarth::Layer &layer, const DtIndirectFadeParameters &fadeParameters, bool dynamicTerrainInstallerActive) | |
| CTOR. More... | |
| virtual void | processSubstituteModelFilterNodes (osg::Node *data) |
| process point replacement features More... | |
| virtual void | processExtrudeGeometryFilterNodes (osg::Node *data) |
| process multiple extruded geometry nodes by calling processExtrudeGeometryFilterNode for each one in the data More... | |
| virtual void | processExtrudeGeometryFilterNode (osgEarth::ExtrudeGeometryFilterNode *pFeatureNode, osg::Node *data) |
| process the extruded geometry and add it to the geocell from a DtCellToGeoSpecificIndirectGeoMap More... | |
| virtual void | processSubstituteModelFilterNode (const osgEarth::SubstituteModelFilterNode *pFeatureNode, const osg::Node *data) |
| Internal methods that will actually process the nodes. More... | |
| virtual void | processSubstituteModelFilterNodeAsGT (const osgEarth::SubstituteModelFilterNode *pFeatureNode, const osg::Group *keyNode) |
| processes the model filter and adds it to a geocell obtained from the DtCellToGeoTypicalIndirectGeoMap More... | |
| virtual void | processSubstituteModelFilterNodeAsGS (const osgEarth::SubstituteModelFilterNode *pFeatureNode, const osg::Group *keyNode) |
| processes the model filter and adds it to a geocell obtained from the DtCellToGeoSpecificIndirectGeoMap More... | |
| virtual void | processCustomFeatures (osg::Node *data) |
| Process the tile to see if there are any custom feature nodes and add them to the indirect system if there are any. More... | |
| virtual void | processCustomFeature (const osgEarth::CustomFeatureNode *pFeatureNode, const osg::Node *key) |
| Internal method that will actually process a single CustomFeatureNode. Called via processCustomFeatures. More... | |
Static Protected Attributes | |
| static tbb::atomic< int > | theTotalNumActiveAsyncTasks |
| tracks how many total threads are active to avoid preemption More... | |
Private Member Functions | |
| DtIndirectFeatureGeomHandler (const DtIndirectFeatureGeomHandler &other) | |
| Copy Constructor not implemented – Copy Not Allowed. More... | |
| DtIndirectFeatureGeomHandler & | operator= (const DtIndirectFeatureGeomHandler &other) |
| Assignment Operator Not implemented – Assignment Not Allowed. More... | |
Friends | |
| class | DtIndirectFeatureGeomHandlerCreator |
| creator friend class so it is the only one that can create new DtIndirectFeatureGeomHandlers More... | |
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.
|
protected |
|
virtual |
DTOR.
|
protected |
CTOR.
|
private |
Copy Constructor not implemented – Copy Not Allowed.
|
private |
Assignment Operator Not implemented – Assignment Not Allowed.
|
virtual |
called before data is added to the scenegraph
|
virtual |
called before data is deleted from the scenegraph
|
virtual |
loads the model and stores a reference pointer to it in the modelName to modelNode map.
also waits for other threads to finish if they are loading the same model. Returns a raw point to the model but it is saved in the member variable map so it will not be deleted in the rest of the premerge processing.
|
virtual |
helper function called by async loader to update atomic counter, and signal the wait condition
|
protectedvirtual |
process point replacement features
|
protectedvirtual |
process multiple extruded geometry nodes by calling processExtrudeGeometryFilterNode for each one in the data
|
protectedvirtual |
process the extruded geometry and add it to the geocell from a DtCellToGeoSpecificIndirectGeoMap
|
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
|
protectedvirtual |
processes the model filter and adds it to a geocell obtained from the DtCellToGeoTypicalIndirectGeoMap
|
protectedvirtual |
processes the model filter and adds it to a geocell obtained from the DtCellToGeoSpecificIndirectGeoMap
|
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
|
protectedvirtual |
Internal method that will actually process a single CustomFeatureNode. Called via processCustomFeatures.
|
friend |
creator friend class so it is the only one that can create new DtIndirectFeatureGeomHandlers
|
protected |
|
protected |
|
protected |
GeoTypical stuff.
|
protected |
|
protected |
GeoSpecific stuff.
|
protected |
Procedural stuff.
Is also geospecific in the sense that each tile will have its own registrar. Therefore, we need the gs variant
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticprotected |
tracks how many total threads are active to avoid preemption
|
protected |
tracks how many threads are active from this particular instance, when 0 the tasks are done.
|
protected |
signaling mutex and condition
|
protected |
|
protected |
|
protected |
|
protected |