VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgEarthStreamedFeatureManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 
15 
17 
18 #include <osg/NodeVisitor>
19 
20 #include <boost/thread.hpp>
21 
22 namespace osgEarth
23 {
24  class Map;
25  class Layer;
26  class CustomFeatureNode;
27 }
28 
29 namespace osg
30 {
31  class Node;
32 }
33 
34 namespace makVrv
35 {
36  class DtTerrainPatchObject;
37 
46  {
47  public:
48 
51 
52  protected:
53 
57 
59 
64  virtual void processNewFeatures(
65  const osgEarth::CustomFeatureNode* featureNode);
66 
70  virtual void slot_customFeatureNodeToBeDeleted(
71  const osgEarth::CustomFeatureNode* node);
72 
74 
75  virtual void onDataLoaded(const osgEarth::Map* map, const osgEarth::Layer* layer,
76  const osg::Node* data);
77 
81  virtual void checkAndProcessStrandedFeatures();
82 
83  protected:
86 
87  // CTOR (protected, only created through creator function)
89 
90  // CTOR (unimplemented default CTOR)
92 
97  virtual void slot_terrainPatchCreated(DtTerrainPatchObject& patch);
98 
99  protected:
100  // In the case where custom features are still paging in when a new terrain is loaded,
101  // the terrain paging thread deletes any custom feature nodes (instead of paging them out
102  // normally). In this case, the features from those nodes are placed on a list that can
103  // be used to delete those features from the Render thread (instead of from the paging thread
104  // that deleted the osg custom feature node). This method is mutex-protected.
105  virtual void moveFeaturesToStrandedList(const osgEarth::CustomFeatureNode* featureNode);
106 
107  protected:
110 
112  {
113  std::string registrantName;
114  unsigned long long featureId;
115  };
116 
118  typedef std::list< RegisteredFeatureContainer> StrandedFeaturesList;
120  };
121 
127  {
128  public:
131 
134 
136  virtual DtStreamedFeatureManager* create( DtDe& de );
137  };
138 }
DtKeyedSignalConnectionManager< const osgEarth::CustomFeatureNode * > myKeyedConnections
Definition: DtOsgEarthStreamedFeatureManager.h:109
#define DT_DLL_VRVOSGEARTH
Definition: vrvOsgEarth.h:21
unsigned long long featureId
Definition: DtOsgEarthStreamedFeatureManager.h:114
std::list< RegisteredFeatureContainer > StrandedFeaturesList
Definition: DtOsgEarthStreamedFeatureManager.h:118
Contains the DtStreamedFeatureManager class declaration.
A DtTerrainPatchObject contains the methods for loading a file as a terrain.
Definition: DtTerrainPatchObject.h:37
DtOsgEarthStreamedFeatureManager is an osgEarth-specific implemenation of a DtStreamedFeatureManager...
Definition: DtOsgEarthStreamedFeatureManager.h:44
DtOsgEarthFeatureDataBroker::Callback that is fired when a new feature data &#39;tile&#39; pages in...
Definition: DtOsgEarthStreamedFeatureCallback.h:24
Custom Feature Node.
Definition: CustomFeatureNode.h:43
DtOsgEarthStreamedFeatureManagerCreator is used to create an osgEarth-specific implementation of a Dt...
Definition: DtOsgEarthStreamedFeatureManager.h:125
StrandedFeaturesList myStrandedFeatures
Definition: DtOsgEarthStreamedFeatureManager.h:119
Extend DtSignalConnectionManager to allow access to managed signals via a key supplied when the conne...
DtStreamedFeatureManagerCreator is used to create an instance of a DtStreamedFeatureManager.
Definition: DtStreamedFeatureManager.h:89
boost::mutex myStrandedFeatureMutex
Definition: DtOsgEarthStreamedFeatureManager.h:117
The StreamedFeatureManager allows users to register creator functions for streamed features from spec...
Definition: DtStreamedFeatureManager.h:31
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::string registrantName
Definition: DtOsgEarthStreamedFeatureManager.h:113
Definition: DtOsgEarthStreamedFeatureManager.h:111
Contains DLL export macros.

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)