VR-Forces 4.3 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>
17 
19 
20 #include <string>
21 #include <map>
22 #include <vector>
23 #include <list>
24 
25 namespace makVrv
26 {
27  class DtTerrainPatchObject;
28  class DtTerrainPatchObjectAgent;
29  class DtSceneObjectAgent;
30  class DtAgentManagerInterface;
31  class DtModelAgent;
32  class DtDe;
33  class DtOceanLayer;
34 
38  {
39  public:
40 
42  enum GdbSurface {
43  AsphaltOrOtherHardSurface=0,
44  Boulder=1,
45  Building=2,
46  CultivatedFields=3,
47  DeepBrook=4,
48  DeepLake=5,
49  DeepPond=6,
50  DeepRiver=7,
51  DeepStream=8,
52  DirtRoad=9,
53  DryGround=10,
54  EuroRailRoad=11,
55  Flimsy=12,
56  Forest=13,
57  Grass=14,
58  GravelRoad=15,
59  Icy=16,
60  IcyGround=17,
61  Moon=18,
62  Mud=19,
63  MuddyRoad=20,
64  Ocean=21,
65  Orchards=22,
66  PavedRoad=23,
67  Rock=24,
68  Sand=25,
69  ShallowBrook=26,
70  ShallowLake=27,
71  ShallowPond=28,
72  ShallowRiver=29,
73  ShallowStream=30,
74  SnowGround=31,
75  SoftSoil=32,
76  Swamp=33,
77  Tree=34,
78  USRailRoad=35,
79  UndefinedSoilType=36,
80  Unspecified=37,
81  UnspecifiedBodyOfWater=38,
82  UnspecifiedCulturalFeature=39,
83  UnspecifiedEnvStateGround=40,
84  WetGround=41,
85  };
86 
88  DtTerrainPatch(DtDe& de, DtAgentManagerInterface& sceneInterface,
89  const std::string& terrainDefinition);
90 
92  ~DtTerrainPatch();
93 
94  private:
95  //not copyable.
96  DtTerrainPatch(const DtTerrainPatch& copy);
97  DtTerrainPatch& operator=(const DtTerrainPatch& copy);
98 
99  public:
100 
102 
103 
105  virtual void getRecord(makArchives::DtTerrainPatchRecord& rec) const;
106 
108  virtual void setFromRecord(const makArchives::DtTerrainPatchRecord& rec);
109 
111 
113 
114 
116  const std::string& definition() const;
117 
119  DtUniqueID uniqueID() const;
120 
122  DtTerrainPatchObjectAgent* agent();
123 
125  const DtTerrainPatchObjectAgent* agent() const;
126 
128  inline DtDe& de() { return myDe;}
129 
131  inline const DtDe& de() const { return myDe; }
132 
134  DtOverlaySettings& overlaySettings();
135 
137  const DtOverlaySettings& overlaySettings() const;
138 
141  extractionOperations() const;
142 
145  oceanExtractionOperations() const;
147 
149 
150 
152  void setSurfaceVisible(int surfaceId, bool state);
153 
155  bool surfaceVisible(int surfaceId);
156 
158  DtSurfacesSettings::SurfaceIdList const& surfaceIds();
159 
161  void loadSurfacesSettings();
162 
164 
166 
167 
172  virtual void setExtractedNodeAsPropModel( DtProp* prop ,
173  bool setObjectPosition = false);
174 
176  virtual int countNodes(const std::string& rules) const;
177 
179  virtual void extractNodes(const std::string& rule, bool isRegEx);
180 
183  virtual void moveNode(DtSceneObjectAgent* objectDriver,
184  DtModelAgent* model, const std::string& rule, unsigned int index);
185 
187  virtual void addExtractNodeOperation(std::string const& searchExp,
188  bool isRegEx, std::string const& propType, unsigned int count);
189 
190 
192  void extractNodesToProps(const std::string& exp, bool isRegEx,
193  const std::string& type, const std::string& modelDefinition);
194 
196  void executeExtractionOperation( const
198 
200 
202 
203 
205  virtual void extractOceanNodes(const std::string& rule, bool isRegEx);
206 
208  virtual void addOceanExtractNodeOperation(std::string const& searchExp,
209  bool isRegEx);
210 
212  void executeOceanExtractionOperation( const
214 
216 
219  void extractNodesToTrees(std::string const& searchExp, bool isRegEx,
220  std::string const& treeSpecies);
221 
222 
223  protected:
224 
226  void onTerrainPatchObjectAvailable(DtUniqueID id);
227 
230  void executeExtractionOperations( const
232 
235  void executeOceanExtractionOperations( const
237 
239  void createPropsFromRecord(const
240  makArchives::DtPropSettingsRecord& propSettings);
241 
243  void getPropSettingsRecord(
244  makArchives::DtPropSettingsRecord& record) const;
245 
250  void createPropsFromExtraction( DtTerrainPatchObject& tpo,
251  makArchives::DtPropRecord* protoTypeRecord,
252  const std::string& exp, bool isRegEx, std::vector<std::string> matches);//unsigned int numProps);
253 
254  protected:
255 
256  std::string myDefinition;
257 
258  DtTerrainPatchObjectAgent* myTerrainAgent;
259 
262 
265  };
266 
270  {
271  public:
272 
274  static DtTerrainPatchSignaler& instance(DtDe& de);
275 
277  virtual ~DtTerrainPatchSignaler();
278 
280  boost::signal<void (DtTerrainPatch&,int surfaceId, bool state)>
282 
283  protected:
285 
286  };
287 }
288 
289 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)