VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terrainInterfaceConfig.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfutil/vrfutilDefines.h>
15 #include <readerWriter/rwInt.h>
16 #include <readerWriter/rwReal.h>
17 #include <readerWriter/rwString.h>
18 #include <readerWriter/rwBoolean.h>
19 #include "readerWriter/rwVector.h"
21 
22 #include <iosfwd>
23 
24 #include <boost/noncopyable.hpp>
25 
27 
33  : public DtReaderWriter
34  , boost::noncopyable
35 {
36  class DT_DLL_vrfutil Configator : boost::noncopyable
37  {
38  public:
39  virtual ~Configator();
40  virtual bool configure(DtReaderWriter&, bool ignoreUnspecified=true) const = 0;
41  };
42 
43  template <typename D>
44  class TerrainParam : public D, public Configator
45  {
46  public:
47  explicit TerrainParam(
48  const std::string& name, DtReaderWriterRegistry* parentRegistry)
49  : D(name, parentRegistry)
50  {
51  //this->setValueSpecified(false, true);
52  this->myValueSpecified = true;
53  }
54 
55  explicit TerrainParam(const std::string& name, bool def, DtReaderWriterRegistry* parent)
56  : D(def, name, parent)
57  {
58  //this->setValueSpecified(false, true);
59  this->myValueSpecified = true;
60  }
61 
62  template <typename T>
63  explicit TerrainParam(const std::string& name, T def, DtReaderWriterRegistry* parent)
64  : D(name, def, parent)
65  {
66  //this->setValueSpecified(false, true);
67  this->myValueSpecified = true;
68  }
69 
70  virtual bool valuePresent() const
71  {
72  return this->valueSpecified();
73  }
74 
75  virtual bool configure(DtReaderWriter& rw, bool ignoreUnspecified) const
76  {
77  if (ignoreUnspecified && !valuePresent())
78  return true;
79 
80  if (D* rwD = dynamic_cast<D*>(&rw))
81  {
82  *rwD = *this;
83  return true;
84  }
85 
86  return false;
87  }
88 
89  template <typename T>
91  {
92  D::operator=(t);
93  this->setValueSpecified(true);
94  return *this;
95  }
96  };
97 
98  template <typename T>
99  class ListT : public DtRwTemplatedListPtr<T, true>
100  , public Configator
101  {
103 
104  public:
105  ListT(const std::string& name, DtReaderWriterRegistry* parentRegistry)
106  : ListBase(name, parentRegistry)
107  {
108  }
109 
110  virtual bool configure(DtReaderWriter& rw, bool ignoreUnspecified) const
111  {
112  ListBase* rwlist = dynamic_cast<ListBase*>(&rw);
113  if (!rwlist)
114  return false;
115 
116  rwlist->removeAndDeleteAll();
117 
118  bool success = true;
119  typename ListBase::iterator iter(*this);
120  for (T* info=iter.first(); info; info=iter.next())
121  {
122  std::auto_ptr<T> t(new T());
123  info->configure(*t, ignoreUnspecified);
124  rwlist->add(t.release());
125  }
126 
127  return success;
128  }
129 
130  //using ListBase::operator=;
131  };
132 
139 
146 
147 public:
153  explicit DtTerrainInterfaceConfig(const std::string& matchPattern = "");
154 
156 
158  virtual bool loadFromFile(const std::string& file, std::ostream& log);
159  virtual bool loadFromFile(const std::string& file);
160 
165  virtual bool loadFromSourceSpecificFile(
166  const std::string& file,
167  const std::string& ext = "mtl");
168 
185  virtual void configure(
186  DtTerrainInterfaceConfig& config,
187  const std::string& matchText,
188  bool ignoreUnspecified=true) const;
189 
190  virtual void configure(DtTerrainInterfaceConfig& config, bool ignoreUnspecified=true) const;
191 
194  virtual void configurePaths(std::string& path) const;
195 
197  virtual void print(std::ostream&, bool printUnspecified=true) const;
198 
199  DtString prettyPrint() const;
200 
201  void setName(const DtString&);
202 
208 
215 
221 
227 
233 
238 
243 
249 
256 
261 
266 
272 
278 
285 
291 
298 
306 
312 
319 
325 
345 
352 
357 
364 
370 
376 
381 
387 
394 
399 
404 
409 
414 
418 
422 
426 
430 
437 
444 
452 
460 
470 
482 
487 
491 
499 
509 
515 
523 
532 
533  static void setModelDefinitionDefault(const std::string&);
534 
535  std::string modelDefinitionPath() const;
536 
537  std::string simCachePath() const;
538 
539  std::string featureConfigFile() const;
540 
541 protected:
546 
550 
554 };
555 
556 DT_DLL_vrfutil std::ostream& operator<<(std::ostream&, const DtTerrainInterfaceConfig&);
TInt featuresLowestLoadLOD
Parameter Name: features-lowest-load-LOD Parameter Description: The largest tile (smallest LOD) for l...
Definition: terrainInterfaceConfig.h:232
TBool proceduralSimVegetationEnabled
Parameter Name: procedural_sim_vegetation_enabled Configure if we want the procedural sim trees to be...
Definition: terrainInterfaceConfig.h:531
TerrainParam & operator=(T t)
Definition: terrainInterfaceConfig.h:90
Class DtTerrainInterfaceConfig is a readable-writable class holding terrain interface configuration o...
Definition: terrainInterfaceConfig.h:32
TBool deduplicateFeatures
Parameter Name: deduplicate-features Parameter Description: Remove duplicate features. Parameter Default: True.
Definition: terrainInterfaceConfig.h:260
TInt defaultPreloadPriority
Parameter Name: default-preload-priority Parameter Description: Default priority for preload geometry...
Definition: terrainInterfaceConfig.h:386
virtual bool valuePresent() const
Definition: terrainInterfaceConfig.h:70
TerrainParam< DtRwVector > TVector
Definition: terrainInterfaceConfig.h:137
TBool oceanLayerPresent
Parameter Name: ocean-layer-present Enable/disable ocean layer-present Default: True.
Definition: terrainInterfaceConfig.h:403
TerrainParam(const std::string &name, bool def, DtReaderWriterRegistry *parent)
Definition: terrainInterfaceConfig.h:55
TReal featuresIndexRatio
Parameter Name: features-index-ratio Parameter Description: If the ratio of the number of features in...
Definition: terrainInterfaceConfig.h:255
TReal seaLevel
Parameter Name: sea-level Sea level in meters Default:
Definition: terrainInterfaceConfig.h:408
TInt featuresMaxIndexLOD
Parameter Name: features-max-index-LOD Parameter Description: Smallest tile LOD level to index featur...
Definition: terrainInterfaceConfig.h:242
TInt cacheOnlyMaxLod
Parameter Name: cache-only-max-lod Parameter Description: Max level of detail to use when in cache-on...
Definition: terrainInterfaceConfig.h:356
TInt pathFinderMaxDisjointNetworks
Parameter Name: pathfinder-max-disjoint-networks Parameter Description: Maximum number of additional ...
Definition: terrainInterfaceConfig.h:344
TReal elevationIntersectTriangleMergeTolerance
Parameter Name: elevation-intersect-triangle-merge-tolerance Parameter Description: Error tolerance b...
Definition: terrainInterfaceConfig.h:459
ListT(const std::string &name, DtReaderWriterRegistry *parentRegistry)
Definition: terrainInterfaceConfig.h:105
TBool pageFeatures
Parameter Name: page-features Default: True.
Definition: terrainInterfaceConfig.h:421
Definition: readerWriter.h:85
TInt minFeaturesToIndexTile
Parameter Name: min-features-to-index-tile Parameter Description: Minumum number of features in a til...
Definition: terrainInterfaceConfig.h:248
TInt pathFinderMaxSize
Parameter Name: pathfinder-max-features Parameter Description: The max size of a DtAStarGraph. Once a path finder has exceeded this number of loaded features, it will be deleted, to be recreated the next time a path plan is requested. Parameter Default Value: 50000.
Definition: terrainInterfaceConfig.h:284
TString mySimCachePath
Parameter Name: sim-cache-path Default: /cache/vrfsim.
Definition: terrainInterfaceConfig.h:549
TerrainParam< DtRwString > TString
Definition: terrainInterfaceConfig.h:136
DT_DLL_features std::ostream & operator<<(std::ostream &, const DtFeatureTransform &)
std::ostream output.
Definition: readerWriterRegistry.h:39
TReal elevationTriangleOutputMergeTolerance
Parameter Name: elevation-triangle-output-merge-tolerance Parameter Description: Error tolerance betw...
Definition: terrainInterfaceConfig.h:451
TerrainParam(const std::string &name, DtReaderWriterRegistry *parentRegistry)
Definition: terrainInterfaceConfig.h:47
TList subconfigurations
Parameter Name: subconfigurations Parameter Description: A list of DtTerrainInterfaceConfig objects w...
Definition: terrainInterfaceConfig.h:145
TInt terrainMinUnloadIntersectDiff
Parameter Name: terrain-min-unload-intersect-diff Default: 50.
Definition: terrainInterfaceConfig.h:429
Definition: terrainInterfaceConfig.h:44
TBool loadTerraPageLocalMaterials
Parameter Name: load-terra-page-local-materials Parameter Description: Whether or not to have the bac...
Definition: terrainInterfaceConfig.h:277
TInt nbTerrainThread
Parameter Name: nbTerrainThread Parameter Description: Number of terrain thread to start...
Definition: terrainInterfaceConfig.h:514
TInt pathFinderMinVertexSearch
Parameter Name: pathfinder-min-vertex-search Parameter Description: The minimum number of vertices th...
Definition: terrainInterfaceConfig.h:311
ListT< DtTerrainInterfaceConfig > TList
Definition: terrainInterfaceConfig.h:138
TInt maxElevationIndexLOD
Parameter Name: max-elevation-index-lod Parameter Description: Maximum LOD to check for elevation int...
Definition: terrainInterfaceConfig.h:443
TBool loadTerraPageImagery
Parameter Name: load-terra-page-imagery Parameter Description: Whether or not to have the back-end lo...
Definition: terrainInterfaceConfig.h:271
TInt intersectPageInPriority
Parameter Name: intersect-page-in-priority Parameter Description: Priority for paging in data for non...
Definition: terrainInterfaceConfig.h:375
void print(double **a, int r, int c, const char *str)
TInt pathFinderPageTableDepth
Parameter Name: pathfinder-page-table-depth Parameter Description: The depth of the Quad-Tree used fo...
Definition: terrainInterfaceConfig.h:290
DtRwTemplatedListPtr< T, true > ListBase
Definition: terrainInterfaceConfig.h:102
Description: DtIteratorBase is the base class for iterators used to iterate over a DtList...
Definition: iteratorBase.h:32
TInt featuresHighestLoadLOD
Parameter Name: features-highest-load-LOD Parameter Description: The smallest tile (highest LOD) for ...
Definition: terrainInterfaceConfig.h:226
TBool cacheLastFeatureTile
Parameter Name: cache-last-feature-tile Parameter Description: Cache last used feature tile Parameter...
Definition: terrainInterfaceConfig.h:265
TVector spatialSubdivisionDimensions
Parameter Name: spatial-subdivision-dimensions Parameter Description: Parameters for Spatial Subdivis...
Definition: terrainInterfaceConfig.h:393
virtual DtListItem * add(DtReaderWriter *item) override
Define this function to hide the DtRwList version, and accept only the specific DtReaderWriter subcla...
Definition: rwTemplatedList.h:90
void removeAndDeleteAll() override
Removes and deletes all entries in the list.
Definition: terrainInterfaceConfig.h:36
virtual T * first(bool move=true)
Definition: iteratorBase.h:331
TReal pathFinderVertexTolerance
Parameter Name: pathfinder-vertex-tolerance Parameter Description: The distance tolerance (in meters)...
Definition: terrainInterfaceConfig.h:305
TInt blockingIntersectPageInPriority
Parameter Name: blocking-intersect-page-in-priority Parameter Description: Priority for paging in dat...
Definition: terrainInterfaceConfig.h:369
virtual bool configure(DtReaderWriter &rw, bool ignoreUnspecified) const
Definition: terrainInterfaceConfig.h:110
TInt minElevationIndexLOD
Parameter Name: min-elevation-index-lod Parameter Description: Minimum LOD to check for elevation int...
Definition: terrainInterfaceConfig.h:436
Definition: terrainInterfaceConfig.h:99
virtual T * next(bool move=true)
Definition: iteratorBase.h:332
TInt triangleThreshold
Parameter Name: num-triangles-threshold Parameter Description: Maximum number of triangles. Once the number of triangles exceeds this number, data will be paged out until we are below this threshold. Parameter Default Value: 10000000.
Definition: terrainInterfaceConfig.h:351
TBool activePagerTbbMode
Parameter Name: active-pager-tbb-mode Parameter Description: Configure the active pager multi - threa...
Definition: terrainInterfaceConfig.h:508
TReal seaFloor
Parameter Name: sea-floor Sea floor in meters. Default:
Definition: terrainInterfaceConfig.h:413
TInt featuresPerTileTarget
Parameter Name: features-per-tile-target Parameter Description: Target number of features per tile...
Definition: terrainInterfaceConfig.h:237
TReal pathFinderDotProductDistanceThreshold
Parameter Name: pathfinder-dot-product-distance-threshold Parameter Description: Heuristic which meas...
Definition: terrainInterfaceConfig.h:318
virtual bool configure(DtReaderWriter &rw, bool ignoreUnspecified) const
Definition: terrainInterfaceConfig.h:75
TInt featureIntersectionMode
Parameter Name: feature-intersection-mode Parameter Description: Configure Feature intersection mode ...
Definition: terrainInterfaceConfig.h:498
TReal maxChordLengthBeforeSplit
Parameter Name: max-chord-length-before-split Parameter Description: Maximum length of chords before ...
Definition: terrainInterfaceConfig.h:469
TInt maxElevationChordSplitTestLOD
Parameter Name: max-elevation-chord-split-test-lod Parameter Description: When doing intersections ov...
Definition: terrainInterfaceConfig.h:481
TReal featuresMinUnloadTime
Parameter Name: features-min-unload-time Default: 15.
Definition: terrainInterfaceConfig.h:425
TString pluginsDirectory
Parameter Name: plugins-directory Default: ../(plugins|plugins64)/(release|debug) ...
Definition: terrainInterfaceConfig.h:490
TReal pathFinderLoadTimeout
Parameter Name: pathfinder-load-timeout Parameter Description: The amount of time (in seconds) that t...
Definition: terrainInterfaceConfig.h:297
TerrainParam(const std::string &name, T def, DtReaderWriterRegistry *parent)
Definition: terrainInterfaceConfig.h:63
TReal pathFinderMinSearchRadius
Parameter Name: pathfinder-min-search-radius Parameter Description: Minumum distance path finder will...
Definition: terrainInterfaceConfig.h:324
TBool useS57ForTerrainGeneration
Parameter Name: use-S57-for-terrain-generation Parameter Description: Flag for S57 to terrain and soi...
Definition: terrainInterfaceConfig.h:398
Definition: rwTemplatedList.h:34
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
TerrainParam< DtRwReal > TReal
Definition: terrainInterfaceConfig.h:135
TInt maxNetworkThreads
Parameter Name: max-feature-network-threads Parameter Description: The max number of background threa...
Definition: terrainInterfaceConfig.h:207
TerrainParam< DtRwBoolean > TBool
Definition: terrainInterfaceConfig.h:133
TInt minElevationTileLoadingLod
Parameter Name: minElevationTileLoadingLod Parameter Description: Minimum LOD to load elevation tiles...
Definition: terrainInterfaceConfig.h:522
TString myFeatureConfigFile
Parameter Name: features-config-file Default: /settings/featureconfig.txt.
Definition: terrainInterfaceConfig.h:553
TerrainParam< DtRwInt > TInt
Definition: terrainInterfaceConfig.h:134
TBool useSoundingPoints
Parameter Name: use-sounding-points Default: True.
Definition: terrainInterfaceConfig.h:417
TBool loadImagery
Parameter Name: load-imagery Parameter Description: Whether the terrain system will load imagery it d...
Definition: terrainInterfaceConfig.h:363
TString myModelDefinitionPath
Parameter Name: model-definition-path. Will append /ModelDefinitions so keep this at the root Default...
Definition: terrainInterfaceConfig.h:545
TInt pageOutPriority
Parameter Name: page-out-priority Parameter Description: Priority for paging out data. Parameter Default Value: 30.
Definition: terrainInterfaceConfig.h:380
File: rwVector.h.
TInt areaPageTableLoadingThreads
Parameter Name: area-page-table-threads Parameter Description: Max number of simultaneous threads tha...
Definition: terrainInterfaceConfig.h:220
TInt maxUnusedFeatures
Parameter Name: max-unused-features Parameter Description: Max number of unused features to store in ...
Definition: terrainInterfaceConfig.h:214
TInt lowFidelityIntersectionLOD
Parameter Name: low-fidelity-intersection-lod Parameter Description: LOD to use when doing low fideli...
Definition: terrainInterfaceConfig.h:486

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)