VR-Forces 4.10 Class Documentation
 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) 2020 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 
332 
337 
344 
350 
356 
361 
367 
374 
379 
384 
389 
394 
398 
402 
406 
410 
414 
421 
428 
436 
444 
454 
466 
471 
475 
483 
493 
499 
500  static void setModelDefinitionDefault(const std::string&);
501 
502  std::string modelDefinitionPath() const;
503 
504  std::string simCachePath() const;
505 
506  std::string featureConfigFile() const;
507 
508 protected:
513 
517 
521 };
522 
523 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
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.
Definition: terrainInterfaceConfig.h:260
TInt defaultPreloadPriority
Parameter Name: default-preload-priority Parameter Description: Default priority for preload geometry...
Definition: terrainInterfaceConfig.h:366
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:383
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:388
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:336
TReal elevationIntersectTriangleMergeTolerance
Parameter Name: elevation-intersect-triangle-merge-tolerance Parameter Description: Error tolerance b...
Definition: terrainInterfaceConfig.h:443
ListT(const std::string &name, DtReaderWriterRegistry *parentRegistry)
Definition: terrainInterfaceConfig.h:105
TString LOSFeaturesQueryName
Parameter Name: los-features-query Default: MAK_LOS_OBSTACLE.
Definition: terrainInterfaceConfig.h:405
TBool pageFeatures
Parameter Name: page-features Default: True.
Definition: terrainInterfaceConfig.h:401
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.
Definition: terrainInterfaceConfig.h:284
TString mySimCachePath
Parameter Name: sim-cache-path Default: /cache/vrfsim.
Definition: terrainInterfaceConfig.h:516
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:435
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:413
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:498
TInt pathFinderMinVertexSearch
Parameter Name: pathfinder-min-vertex-search Parameter Description: The minimum number of vertices th...
Definition: terrainInterfaceConfig.h:311
virtual DtListItem * add(T *data)
Define this function to hide the DtRwList version, and accept only the specific DtReaderWriter subcla...
Definition: rwTemplatedList.h:60
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:427
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:355
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:373
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:349
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:420
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.
Definition: terrainInterfaceConfig.h:331
TBool activePagerTbbMode
Parameter Name: active-pager-tbb-mode Parameter Description: Configure the active pager multi - threa...
Definition: terrainInterfaceConfig.h:492
TReal seaFloor
Parameter Name: sea-floor Sea floor in meters.
Definition: terrainInterfaceConfig.h:393
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:482
TReal maxChordLengthBeforeSplit
Parameter Name: max-chord-length-before-split Parameter Description: Maximum length of chords before ...
Definition: terrainInterfaceConfig.h:453
TInt maxElevationChordSplitTestLOD
Parameter Name: max-elevation-chord-split-test-lod Parameter Description: When doing intersections ov...
Definition: terrainInterfaceConfig.h:465
TReal featuresMinUnloadTime
Parameter Name: features-min-unload-time Default: 15.
Definition: terrainInterfaceConfig.h:409
TString pluginsDirectory
Parameter Name: plugins-directory Default: ../(plugins|plugins64)/(release|debug) ...
Definition: terrainInterfaceConfig.h:474
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:378
A version of DtRwList that contains a homogeneous list of a templated RW type.
Definition: rwTemplatedList.h:26
#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
void removeAndDeleteAll()
Removes and deletes all entries in the list.
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
TString myFeatureConfigFile
Parameter Name: features-config-file Default: /settings/featureconfig.txt.
Definition: terrainInterfaceConfig.h:520
TerrainParam< DtRwInt > TInt
Definition: terrainInterfaceConfig.h:134
TBool useSoundingPoints
Parameter Name: use-sounding-points Default: True.
Definition: terrainInterfaceConfig.h:397
TBool loadImagery
Parameter Name: load-imagery Parameter Description: Whether the terrain system will load imagery it d...
Definition: terrainInterfaceConfig.h:343
TString myModelDefinitionPath
Parameter Name: model-definition-path.
Definition: terrainInterfaceConfig.h:512
TInt pageOutPriority
Parameter Name: page-out-priority Parameter Description: Priority for paging out data.
Definition: terrainInterfaceConfig.h:360
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:470
void print(double **a, int r, int c, char *str)

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)