VR-Forces 5.0.3 Developer's Guide
 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/FeatureImageLayer>
24 #include <osgEarth/Geometry>
25 #include <osgEarth/Feature>
26 #include <osgEarth/Threading>
27 
28 namespace osgEarth
29 {
30  class LandCoverDictionary;
31  class Style;
32 }
33 
34 namespace makVrv
35 {
36  class DtDynamicTerrainGeometry;
37  class DtDynamicTerrainChange;
38  class DtDynamicTerrainSwitch;
39  class DtDynamicTerrainRasterLibrary;
41 
42  typedef std::map<std::string, osgEarth::Style> TrackTypeToStyleMap;
43 
50  {
51  public:
53  explicit DtOsgEarthDynamicTerrainFeature(osgEarth::MapNode* mapNode, DtDe& de);
54 
57 
58  public:
63 
65  DtOsgEarthDynamicTerrainFeature &operator=(const DtOsgEarthDynamicTerrainFeature &other) = delete;
66 
67  public:
68  //Description for this feature
69  virtual DtString description() const override;
70 
72  virtual const DtDynamicTerrainGeometry* geometry() const override;
73 
75  virtual bool matches(const DtDynamicTerrainChange& command, bool useOriginalGeometry) const override;
77  virtual bool matches(const DtDynamicTerrainGeometry& geometry, bool useOriginalGeometry) const override;
78 
80  virtual void changeState(const DtDynamicTerrainChanges& changes) override;
81 
83  virtual void setCraterState(const DtDynamicTerrainChange& command);
85  virtual void setPersistentTrackState(const DtDynamicTerrainChange& command);
86 
88  virtual bool isInDefaultState() const;
89 
91  virtual bool lastStateWasDefaultState() const;
92 
96  virtual void iterateCommands(const boost::function<void(const DtDynamicTerrainChange&)>& callback) const override;
97 
99  virtual void reloadShaders();
100 
102  virtual void buildTrackStyleMap();
103 
109  virtual const osgEarth::Style* findPersistentTrackStyle(const std::string& trackType, const std::string& soilType, const std::string& trackDepth) const;
110 
111  protected:
112 
114  virtual void processChanges(const DtDynamicTerrainChange& command);
115 
117  virtual void removeTerrainChange(const DtDynamicTerrainChange& change) override;
119  virtual void removeTerrainCraterChange(const DtDynamicTerrainChange& change);
121  virtual void removeTerrainPersistentTrackChange(const DtDynamicTerrainChange& change);
122 
126  virtual void sendTrackUpdates();
127 
129  virtual bool parseTrackParameters(const DtDynamicTerrainChange &change, std::string& trackId, std::string& trackType, std::string& soilType, std::string& trackDepth) const;
130 
133  virtual void slot_observerSettingRemoved(DtObserverObject* observer, int setting);
134 
137  virtual void slot_observerSettingChanged(DtObserverObject* observer, int setting, bool value);
138 
141  virtual void setupTrackUpdatesEnabled();
142 
143  protected:
144 
147 
149 
151 
155 
156  //Member variables for the tracks rendering
159  std::map<std::string, osg::ref_ptr<osgEarth::Feature> > myGeometryRefs;
161 
165  osgEarth::LandCoverDictionary* myLandCoverDictionary;
168 
169  //if the observer setting for tracks is turned off in every observer then don't update them
171 
173  };
174 }
osg::ref_ptr< osgEarth::Contrib::DecalLandCoverLayer > myDecalLandCoverLayer
Definition: DtOsgEarthDynamicTerrainFeature.h:154
std::map< std::string, osg::ref_ptr< osgEarth::Feature > > myGeometryRefs
Definition: DtOsgEarthDynamicTerrainFeature.h:159
bool myTrackUpdatesEnabled
Definition: DtOsgEarthDynamicTerrainFeature.h:170
Definition: DtDynamicTerrainFeature.h:316
TrackTypeToStyleMap myTrackTypeToStyleMap
Definition: DtOsgEarthDynamicTerrainFeature.h:167
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:40
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
DtDe & myDe
Definition: DtOsgEarthDynamicTerrainFeature.h:163
osg::ref_ptr< osgEarth::MapNode > myMapNode
Definition: DtOsgEarthDynamicTerrainFeature.h:148
DtOsgEarthDynamicTerrainFeature is a special DtDynamicTerrainFeature which listens to all the dynamic...
Definition: DtOsgEarthDynamicTerrainFeature.h:49
osg::ref_ptr< osgEarth::Splat::RoadSurfaceLayer > myTracksLayer
Definition: DtOsgEarthDynamicTerrainFeature.h:157
Contains makVrv::DtDynamicTerrainGeometry class.
osg::ref_ptr< osg::Image > ImageRef
Definition: DtOsgEarthDynamicTerrainFeature.h:162
DtSignalConnectionManager myConnections
Definition: DtOsgEarthDynamicTerrainFeature.h:166
DtDynamicTerrainRasterLibrary * myRasterLibrary
Definition: DtOsgEarthDynamicTerrainFeature.h:164
const DtString myTracksStateName
Definition: DtOsgEarthDynamicTerrainFeature.h:146
osgEarth::LandCoverDictionary * myLandCoverDictionary
Definition: DtOsgEarthDynamicTerrainFeature.h:165
int myChangeCount
Definition: DtOsgEarthDynamicTerrainFeature.h:150
osg::ref_ptr< osgEarth::FeatureImageLayer > myTracksDebugLayer
Definition: DtOsgEarthDynamicTerrainFeature.h:172
osg::ref_ptr< DtOsgEarthMemoryFeatureSource > myFeatureSource
Definition: DtOsgEarthDynamicTerrainFeature.h:158
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:145
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:152
Contains makVrv::DtDynamicTerrainFeature class.
Base class to provide boost signal/slot management.
osg::ref_ptr< osgEarth::Contrib::DecalElevationLayer > myDecalElevLayer
Definition: DtOsgEarthDynamicTerrainFeature.h:153
Command which can be given to the dynamic terrain system to perform some change. This class is a simp...
Definition: DtDynamicTerrainChange.h:42
Contains DLL export macros.
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:70
Contains makVrv::DtOsgEarthMemoryFeatureSource class.
osg::ref_ptr< osgEarth::VirtualProgram > myTerrainEngineVirtualProgram
Definition: DtOsgEarthDynamicTerrainFeature.h:160

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)