VR-Forces 5.0.3 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtTerrainLayer.h>
18 #include <vrvCore/DtTreeRecord.h>
19 
21 
22 #include <string>
23 #include <map>
24 #include <vector>
25 #include <list>
26 
27 namespace makVrv
28 {
29  class DtTerrainPatchObject;
30  class DtTerrainPatchObjectAgent;
31  class DtSceneObjectAgent;
32  class DtAgentManagerInterface;
33  class DtModelAgent;
34  class DtDe;
35  class DtOceanLayer;
36  class DtTerrainPatchCreator;
37 
41  {
42  public:
43  friend class DtTerrainPatchCreator;
44 
46  enum GdbSurface {
49  Building=2,
51  DeepBrook=4,
52  DeepLake=5,
53  DeepPond=6,
54  DeepRiver=7,
55  DeepStream=8,
57  DryGround=10,
59  Flimsy=12,
60  Forest=13,
61  Grass=14,
63  Icy=16,
64  IcyGround=17,
65  Moon=18,
66  Mud=19,
68  Ocean=21,
71  Rock=24,
72  Sand=25,
73  ShallowBrook=26,
74  ShallowLake=27,
75  ShallowPond=28,
76  ShallowRiver=29,
77  ShallowStream=30,
78  SnowGround=31,
80  Swamp=33,
81  Tree=34,
84  Unspecified=37,
87  UnspecifiedEnvStateGround=40,
88  WetGround=41,
89  };
90 
92  virtual ~DtTerrainPatch();
93 
94 
95  private:
96  //not copyable.
97  DtTerrainPatch(const DtTerrainPatch& copy);
98  DtTerrainPatch& operator=(const DtTerrainPatch& copy);
99 
100  public:
101 
103 
104 
106  virtual void getRecord(makArchives::DtTerrainPatchRecord& rec) const;
107 
109  virtual void setFromRecord(const makArchives::DtTerrainPatchRecord& rec);
110 
112 
114 
115 
117  const std::string& definition() const;
118 
120  DtUniqueID uniqueID() const;
121 
123  DtTerrainPatchObjectAgent* findObjectAgent();
127  const DtTerrainPatchObjectAgent* findObjectAgent() const;
129 
131  inline DtDe& de() { return myDe;}
132 
134  inline const DtDe& de() const { return myDe; }
135 
137  void setIsMinimapOnly(bool onlyForMinimap);
138 
140  bool isMinimapOnly() const;
141 
142 
144  DtOverlaySettings& overlaySettings();
145 
147  const DtOverlaySettings& overlaySettings() const;
148 
150  DtTerrainTreeSettings& terrainTreeSettings();
151 
153  const DtTerrainTreeSettings& terrainTreeSettings() const;
154 
157  extractionOperations() const;
158 
161  oceanExtractionOperations() const;
163 
165 
166 
168  void setSurfaceVisible(int surfaceId, bool state);
169 
171  bool surfaceVisible(int surfaceId);
172 
174  DtSurfacesSettings::SurfaceIdList const& surfaceIds();
175 
177  void loadSurfacesSettings();
178 
180 
182 
183 
188  virtual void setExtractedNodeAsPropModel( DtProp* prop ,
189  bool setObjectPosition = false);
190 
192  virtual int countNodes(const std::string& rules) const;
193 
195  virtual void extractNodes(const std::string& rule, bool isRegEx);
196 
199  virtual void moveNode(DtSceneObjectAgent* objectDriver,
200  DtModelAgent* model, const std::string& rule, unsigned int index);
201 
203  virtual void addExtractNodeOperation(std::string const& searchExp,
204  bool isRegEx, std::string const& propType, unsigned int count);
205 
206 
208  void extractNodesToProps(const std::string& exp, bool isRegEx,
209  const std::string& type, const std::string& modelDefinition);
210 
212  void extractNodesToSpeedTrees(const std::string& exp, bool isRegEx
213  , const std::string& modelDefinition);
214 
215 
217  void executeExtractionOperation( const
219 
221 
223 
224  virtual void requestOceanExtraction(const std::string& rule, bool isRegEx);
227 
229  virtual void extractOceanNodes(const std::string& rule, bool isRegEx);
230 
233  virtual void addOceanExtractNodeOperation(std::string const& searchExp,
234  bool isRegEx);
235 
239  virtual void addOceanExtractNodeOperationIfExtracted(std::string const& searchExp, bool isRegEx);
240 
242  void executeOceanExtractionOperation( const
244 
246 
247 
249 
250 
252  virtual void extractSpeedTreeNodes(const std::string& rule, const bool isRegEx, const std::string& stModelDefinition);
253 
255  void executeSpeedTreeExtractionOperation(const
257 
259  virtual void addSpeedTreeExtractOperation(std::string const& searchExp,
260  bool isRegEx, const std::string& modelDefinition);
261 
262 
264 
268  void extractNodesToTrees(std::string const& searchExp, bool isRegEx,
269  std::string const& treeSpecies);
270 
271 
272  protected:
273 
275  DtTerrainPatch(DtDe& de, DtAgentManagerInterface& sceneInterface,
276  const std::string& terrainDefinition, bool minimapOnly=false);
277 
279  void onTerrainPatchObjectAvailable(DtUniqueID id);
280 
283  void executeExtractionOperations( const
285 
288  void executeOceanExtractionOperations( const
290 
293  void executeSpeedTreeExtractionOperations(const
295 
297  void createPropsFromRecord(const
298  makArchives::DtPropSettingsRecord& propSettings);
299 
301  void getPropSettingsRecord(
302  makArchives::DtPropSettingsRecord& record) const;
303 
306  void setPatchObjectTerrainTreeData( DtTerrainPatchObject& tpo );
307 
312  void createPropsFromExtraction( DtTerrainPatchObject& tpo,
313  makArchives::DtPropRecord* protoTypeRecord,
314  const std::string& exp, bool isRegEx, const std::vector<std::string>& matches);//unsigned int numProps);
315 
319  virtual void slot_oceanNodesExtracted(DtTerrainPatchObject& tpo, bool extracted, std::string const& searchExp, bool isRegEx);
320 
321  protected:
322 
323  std::string myDefinition;
324 
325  DtTerrainPatchObjectAgent* myTerrainAgent;
326 
329  // Randomization, scale of trees on the terrain patch
331 
335 
337  };
338 
342  {
343  public:
344 
346  static DtTerrainPatchSignaler& instance(DtDe& de);
347 
349  virtual ~DtTerrainPatchSignaler();
350 
352  boost::signalslib::signal<void (DtTerrainPatch&,int surfaceId, bool state)>
354 
355  protected:
357 
358  };
359 
363  {
364 
365  public:
368  static DtTerrainPatchCreator& instance(DtDe& de);
369 
371  static void registerInstance(DtDe& de, DtTerrainPatchCreator* instance);
372 
374  virtual DtTerrainPatch* create(DtDe& de, DtAgentManagerInterface& sceneInterface,
375  const std::string& terrainDefinition, bool minimapOnly);
376  };
377 }
378 
379 
GdbSurface
GDB Surface IDs.
Definition: DtTerrainPatch.h:46
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:362
std::string myDefinition
Definition: DtTerrainPatch.h:323
A DtExtractionOperationRecord contains information about a single extraction operation.
Definition: DtExtractionOperationRecord.h:19
Definition: surface.h:42
makArchives::DtTerrainPatchRecord::ExtractionOperations myExtractionHistory
Definition: DtTerrainPatch.h:332
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:53
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:47
DtTerrainPatchObjectAgent * myTerrainAgent
Definition: DtTerrainPatch.h:325
Definition: surface.h:27
Definition: surface.h:26
DtDe & de()
Get the de.
Definition: DtTerrainPatch.h:131
Definition: surface.h:33
Definition: surface.h:69
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:40
Definition: surface.h:28
DtTerrainTreeSettings myTerrainTreeSettings
Definition: DtTerrainPatch.h:330
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:37
Facade object for a scene prop.
Definition: DtProp.h:34
makArchives::DtTerrainPatchRecord::SpeedTreeExtractionOperations mySpeedTreeExtrationHistory
Definition: DtTerrainPatch.h:334
A signaler class for DtTerrainPatch.
Definition: DtTerrainPatch.h:341
Definition: surface.h:37
Definition: surface.h:36
Contains makVrv::DtVirtualBaseClass class.
Definition: surface.h:60
boost::signalslib::signal< void(DtTerrainPatch &, int surfaceId, bool state)> signal_surfaceVisibilityChanged
Emitted when a surface&#39;s visibility setting is changed.
Definition: DtTerrainPatch.h:353
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:46
DtOverlaySettings myOverlaySettings
Definition: DtTerrainPatch.h:327
bool myIsMinimapOnly
Definition: DtTerrainPatch.h:336
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:48
DtSurfacesSettings mySurfacesSettings
Definition: DtTerrainPatch.h:328
Definition: surface.h:32
const DtDe & de() const
Get the de.
Definition: DtTerrainPatch.h:134
makArchives::DtTerrainPatchRecord::OceanExtractionOperations myOceanExtractionHistory
Definition: DtTerrainPatch.h:333
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:70
std::list< DtOceanExtractionOperationRecord > OceanExtractionOperations
Definition: DtTerrainPatchRecord.h:47
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 Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)