VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtTerrainPatch.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 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 
20 
21 #include <string>
22 #include <map>
23 #include <vector>
24 #include <list>
25 
26 namespace makVrv
27 {
28  class DtTerrainPatchObject;
29  class DtTerrainPatchObjectAgent;
30  class DtSceneObjectAgent;
31  class DtAgentManagerInterface;
32  class DtModelAgent;
33  class DtDe;
34  class DtOceanLayer;
35 
39  {
40  public:
41 
43  enum GdbSurface {
46  Building=2,
48  DeepBrook=4,
49  DeepLake=5,
50  DeepPond=6,
51  DeepRiver=7,
52  DeepStream=8,
54  DryGround=10,
56  Flimsy=12,
57  Forest=13,
58  Grass=14,
60  Icy=16,
61  IcyGround=17,
62  Moon=18,
63  Mud=19,
65  Ocean=21,
68  Rock=24,
69  Sand=25,
70  ShallowBrook=26,
71  ShallowLake=27,
72  ShallowPond=28,
73  ShallowRiver=29,
74  ShallowStream=30,
75  SnowGround=31,
77  Swamp=33,
78  Tree=34,
81  Unspecified=37,
84  UnspecifiedEnvStateGround=40,
85  WetGround=41,
86  };
87 
89  DtTerrainPatch(DtDe& de, DtAgentManagerInterface& sceneInterface,
90  const std::string& terrainDefinition);
91 
93  ~DtTerrainPatch();
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 executeExtractionOperation( const
205 
207 
209 
210 
212  virtual void extractOceanNodes(const std::string& rule, bool isRegEx);
213 
215  virtual void addOceanExtractNodeOperation(std::string const& searchExp,
216  bool isRegEx);
217 
219  void executeOceanExtractionOperation( const
221 
223 
226  void extractNodesToTrees(std::string const& searchExp, bool isRegEx,
227  std::string const& treeSpecies);
228 
229 
230  protected:
231 
233  void onTerrainPatchObjectAvailable(DtUniqueID id);
234 
237  void executeExtractionOperations( const
239 
242  void executeOceanExtractionOperations( const
244 
246  void createPropsFromRecord(const
247  makArchives::DtPropSettingsRecord& propSettings);
248 
250  void getPropSettingsRecord(
251  makArchives::DtPropSettingsRecord& record) const;
252 
255  void setPatchObjectTerrainTreeData( DtTerrainPatchObject& tpo );
256 
261  void createPropsFromExtraction( DtTerrainPatchObject& tpo,
262  makArchives::DtPropRecord* protoTypeRecord,
263  const std::string& exp, bool isRegEx, std::vector<std::string> matches);//unsigned int numProps);
264 
265  protected:
266 
267  std::string myDefinition;
268 
269  DtTerrainPatchObjectAgent* myTerrainAgent;
270 
273  // Randomization, scale of trees on the terrain patch
275 
278  };
279 
283  {
284  public:
285 
287  static DtTerrainPatchSignaler& instance(DtDe& de);
288 
290  virtual ~DtTerrainPatchSignaler();
291 
293  boost::signal<void (DtTerrainPatch&,int surfaceId, bool state)>
295 
296  protected:
298 
299  };
300 }
301 
302 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)