VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends
makVrv::DtOsgEarthFeatureDataBroker Class Reference

DtOsgEarthFeatureDataBroker listens to osgEarth feature layers (i.e. model layers with a feature source) and dispatches post-processor routines whenever new data pages in.

The class will accept "postMerge" callbacks. When a new subgraph pages in and merges into the scene graph, the decorator will invoke the callbacks on the data.

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

Classes

class  Callback
 
class  CallbackSortFunction
 

Public Types

typedef osg::ref_ptr< CallbackCallbackRefPtr
 
typedef std::set
< CallbackRefPtr,
CallbackSortFunction
SortedCallbackRefSet
 

Public Member Functions

void addCallback (const std::string &registrant, Callback *cb)
 
void setOptimizeStateSharing (bool value)
 
bool isOptimizeStateSharing () const
 
void addLayer (osgEarth::Layer *layer)
 
void notifyNewLayer (osgEarth::Layer *layer)
 
void notifyLayerOpened (osgEarth::Layer *layer)
 
void notifyLayerClosed (osgEarth::Layer *layer)
 
bool layerHasCallback (const osgEarth::Layer *layer, const std::string &className)
 
void notifyPreMergeData (osgEarth::Layer *layer, osg::Node *node)
 
void notifyNewData (osgEarth::Layer *layer, osg::Node *data)
 
void notifyDataDeleted (osgEarth::Layer *layer, osg::Node *data)
 
DtDegetDe ()
 

Protected Types

typedef osg::ref_ptr
< osgEarth::SceneGraphCallback > 
SceneGraphCallbackRefPtr
 
typedef
std::unordered_multimap
< std::string, CallbackRefPtr
FeatureDataCallbackMap
 
typedef std::pair
< FeatureDataCallbackMap::iterator,
FeatureDataCallbackMap::iterator > 
RangeIterFeatureDataCallbacks
 
typedef std::pair
< FeatureDataCallbackMap::const_iterator,
FeatureDataCallbackMap::const_iterator > 
ConstRangeIterFeatureDataCallbacks
 
typedef std::unordered_map
< std::string,
SortedCallbackRefSet
LayerToCallbackMap
 
typedef std::unordered_map
< std::string, std::vector
< std::string > > 
RegistrantToFeaturesMap
 
typedef std::unordered_map
< std::string, std::vector
< std::string > >::iterator 
RegistrantToFeaturesMapIter
 
typedef std::unordered_map
< osg::Node
*, FeaturePageObserver * > 
MapPagesToObservers
 

Protected Member Functions

 DtOsgEarthFeatureDataBroker (osgEarth::MapNode *mapNode, DtDe &de)
 
virtual ~DtOsgEarthFeatureDataBroker ()
 
bool readFeatureNameRegistrationFile (const std::string &path, const std::string &filename)
 
std::string getFeatureNameFromLayer (const osgEarth::Layer &layer)
 

Protected Attributes

osg::observer_ptr
< osgEarth::MapNode > 
myMapNode
 
osg::ref_ptr
< osgEarth::MapCallback > 
myMapCallback
 
std::set
< SceneGraphCallbackRefPtr
myOperations
 
DtDemyDe
 
bool myShareState
 
OpenThreads::Mutex myMapMutex
 
FeatureDataCallbackMap myFeatureDataCallbacks
 
LayerToCallbackMap myLayerToCallbackMap
 
SortedCallbackRefSet myAllFeatureCallbacks
 
RegistrantToFeaturesMap myRegistrantToFeaturesMap
 
std::unordered_map< const
osgEarth::Layer *, std::string > 
myFeatureNameLookup
 
MapPagesToObservers myMapPagesToObservers
 
DtOsgShaderManagermyShaderManager
 

Static Protected Attributes

static const chartheFeatureDataBrokerRegistrantToFeatureList
 

Private Member Functions

 DtOsgEarthFeatureDataBroker (const DtOsgEarthFeatureDataBroker &other)
 
DtOsgEarthFeatureDataBrokeroperator= (const DtOsgEarthFeatureDataBroker &other)
 

Friends

class DtOsgEarthFeatureDataBrokerCreator
 

Member Typedef Documentation

typedef osg::ref_ptr<osgEarth::SceneGraphCallback> makVrv::DtOsgEarthFeatureDataBroker::SceneGraphCallbackRefPtr
protected
typedef std::unordered_multimap<std::string, CallbackRefPtr> makVrv::DtOsgEarthFeatureDataBroker::FeatureDataCallbackMap
protected
typedef std::pair<FeatureDataCallbackMap::iterator, FeatureDataCallbackMap::iterator> makVrv::DtOsgEarthFeatureDataBroker::RangeIterFeatureDataCallbacks
protected
typedef std::pair<FeatureDataCallbackMap::const_iterator, FeatureDataCallbackMap::const_iterator> makVrv::DtOsgEarthFeatureDataBroker::ConstRangeIterFeatureDataCallbacks
protected
typedef std::unordered_map<std::string, SortedCallbackRefSet> makVrv::DtOsgEarthFeatureDataBroker::LayerToCallbackMap
protected
typedef std::unordered_map<std::string, std::vector<std::string> > makVrv::DtOsgEarthFeatureDataBroker::RegistrantToFeaturesMap
protected
typedef std::unordered_map<std::string, std::vector<std::string> >::iterator makVrv::DtOsgEarthFeatureDataBroker::RegistrantToFeaturesMapIter
protected
typedef std::unordered_map<osg::Node*, FeaturePageObserver*> makVrv::DtOsgEarthFeatureDataBroker::MapPagesToObservers
protected

Constructor & Destructor Documentation

makVrv::DtOsgEarthFeatureDataBroker::DtOsgEarthFeatureDataBroker ( osgEarth::MapNode *  mapNode,
DtDe de 
)
protected

Constructs a broker for the specified map node.

virtual makVrv::DtOsgEarthFeatureDataBroker::~DtOsgEarthFeatureDataBroker ( )
protectedvirtual

destructor

makVrv::DtOsgEarthFeatureDataBroker::DtOsgEarthFeatureDataBroker ( const DtOsgEarthFeatureDataBroker other)
private

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

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

Assignment Operator Not implemented – Assignment Not Allowed.

void makVrv::DtOsgEarthFeatureDataBroker::addCallback ( const std::string &  registrant,
Callback cb 
)
void makVrv::DtOsgEarthFeatureDataBroker::setOptimizeStateSharing ( bool  value)
bool makVrv::DtOsgEarthFeatureDataBroker::isOptimizeStateSharing ( ) const
void makVrv::DtOsgEarthFeatureDataBroker::addLayer ( osgEarth::Layer *  layer)
void makVrv::DtOsgEarthFeatureDataBroker::notifyNewLayer ( osgEarth::Layer *  layer)
void makVrv::DtOsgEarthFeatureDataBroker::notifyLayerOpened ( osgEarth::Layer *  layer)
void makVrv::DtOsgEarthFeatureDataBroker::notifyLayerClosed ( osgEarth::Layer *  layer)
bool makVrv::DtOsgEarthFeatureDataBroker::layerHasCallback ( const osgEarth::Layer *  layer,
const std::string &  className 
)

check to see if a particular layer has a particular callback installed. currently used by the indirect feature callback to know if the dynamic terrain installer is installed

void makVrv::DtOsgEarthFeatureDataBroker::notifyPreMergeData ( osgEarth::Layer *  layer,
osg::Node *  node 
)
void makVrv::DtOsgEarthFeatureDataBroker::notifyNewData ( osgEarth::Layer *  layer,
osg::Node *  data 
)
void makVrv::DtOsgEarthFeatureDataBroker::notifyDataDeleted ( osgEarth::Layer *  layer,
osg::Node *  data 
)
DtDe& makVrv::DtOsgEarthFeatureDataBroker::getDe ( )
inline

get the De

bool makVrv::DtOsgEarthFeatureDataBroker::readFeatureNameRegistrationFile ( const std::string &  path,
const std::string &  filename 
)
protected

This method fills in myRegistrantToFeaturesMap, which tells which feature layers are of interest to which registrants. When a registrant calls addCallback, we add a callback for each feature layer listed in the map.

std::string makVrv::DtOsgEarthFeatureDataBroker::getFeatureNameFromLayer ( const osgEarth::Layer &  layer)
protected

get the feaure name for this particular layer

Friends And Related Function Documentation

friend class DtOsgEarthFeatureDataBrokerCreator so that it can be the only one who creates DtOsgEarthFeatureDataBrokers

Member Data Documentation

const char* makVrv::DtOsgEarthFeatureDataBroker::theFeatureDataBrokerRegistrantToFeatureList
staticprotected
osg::observer_ptr<osgEarth::MapNode> makVrv::DtOsgEarthFeatureDataBroker::myMapNode
protected
osg::ref_ptr<osgEarth::MapCallback> makVrv::DtOsgEarthFeatureDataBroker::myMapCallback
protected
std::set<SceneGraphCallbackRefPtr> makVrv::DtOsgEarthFeatureDataBroker::myOperations
protected
DtDe& makVrv::DtOsgEarthFeatureDataBroker::myDe
protected
bool makVrv::DtOsgEarthFeatureDataBroker::myShareState
protected
OpenThreads::Mutex makVrv::DtOsgEarthFeatureDataBroker::myMapMutex
protected
FeatureDataCallbackMap makVrv::DtOsgEarthFeatureDataBroker::myFeatureDataCallbacks
protected
LayerToCallbackMap makVrv::DtOsgEarthFeatureDataBroker::myLayerToCallbackMap
protected
SortedCallbackRefSet makVrv::DtOsgEarthFeatureDataBroker::myAllFeatureCallbacks
protected
RegistrantToFeaturesMap makVrv::DtOsgEarthFeatureDataBroker::myRegistrantToFeaturesMap
protected
std::unordered_map<const osgEarth::Layer*, std::string> makVrv::DtOsgEarthFeatureDataBroker::myFeatureNameLookup
protected
MapPagesToObservers makVrv::DtOsgEarthFeatureDataBroker::myMapPagesToObservers
protected
DtOsgShaderManager& makVrv::DtOsgEarthFeatureDataBroker::myShaderManager
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)