VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgEarthDynamicTerrainFeature.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 #pragma once
10 
11 #include <vrvOsg/vrvOsg.h>
13 
17 
18 #include <osgEarth/MapNode>
19 #include <osgEarth/DecalLayer>
20 #include <osgEarth/FeatureSource>
21 #include <osgEarth/VirtualProgram>
22 #include <osgEarthSplat/RoadSurfaceLayer>
23 #include <osgEarth/Geometry>
24 #include <osgEarth/Feature>
25 #include <osgEarth/Threading>
26 
27 namespace osgEarth
28 {
29  class LandCoverDictionary;
30  class Style;
31 }
32 
33 namespace makVrv
34 {
35  class DtDynamicTerrainGeometry;
36  class DtDynamicTerrainChange;
37  class DtDynamicTerrainSwitch;
38  class DtDynamicTerrainRasterLibrary;
40 
41  typedef std::map<std::string, osgEarth::Style> TrackTypeToStyleMap;
42 
49  {
50  public:
52  explicit DtOsgEarthDynamicTerrainFeature(osgEarth::MapNode* mapNode, DtDe& de);
53 
56 
57  public:
62 
64  DtOsgEarthDynamicTerrainFeature &operator=(const DtOsgEarthDynamicTerrainFeature &other) = delete;
65 
66  public:
67  //Description for this feature
68  virtual DtString description() const override;
69 
71  virtual const DtDynamicTerrainGeometry* geometry() const override;
72 
74  virtual bool matches(const DtDynamicTerrainChange& command, bool useOriginalGeometry) const override;
76  virtual bool matches(const DtDynamicTerrainGeometry& geometry, bool useOriginalGeometry) const override;
77 
79  virtual void changeState(const DtDynamicTerrainChanges& changes) override;
80 
82  virtual void setCraterState(const DtDynamicTerrainChange& command);
84  virtual void setPersistentTrackState(const DtDynamicTerrainChange& command);
85 
87  virtual bool isInDefaultState() const;
88 
90  virtual bool lastStateWasDefaultState() const;
91 
95  virtual void iterateCommands(const boost::function<void(const DtDynamicTerrainChange&)>& callback) const override;
96 
98  virtual void reloadShaders();
99 
101  virtual void buildTrackStyleMap();
102 
108  virtual const osgEarth::Style* findPersistentTrackStyle(const std::string& trackType, const std::string& soilType, const std::string& trackDepth) const;
109 
110  protected:
111 
113  virtual void processChanges(const DtDynamicTerrainChange& command);
114 
116  virtual void removeTerrainChange(const DtDynamicTerrainChange& change) override;
118  virtual void removeTerrainCraterChange(const DtDynamicTerrainChange& change);
120  virtual void removeTerrainPersistentTrackChange(const DtDynamicTerrainChange& change);
121 
125  virtual void sendTrackUpdates();
126 
128  virtual bool parseTrackParameters(const DtDynamicTerrainChange &change, std::string& trackId, std::string& trackType, std::string& soilType, std::string& trackDepth) const;
129 
132  virtual void slot_observerSettingRemoved(DtObserverObject* observer, int setting);
133 
136  virtual void slot_observerSettingChanged(DtObserverObject* observer, int setting, bool value);
137 
140  virtual void setupTrackUpdatesEnabled();
141 
142  protected:
143 
146 
148 
150 
154 
155  //Member variables for the tracks rendering
158  std::map<std::string, osg::ref_ptr<osgEarth::Feature> > myGeometryRefs;
160 
164  osgEarth::LandCoverDictionary* myLandCoverDictionary;
167 
168  //if the observer setting for tracks is turned off in every observer then don't update them
170  };
171 }
osg::ref_ptr< osgEarth::Contrib::DecalLandCoverLayer > myDecalLandCoverLayer
Definition: DtOsgEarthDynamicTerrainFeature.h:153
std::map< std::string, osg::ref_ptr< osgEarth::Feature > > myGeometryRefs
Definition: DtOsgEarthDynamicTerrainFeature.h:158
bool myTrackUpdatesEnabled
Definition: DtOsgEarthDynamicTerrainFeature.h:169
Definition: DtDynamicTerrainFeature.h:316
TrackTypeToStyleMap myTrackTypeToStyleMap
Definition: DtOsgEarthDynamicTerrainFeature.h:166
DtDynamicTerrainRasterLibrary This class is used to managed rasters and out-the-window images appl...
Definition: DtDynamicTerrainRasterLibrary.h:95
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::map< std::string, osgEarth::Style > TrackTypeToStyleMap
Definition: DtOsgEarthDynamicTerrainFeature.h:39
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
DtDe & myDe
Definition: DtOsgEarthDynamicTerrainFeature.h:162
osg::ref_ptr< osgEarth::MapNode > myMapNode
Definition: DtOsgEarthDynamicTerrainFeature.h:147
DtOsgEarthDynamicTerrainFeature is a special DtDynamicTerrainFeature which listens to all the dynamic...
Definition: DtOsgEarthDynamicTerrainFeature.h:48
osg::ref_ptr< osgEarth::Splat::RoadSurfaceLayer > myTracksLayer
Definition: DtOsgEarthDynamicTerrainFeature.h:156
Contains makVrv::DtDynamicTerrainGeometry class.
osg::ref_ptr< osg::Image > ImageRef
Definition: DtOsgEarthDynamicTerrainFeature.h:161
DtSignalConnectionManager myConnections
Definition: DtOsgEarthDynamicTerrainFeature.h:165
DtDynamicTerrainRasterLibrary * myRasterLibrary
Definition: DtOsgEarthDynamicTerrainFeature.h:163
const DtString myTracksStateName
Definition: DtOsgEarthDynamicTerrainFeature.h:145
osgEarth::LandCoverDictionary * myLandCoverDictionary
Definition: DtOsgEarthDynamicTerrainFeature.h:164
int myChangeCount
Definition: DtOsgEarthDynamicTerrainFeature.h:149
osg::ref_ptr< DtOsgEarthMemoryFeatureSource > myFeatureSource
Definition: DtOsgEarthDynamicTerrainFeature.h:157
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:29
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
const DtString myCraterStateName
Definition: DtOsgEarthDynamicTerrainFeature.h:144
Interface which abstracts the concept of a individually identifiable &quot;thing&quot; in the terrain...
Definition: DtDynamicTerrainFeature.h:83
osg::ref_ptr< osgEarth::Contrib::DecalImageLayer > myDecalImageLayer
Definition: DtOsgEarthDynamicTerrainFeature.h:151
Contains makVrv::DtDynamicTerrainFeature class.
Base class to provide boost signal/slot management.
osg::ref_ptr< osgEarth::Contrib::DecalElevationLayer > myDecalElevLayer
Definition: DtOsgEarthDynamicTerrainFeature.h:152
Command which can be given to the dynamic terrain system to perform some change.
Definition: DtDynamicTerrainChange.h:42
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains makVrv::DtOsgEarthMemoryFeatureSource class.
osg::ref_ptr< osgEarth::VirtualProgram > myTerrainEngineVirtualProgram
Definition: DtOsgEarthDynamicTerrainFeature.h:159

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)