VR-Forces 4.6 Class Documentation
 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) 2017 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* agent();
124 
126  const DtTerrainPatchObjectAgent* agent() const;
127 
129  inline DtDe& de() { return myDe;}
130 
132  inline const DtDe& de() const { return myDe; }
133 
135  DtOverlaySettings& overlaySettings();
136 
138  const DtOverlaySettings& overlaySettings() const;
139 
141  DtTerrainTreeSettings& terrainTreeSettings();
142 
144  const DtTerrainTreeSettings& terrainTreeSettings() const;
145 
148  extractionOperations() const;
149 
152  oceanExtractionOperations() const;
154 
156 
157 
159  void setSurfaceVisible(int surfaceId, bool state);
160 
162  bool surfaceVisible(int surfaceId);
163 
165  DtSurfacesSettings::SurfaceIdList const& surfaceIds();
166 
168  void loadSurfacesSettings();
169 
171 
173 
174 
179  virtual void setExtractedNodeAsPropModel( DtProp* prop ,
180  bool setObjectPosition = false);
181 
183  virtual int countNodes(const std::string& rules) const;
184 
186  virtual void extractNodes(const std::string& rule, bool isRegEx);
187 
190  virtual void moveNode(DtSceneObjectAgent* objectDriver,
191  DtModelAgent* model, const std::string& rule, unsigned int index);
192 
194  virtual void addExtractNodeOperation(std::string const& searchExp,
195  bool isRegEx, std::string const& propType, unsigned int count);
196 
197 
199  void extractNodesToProps(const std::string& exp, bool isRegEx,
200  const std::string& type, const std::string& modelDefinition);
201 
203  void extractNodesToSpeedTrees(const std::string& exp, bool isRegEx
204  , const std::string& modelDefinition);
205 
206 
208  void executeExtractionOperation( const
210 
212 
214 
215 
216 
217  virtual void requestOceanExtraction(const std::string& rule, bool isRegEx);
218 
220  virtual void extractOceanNodes(const std::string& rule, bool isRegEx);
221 
224  virtual void addOceanExtractNodeOperation(std::string const& searchExp,
225  bool isRegEx);
226 
230  virtual void addOceanExtractNodeOperationIfExtracted(std::string const& searchExp, bool isRegEx);
231 
233  void executeOceanExtractionOperation( const
235 
237 
238 
240 
241 
243  virtual void extractSpeedTreeNodes(const std::string& rule, const bool isRegEx, const std::string& stModelDefinition);
244 
246  void executeSpeedTreeExtractionOperation(const
248 
250  virtual void addSpeedTreeExtractOperation(std::string const& searchExp,
251  bool isRegEx, const std::string& modelDefinition);
252 
253 
255 
259  void extractNodesToTrees(std::string const& searchExp, bool isRegEx,
260  std::string const& treeSpecies);
261 
262 
263  protected:
264 
266  DtTerrainPatch(DtDe& de, DtAgentManagerInterface& sceneInterface,
267  const std::string& terrainDefinition);
268 
270  void onTerrainPatchObjectAvailable(DtUniqueID id);
271 
274  void executeExtractionOperations( const
276 
279  void executeOceanExtractionOperations( const
281 
284  void executeSpeedTreeExtractionOperations(const
286 
288  void createPropsFromRecord(const
289  makArchives::DtPropSettingsRecord& propSettings);
290 
292  void getPropSettingsRecord(
293  makArchives::DtPropSettingsRecord& record) const;
294 
297  void setPatchObjectTerrainTreeData( DtTerrainPatchObject& tpo );
298 
303  void createPropsFromExtraction( DtTerrainPatchObject& tpo,
304  makArchives::DtPropRecord* protoTypeRecord,
305  const std::string& exp, bool isRegEx, const std::vector<std::string>& matches);//unsigned int numProps);
306 
310  virtual void slot_oceanNodesExtracted(DtTerrainPatchObject& tpo, bool extracted, std::string const& searchExp, bool isRegEx);
311 
312  protected:
313 
314  std::string myDefinition;
315 
316  DtTerrainPatchObjectAgent* myTerrainAgent;
317 
320  // Randomization, scale of trees on the terrain patch
322 
326  };
327 
331  {
332  public:
333 
335  static DtTerrainPatchSignaler& instance(DtDe& de);
336 
338  virtual ~DtTerrainPatchSignaler();
339 
341  boost::signal<void (DtTerrainPatch&,int surfaceId, bool state)>
343 
344  protected:
346 
347  };
348 
352  {
353 
354  public:
357  static DtTerrainPatchCreator& instance(DtDe& de);
358 
360  static void registerInstance(DtDe& de, DtTerrainPatchCreator* instance);
361 
363  virtual DtTerrainPatch* create(DtDe& de, DtAgentManagerInterface& sceneInterface,
364  const std::string& terrainDefinition);
365  };
366 }
367 
368 

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)