VR-Forces Developer's Guide
 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) 2021 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::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 
122  };
123 
129  {
130  public:
133 
136 
138  virtual DtStreamedFeatureManager* create( DtDe& de );
139  };
140 }
DtKeyedSignalConnectionManager< const osgEarth::CustomFeatureNode * > myKeyedConnections
Definition: DtOsgEarthStreamedFeatureManager.h:109
DtSignalConnectionManager myConnections
Definition: DtOsgEarthStreamedFeatureManager.h:121
#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. When loading a file as a...
Definition: DtTerrainPatchObject.h:35
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:36
Custom Feature Node.
Definition: CustomFeatureNode.h:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtOsgEarthStreamedFeatureManagerCreator is used to create an osgEarth-specific implementation of a Dt...
Definition: DtOsgEarthStreamedFeatureManager.h:127
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. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
std::string registrantName
Definition: DtOsgEarthStreamedFeatureManager.h:113
Definition: DtOsgEarthStreamedFeatureManager.h:111
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)