VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
surfaceCharacteristicsMap.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 
17 #include <vlutil/vlFilename.h>
18 #include <vlutil/vlString.h>
19 #include <vlutil/vlSmartPointers.h>
20 
22 #include <geometry/surface.h>
23 
25 #include <tbb/spin_rw_mutex.h>
26 
28 #include <set>
29 #include <sstream>
30 #include <string>
31 #include <map>
32 
33 
34 
35 namespace makVrf {
37 
38  typedef std::shared_ptr<const DtSurfaceCharacteristicMap> DtSurfaceCharacteristicMapConstPtr;
39  typedef std::shared_ptr<DtSurfaceCharacteristicMap> DtSurfaceCharacteristicMapPtr;
40 
44 
46 
48 
49 
50 
52  {
53  public:
54 
55  class Entry
56  {
57  public:
58  //virtual ~Entry();
59 
60  virtual bool matches(const DtString& str) const = 0;
62  virtual int position() const = 0;
63  };
64 
67 
70 
72  virtual bool init(const DtFilename filename, bool displayWarning = false);
73 
75  virtual bool append(const DtFilename filename, bool displayWarning = false);
76 
79  virtual bool characteristicsFromString(const char* str,
80  unsigned int& characteristics, int& position, int& matchClass) const;
81  virtual bool characteristicsFromString(const std::string& str,
82  unsigned int& characteristics, int& position, int& matchClass) const;
83  virtual bool characteristicsFromString(const std::string& str,
84  unsigned int& characteristics) const;
85 
86  virtual void printResults(const char* str, unsigned int characteristics, const char* additionalInformation = 0) const;
87 
90  static DtSurfaceCharacteristicMapConstPtr createSurfCharMap(const DtFilename& surfCharFile);
91 
92  protected:
94  virtual bool get(std::istream& stream);
95 
97  virtual bool processToken(std::istream& stream, const DtString& token);
98 
99  typedef std::map<DtString, std::shared_ptr<Entry> > EntryList;
101 
103 
104  static const DtString theMatchString;
106 
108  {
109  structCharacteristicsFromString(const DtFilename& exactMatch, const DtString& duplicateString):
110  myExactMatch(exactMatch),
111  myDuplicateString(duplicateString)
112  {
113  }
114  DtFilename myExactMatch;
116  };
117 
118  typedef std::map <std::string, structCharacteristicsFromString> CharacteristicsFromStringMap;
122 
124  mutable tbb::spin_rw_mutex myCharacteristicsFromStringCacheMutex;
125 
126 
127  private:
128 
134  mutable std::set<std::string> myPrintedMessages;
135  mutable tbb::spin_rw_mutex myPrintedMessagesMutex;
136  };
137 
138 
139 
140 }
std::shared_ptr< const DtSurfaceCharacteristicMap > DtSurfaceCharacteristicMapConstPtr
Definition: surfaceCharacteristicsMap.h:36
virtual bool append(const DtFilename filename, bool displayWarning=false)
Append entries from [terrain].landCoverDataSurfChar.map.
virtual bool init(const DtFilename filename, bool displayWarning=false)
Initialize the metafile. Calls createSurface().
structCharacteristicsFromString(const DtFilename &exactMatch, const DtString &duplicateString)
Definition: surfaceCharacteristicsMap.h:109
int myCurrentPosition
Definition: surfaceCharacteristicsMap.h:102
static const DtString theMatchString
Definition: surfaceCharacteristicsMap.h:104
std::set< std::string > myPrintedMessages
This is here to prevent error/status messages from streaming out endlessly. Should probably be change...
Definition: surfaceCharacteristicsMap.h:134
std::map< DtString, std::shared_ptr< Entry > > EntryList
Definition: surfaceCharacteristicsMap.h:99
DtString myDuplicateString
Definition: surfaceCharacteristicsMap.h:115
const DT_DLL_vantageTerrainImplementation DtSurface & DtUndefinedSoilType()
return A DtSurface that is the undefined soil type. This should move to surface.h ...
Definition: surface.h:181
Definition: surfaceCharacteristicsMap.h:51
const DT_DLL_vantageTerrainImplementation DtSurface & DtTreeSoilType()
virtual bool matches(const DtString &str) const =0
virtual bool characteristicsFromString(const char *str, unsigned int &characteristics, int &position, int &matchClass) const
Set characteristics based on a string (version are doing the same thing but with the accurate paramet...
DtSurfaceCharacteristicMap()
default constructor.
std::map< std::string, structCharacteristicsFromString > CharacteristicsFromStringMap
Definition: surfaceCharacteristicsMap.h:118
static DtSurfaceCharacteristicMapConstPtr createSurfCharMap(const DtFilename &surfCharFile)
Creates a new DtSurfaceCharacteristicMap instance and initializes it with the specified file...
tbb::spin_rw_mutex myPrintedMessagesMutex
Definition: surfaceCharacteristicsMap.h:135
virtual void printResults(const char *str, unsigned int characteristics, const char *additionalInformation=0) const
tbb::spin_rw_mutex myCharacteristicsFromStringCacheMutex
Mutex to control access to myCharacteristicsFromStringCache.
Definition: surfaceCharacteristicsMap.h:124
virtual int position() const =0
voidpf stream
Definition: ioapi.h:39
unsigned int DtCharacteristics
Definition: surface.h:198
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
std::shared_ptr< DtSurfaceCharacteristicMap > DtSurfaceCharacteristicMapPtr
Definition: surfaceCharacteristicsMap.h:39
EntryList myEntries
Definition: surfaceCharacteristicsMap.h:100
CharacteristicsFromStringMap myCharacteristicsFromStringCache
Keep a cache of the string already process in characteristicsFromString() to speed up the search...
Definition: surfaceCharacteristicsMap.h:121
virtual bool processToken(std::istream &stream, const DtString &token)
identifies a token or passes token the parent class.
virtual DtSurface::DtCharacteristics characteristics() const =0
virtual ~DtSurfaceCharacteristicMap()
destructor
Definition: surfaceCharacteristicsMap.h:55
const DT_DLL_vantageTerrainImplementation DtSurface & DtJimDefinedSoilType()
static const DtString theRegExprMatchString
Definition: surfaceCharacteristicsMap.h:105
DtFilename myExactMatch
Definition: surfaceCharacteristicsMap.h:114

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)