VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTerrainPatch.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtTerrainLayer.h>
17 #include <vrvCore/DtTreeRecord.h>
18 
21 
23 
24 #include <string>
25 #include <map>
26 #include <vector>
27 #include <list>
28 
29 namespace makVrv
30 {
31  class DtTerrainPatchObject;
32  class DtTerrainPatchObjectAgent;
33  class DtSceneObjectAgent;
34  class DtAgentManagerInterface;
35  class DtModelAgent;
36  class DtDe;
37  class DtOceanLayer;
38  class DtTerrainPatchCreator;
39 
43  {
44  public:
45  friend class DtTerrainPatchCreator;
46 
48 
50  enum GdbSurface {
53  Building=2,
55  DeepBrook=4,
56  DeepLake=5,
57  DeepPond=6,
58  DeepRiver=7,
59  DeepStream=8,
63  Flimsy=12,
64  Forest=13,
65  Grass=14,
67  Icy=16,
68  IcyGround=17,
69  Moon=18,
70  Mud=19,
72  Ocean=21,
75  Rock=24,
76  Sand=25,
77  ShallowBrook=26,
78  ShallowLake=27,
79  ShallowPond=28,
80  ShallowRiver=29,
81  ShallowStream=30,
82  SnowGround=31,
84  Swamp=33,
85  Tree=34,
91  UnspecifiedEnvStateGround=40,
92  WetGround=41,
93  };
94 
96  virtual ~DtTerrainPatch();
97 
98 
99  private:
100  //not copyable.
101  DtTerrainPatch(const DtTerrainPatch& copy);
102  DtTerrainPatch& operator=(const DtTerrainPatch& copy);
103 
104  public:
105 
107 
108 
110  virtual void getRecord(makArchives::DtTerrainPatchRecord& rec) const;
111 
113  virtual void setFromRecord(const makArchives::DtTerrainPatchRecord& rec);
114 
116 
118 
119 
121  virtual const std::string& definition() const;
122 
124  virtual DtUniqueID uniqueID() const;
125 
127  virtual DtTerrainPatchObjectAgent* findObjectAgent();
131  virtual const DtTerrainPatchObjectAgent* findObjectAgent() const;
133 
135  inline DtDe& de() { return myDe;}
136 
138  inline const DtDe& de() const { return myDe; }
139 
141  virtual void setIsMinimapOnly(bool onlyForMinimap);
142 
144  virtual bool isMinimapOnly() const;
145 
147  virtual void setIsPageable(bool isPageable);
149  virtual bool isPageable() const;
151 
153  virtual void setPageOutDistance(double pageOutDistance);
156  virtual double pageOutDistance() const;
158 
160  virtual DtOverlaySettings& overlaySettings();
161 
163  virtual const DtOverlaySettings& overlaySettings() const;
164 
166  virtual DtTerrainTreeSettings& terrainTreeSettings();
167 
169  virtual const DtTerrainTreeSettings& terrainTreeSettings() const;
170 
173  extractionOperations() const;
174 
177  oceanExtractionOperations() const;
179 
181 
182 
184  virtual void setSurfaceVisible(int surfaceId, bool state);
185 
187  virtual bool surfaceVisible(int surfaceId);
188 
190  virtual const DtSurfacesSettings::SurfaceIdList& surfaceIds();
191 
193  virtual void loadSurfacesSettings();
194 
196 
198 
199 
204  virtual void setExtractedNodeAsPropModel( DtProp* prop ,
205  bool setObjectPosition = false);
206 
208  virtual int countNodes(const std::string& rules) const;
209 
211  virtual void extractNodes(const std::string& rule, bool isRegEx);
212 
215  virtual void moveNode(DtSceneObjectAgent* objectDriver,
216  DtModelAgent* model, const std::string& rule, unsigned int index);
217 
219  virtual void addExtractNodeOperation(std::string const& searchExp,
220  bool isRegEx, std::string const& propType, unsigned int count);
221 
222 
224  virtual void extractNodesToProps(const std::string& exp, bool isRegEx,
225  const std::string& type, const std::string& modelDefinition);
226 
228  virtual void extractNodesToSpeedTrees(const std::string& exp, bool isRegEx
229  , const std::string& modelDefinition);
230 
231 
233  virtual void executeExtractionOperation( const
235 
237 
239 
240  virtual void requestOceanExtraction(const std::string& rule, bool isRegEx);
243 
245  virtual void extractOceanNodes(const std::string& rule, bool isRegEx);
246 
249  virtual void addOceanExtractNodeOperation(std::string const& searchExp,
250  bool isRegEx);
251 
255  virtual void addOceanExtractNodeOperationIfExtracted(std::string const& searchExp, bool isRegEx);
256 
258  virtual void executeOceanExtractionOperation( const
260 
262 
263 
265 
266 
268  virtual void extractSpeedTreeNodes(const std::string& rule, const bool isRegEx, const std::string& stModelDefinition);
269 
271  void executeSpeedTreeExtractionOperation(const
273 
275  virtual void addSpeedTreeExtractOperation(std::string const& searchExp,
276  bool isRegEx, const std::string& modelDefinition);
277 
278 
280 
284  void extractNodesToTrees(std::string const& searchExp, bool isRegEx,
285  std::string const& treeSpecies);
286 
287 
288  protected:
289 
291  DtTerrainPatch(DtDe& de, DtAgentManagerInterface& sceneInterface, const std::string& terrainDefinition,
292  bool minimapOnly=false, const DtPageableTerrainPatchRecord& isPageable=DtPageableTerrainPatchRecord());
293 
295  virtual void onTerrainPatchObjectAvailable(DtUniqueID id);
296 
298  virtual void onTerrainPatchObjectCreated(DtTerrainPatchObject& terrainPatchObject);
299 
302  virtual void executeExtractionOperations( const
304 
307  virtual void executeOceanExtractionOperations( const
309 
312  virtual void executeSpeedTreeExtractionOperations(const
314 
316  virtual void createPropsFromRecord(const
317  makArchives::DtPropSettingsRecord& propSettings);
318 
320  virtual void getPropSettingsRecord(
321  makArchives::DtPropSettingsRecord& record) const;
322 
327  virtual void createPropsFromExtraction( DtTerrainPatchObject& tpo,
328  makArchives::DtPropRecord* protoTypeRecord,
329  const std::string& exp, bool isRegEx, const std::vector<std::string>& matches);//unsigned int numProps);
330 
334  virtual void slot_oceanNodesExtracted(DtTerrainPatchObject& tpo, bool extracted, std::string const& searchExp, bool isRegEx);
335 
336  protected:
337 
338  std::string myDefinition;
339 
340  DtTerrainPatchObjectAgent* myTerrainAgent;
341 
344  // Randomization, scale of trees on the terrain patch
346 
350 
352 
354 
356  };
357 
361  {
362  public:
363 
365  static DtTerrainPatchSignaler& instance(DtDe& de);
366 
368  virtual ~DtTerrainPatchSignaler();
369 
371  boost::signalslib::signal<void (DtTerrainPatch&,int surfaceId, bool state)>
373 
374  protected:
376 
377  };
378 
382  {
383 
384  public:
387  static DtTerrainPatchCreator& instance(DtDe& de);
388 
390  static void registerInstance(DtDe& de, DtTerrainPatchCreator* instance);
391 
393  virtual DtTerrainPatch* create(DtDe& de, DtAgentManagerInterface& sceneInterface,
394  const std::string& terrainDefinition, bool minimapOnly, const DtTerrainPatch::DtPageableTerrainPatchRecord& pageableRecord);
395  };
396 }
397 
398 
GdbSurface
GDB Surface IDs.
Definition: DtTerrainPatch.h:50
Contains surface on/off settings.
Definition: DtSurfacesSettings.h:24
Definition: surface.h:25
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: surface.h:40
The terrain patch creator for the DtTerrainPatch class.
Definition: DtTerrainPatch.h:381
std::string myDefinition
Definition: DtTerrainPatch.h:338
A DtExtractionOperationRecord contains information about a single extraction operation.
Definition: DtExtractionOperationRecord.h:19
Definition: surface.h:43
makArchives::DtTerrainPatchRecord::ExtractionOperations myExtractionHistory
Definition: DtTerrainPatch.h:347
std::vector< int > SurfaceIdList
Move to SurfaceDefinitionManager.
Definition: DtSurfacesSettings.h:29
DtSpeedTreeExtractionOperationRecord is the serializable record used to read speed tree props...
Definition: DtSpeedTreeExtractionOperationRecord.h:22
Definition: surface.h:35
Definition: surface.h:54
Definition: surface.h:38
Class for setting and maintaining state for user-modifiable overlay settings All of the overlay-chang...
Definition: DtOverlaySettings.h:31
Definition: surface.h:39
Contains makVrv::DtTerrainLayer class.
Definition: surface.h:48
DtTerrainPatchObjectAgent * myTerrainAgent
Definition: DtTerrainPatch.h:340
Definition: surface.h:27
Definition: surface.h:26
DtDe & de()
Get the de.
Definition: DtTerrainPatch.h:135
Definition: surface.h:33
Definition: surface.h:70
The DtTerrainlayer is the base implementation of a layer of data which makes up the terrain...
Definition: DtTerrainLayer.h:33
Definition: surface.h:23
A container for a single piece of terrain, containing settings needed to recreate it...
Definition: DtTerrainPatch.h:42
Definition: surface.h:28
DtTerrainTreeSettings myTerrainTreeSettings
Definition: DtTerrainPatch.h:345
A DtPropSettingsRecord contains the information to restore settings for all scene props...
Definition: DtPropSettingsRecord.h:20
Definition: surface.h:30
Definition: surface.h:24
Definition: surface.h:29
A DtTerrainPatchObject contains the methods for loading a file as a terrain. When loading a file as a...
Definition: DtTerrainPatchObject.h:35
Facade object for a scene prop.
Definition: DtProp.h:34
makArchives::DtTerrainPatchRecord::SpeedTreeExtractionOperations mySpeedTreeExtrationHistory
Definition: DtTerrainPatch.h:349
A signaler class for DtTerrainPatch.
Definition: DtTerrainPatch.h:360
Record of pageable terrain patch settings.
Definition: DtTerrainPatchRecord.h:33
Definition: surface.h:37
Definition: surface.h:36
Contains makVrv::DtVirtualBaseClass class.
Definition: surface.h:61
boost::signalslib::signal< void(DtTerrainPatch &, int surfaceId, bool state)> signal_surfaceVisibilityChanged
Emitted when a surface&#39;s visibility setting is changed.
Definition: DtTerrainPatch.h:372
Definition: surface.h:31
A DtPropRecord contains the information to recreate a prop.
Definition: DtPropRecord.h:19
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv::DtSurfacesSettings class.
Contains makVrv::DtTerrainPatchRecord class.
std::list< DtExtractionOperationRecord > ExtractionOperations
Definition: DtTerrainPatchRecord.h:137
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtOverlaySettings myOverlaySettings
Definition: DtTerrainPatch.h:342
bool myIsMinimapOnly
Definition: DtTerrainPatch.h:351
Contains makVrv::DtTerrainTreeSettings class.
A DtOceanExtractionOperationRecord contains information about a single ocean extraction operation...
Definition: DtOceanExtractionOperationRecord.h:19
std::list< DtSpeedTreeExtractionOperationRecord > SpeedTreeExtractionOperations
Definition: DtTerrainPatchRecord.h:139
DtSurfacesSettings mySurfacesSettings
Definition: DtTerrainPatch.h:343
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Definition: surface.h:32
const DtDe & de() const
Get the de.
Definition: DtTerrainPatch.h:138
Definition: surface.h:42
DtSignalConnectionManager myConnections
Definition: DtTerrainPatch.h:353
Base class to provide boost signal/slot management.
makArchives::DtTerrainPatchRecord::OceanExtractionOperations myOceanExtractionHistory
Definition: DtTerrainPatch.h:348
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
Class for setting and maintaining state for user-modifiable TerrainTree settings All of the TerrainTr...
Definition: DtTerrainTreeSettings.h:28
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:72
DtPageableTerrainPatchRecord myPageableTerrainPatchRecord
Definition: DtTerrainPatch.h:355
std::list< DtOceanExtractionOperationRecord > OceanExtractionOperations
Definition: DtTerrainPatchRecord.h:138
A DtTerrainPatchRecord contains the information to construct a single DtTerrainPatch.
Definition: DtTerrainPatchRecord.h:27
Contains makVrv::DtTreeRecord class.
Definition: surface.h:34
Contains makVrv::DtOverlaySettings class.
Contains DLL export macros.

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)