![]() |
VR-Forces Developer's Guide
|
Custom Feature Node.
The CustomFeatureNode class is used to convey streamed features in (and out) of Vantage from the feature_custom driver. This 'Node' is attached to the osg::Group (as userData) created in the Substitute Custom Model Filter's push() method. Push() creates this group with: osg::Group* group = createDelocalizeGroup(); The DtOsgEarthStreamedFeatureManager uses DtOsgEarthFeatureDataBroker to get the sceneGraph created for a tile when it it paged in. It traverses that graph, finding any CustomFeatureNodes within, processing any marker requests it contains. The DtOsgEarthStreamedFeatureManager also connects to the CustomFeatureNode's signal_aboutToBeDeleted, which is raised in the CustomFeatureNode's destructor. Since the CustomFeatureNode is held within the sceneGraph for the tile, it is destroyed when the tile is, signalling that the features created with it should be destroyed as well. Finally, it holds a multimap which contains the information the DtOsgEarthStreamedFeatureManager to signal each feature's creator when it should be destroyed.

Classes | |
| struct | OsgEarthMarkerRequest |
Public Types | |
| typedef std::list < OsgEarthMarkerRequest > | MarkerRequestList |
| typedef boost::unordered_multimap < std::string, unsigned long long > | FeatureRegistrantToIdMap |
| typedef std::pair < FeatureRegistrantToIdMap::iterator, FeatureRegistrantToIdMap::iterator > | RangeIterFeatureRegistrantToId |
| typedef std::pair < FeatureRegistrantToIdMap::const_iterator, FeatureRegistrantToIdMap::const_iterator > | ConstRangeIterFeatureRegistrantToId |
Public Member Functions | |
| META_Node (osgEarth, CustomFeatureNode) | |
| CustomFeatureNode () | |
| CustomFeatureNode (const CustomFeatureNode &rhs, const osg::CopyOp ©op) | |
| virtual | ~CustomFeatureNode () |
| FeatureRegistrantToIdMap & | featureRegistrantToIdMap () |
| const FeatureRegistrantToIdMap & | featureRegistrantToIdMap () const |
| MarkerRequestList & | markerRequestList () |
| const MarkerRequestList & | markerRequestList () const |
| void | setCheckDestructingFunction (boost::function< bool()>) |
Public Attributes | |
| boost::signalslib::signal < void(CustomFeatureNode *)> | signal_aboutToBeDeleted |
Protected Attributes | |
| MarkerRequestList | myMarkerRequestList |
| FeatureRegistrantToIdMap | myFeatureRegistrantToIdMap |
| boost::function< bool()> | myCheckDestructingFunction |
| typedef std::list<OsgEarthMarkerRequest> osgEarth::CustomFeatureNode::MarkerRequestList |
Type for the Marker Request List.
| typedef boost::unordered_multimap< std::string, unsigned long long > osgEarth::CustomFeatureNode::FeatureRegistrantToIdMap |
Type for the multimap that store the feature ids and the names of the feature manager registrants that created them.
| typedef std::pair<FeatureRegistrantToIdMap::iterator, FeatureRegistrantToIdMap::iterator> osgEarth::CustomFeatureNode::RangeIterFeatureRegistrantToId |
Types for ranges within the FeatureLayerIdMap.
| typedef std::pair<FeatureRegistrantToIdMap::const_iterator, FeatureRegistrantToIdMap::const_iterator> osgEarth::CustomFeatureNode::ConstRangeIterFeatureRegistrantToId |
| osgEarth::CustomFeatureNode::CustomFeatureNode | ( | ) |
| osgEarth::CustomFeatureNode::CustomFeatureNode | ( | const CustomFeatureNode & | rhs, |
| const osg::CopyOp & | copyop | ||
| ) |
|
virtual |
| osgEarth::CustomFeatureNode::META_Node | ( | osgEarth | , |
| CustomFeatureNode | |||
| ) |
| FeatureRegistrantToIdMap& osgEarth::CustomFeatureNode::featureRegistrantToIdMap | ( | ) |
| const FeatureRegistrantToIdMap& osgEarth::CustomFeatureNode::featureRegistrantToIdMap | ( | ) | const |
| MarkerRequestList& osgEarth::CustomFeatureNode::markerRequestList | ( | ) |
| const MarkerRequestList& osgEarth::CustomFeatureNode::markerRequestList | ( | ) | const |
| void osgEarth::CustomFeatureNode::setCheckDestructingFunction | ( | boost::function< bool()> | ) |
| boost::signalslib::signal<void(CustomFeatureNode*)> osgEarth::CustomFeatureNode::signal_aboutToBeDeleted |
|
protected |
|
protected |
|
protected |