VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCDBDatasets.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 #pragma once
10 
11 #include "DtCDBExport.h"
12 #include <osgDB/XmlParser>
13 #include <string>
14 #include <map>
15 
17 
18 namespace makVrv { namespace oe { namespace CDB
19 {
21  // (ex: <Subcode code="000"> ...)
22  class SubCode
23  {
24  public:
25  SubCode(const std::string& label) :myLabel(label){};
26  ~SubCode(){};
27  std::string myLabel;
28  };
29 
31  // (ex: <Feature_Type code="010"> ...)
33  {
34  public:
36  FeatureType(const std::string& label) :myLabel(label){};
38  std::string myLabel;
39  std::map<std::string, SubCode > mySubCodes;
40  };
41 
43  // (ex: <Subcategory code="A"> ...)
45  {
46  public:
49  std::string myLabel;
50  std::map<std::string, FeatureType > myFeatureTypes;
51  };
52 
54  // (ex: <Category code="A"> ...)
55  class Category
56  {
57  public:
58  Category() {};
59  ~Category() {};
60  std::string myLabel;
61  std::map<std::string, SubCategory > mySubCategories;
62  };
63 
64 
66  class Facc
67  {
68  public:
69  Facc() {};
70  ~Facc() {};
71  std::string myFaccPath;
72  std::map<std::string, std::string > myFscLabel; // <Fsc code, Label>
73  };
74 
79  {
80  public:
81 
85  static CDBDatasets* instance( const std::string& appDataDir );
87  static CDBDatasets* instance( );
89 
91  static const int theDatasetCodeElevation;
95  static const int theDatasetCodeMaxCulture;
97  static const int theDatasetCodeImagery;
99  static const int theDatasetCodeRMTexture;
101  static const int theDatasetCodeRMDescriptor;
103  static const int theDatasetCodeGsFeature;
105  static const int theDatasetCodeGtFeature;
107  static const int theDatasetCodeGeoPolitical;
111  static const int theDatasetCodeRoadNetwork;
137  static const int theDatasetCodeGSModelCMT;
141  static const int theDatasetCodeNavData;
143  static const int theDatasetCodeNavigation;
155  static const int theDatasetCodeGTModelCMT;
175  static const int theDatasetCodeMModelTexture;
181  static const int theDatasetCodeMModelCMT;
185  static const int theDatasetCodeExtImagery;
186 
188  static const std::string theFileExtensionTif;
190  static const std::string theFileExtensionJp2;
192  static const std::string theFileExtensionShp;
194  static const std::string theFileExtensionDbf;
196  static const std::string theFileExtensionXml;
198  static const std::string theFileExtensionFlt;
200  static const std::string theFileExtensionRgb;
202  static const std::string theFileExtensionZip;
203 
205  static const std::string theGTGeometryFolder;
206 
209 
211  std::string gtModelGeometrySubFolder( const std::string& FACC ) const;
212 
214  std::string gtModelGeometryFilename( const std::string& FACC, const std::string& FSC, const std::string& modelName ) const;
215 
217  std::string datasetFolder( int DatasetCode ) const;
218 
220  std::string datasetFileExtension( int DatasetCode ) const;
221 
222  protected:
224  CDBDatasets( const std::string& appDataDir );
225 
227  CDBDatasets( CDBDatasets const& );
228 
230  CDBDatasets& operator=( CDBDatasets const& ) = delete;
231 
233  void loadFeatureDataDictionary();
234 
236  void loadDatasetDictionary();
237 
239  void addDatasetFileExtension();
240 
243 
246 
248  const std::string myAppDataDir;
249 
251  static const std::string theFeature_Data_DictionaryFilename;
252 
254  static const std::string theDatasets_DictionaryFilename;
255 
257  //std::map<std::string, Category > myCategories;
258 
260  std::map<std::string, Facc > myFaccDict;
261 
263  std::map<int, std::string> myDatasetFolder;
264 
266  std::map<int, std::string> myDatasetFileExtension;
267 
268  };
269 
270 } } } // namespace mak::osgEarth::CDB
271 
static const int theDatasetCodeMModelMaterial
CDB MModelMaterial Dataset code (604)
Definition: DtCDBDatasets.h:179
static const int theDatasetCodeMModelSignature
CDB MModelSignature Dataset code (606)
Definition: DtCDBDatasets.h:183
static const std::string theFeature_Data_DictionaryFilename
Filename and relative path of the Feature_Data_Dictionary.xml.
Definition: DtCDBDatasets.h:251
std::string myLabel
Definition: DtCDBDatasets.h:48
static const int theDatasetCodeGTModelGeometry2
CDB GTModelGeometry Dataset code (510)
Definition: DtCDBDatasets.h:165
FACC Code sub category portion from Feature_Data_Dictionary.xml.
Definition: DtCDBDatasets.h:44
static const std::string theFileExtensionDbf
File extension for shapefile dbf.
Definition: DtCDBDatasets.h:194
std::map< std::string, FeatureType > myFeatureTypes
Definition: DtCDBDatasets.h:50
static const int theDatasetCodeRMDescriptor
CDB Raster Material Descriptor Dataset code (6)
Definition: DtCDBDatasets.h:101
static const std::string theFileExtensionShp
File extension for shapefile.
Definition: DtCDBDatasets.h:192
static const int theDatasetCodeGTModelTexture
CDB GTModelTexture Dataset code (501)
Definition: DtCDBDatasets.h:147
#define DT_DLL_OSGEARTH_CDB_UTILS
Definition: DtCDBExport.h:18
static const int theDatasetCodeRailRoadNetwork
CDB Rail Road Network Dataset code (202)
Definition: DtCDBDatasets.h:113
std::map< std::string, std::string > myFscLabel
Definition: DtCDBDatasets.h:72
std::map< std::string, SubCode > mySubCodes
Definition: DtCDBDatasets.h:39
static const int theDatasetCodeImagery
CDB Imagery Dataset code (4)
Definition: DtCDBDatasets.h:97
static const int theDatasetCodeGSModelInteriorDescriptor
CDB GSModelInteriorDescriptor Dataset code (307)
Definition: DtCDBDatasets.h:133
static const int theDatasetCodeGSModelSignature
CDB GSModelSignature Dataset code (302)
Definition: DtCDBDatasets.h:123
static const int theDatasetCodeGTModelCMT
CDB GTModelCMT Dataset code (505)
Definition: DtCDBDatasets.h:155
static const int theDatasetCodeGsFeature
CDB GS Feature Dataset code (100)
Definition: DtCDBDatasets.h:103
static const int theDatasetCodeGSModelMaterial
CDB GSModelMaterial Dataset code (304)
Definition: DtCDBDatasets.h:127
static const int theDatasetCodeMinMaxElevation
CDB Min Max Elevation Dataset code (2)
Definition: DtCDBDatasets.h:93
FACC Code Feature portion from Feature_Data_Dictionary.xml.
Definition: DtCDBDatasets.h:32
static const std::string theGTGeometryFolder
GT Geometry top folder.
Definition: DtCDBDatasets.h:205
static const int theDatasetCodeT2DModelGeometry
CDB T2DModelGeometry Dataset code (310)
Definition: DtCDBDatasets.h:139
static const int theDatasetCodeHydrographyNetwork
CDB Hydrography Network Dataset code (204)
Definition: DtCDBDatasets.h:117
static const int theDatasetCodePowerLineNetwork
CDB Power Line Network Dataset code (203)
Definition: DtCDBDatasets.h:115
Category()
Definition: DtCDBDatasets.h:58
static const int theDatasetCodeGSModelInteriorMaterial
CDB GSModelInteriorMaterial Dataset code (308)
Definition: DtCDBDatasets.h:135
static const int theDatasetCodeNavData
CDB NavData Dataset code (400)
Definition: DtCDBDatasets.h:141
static const int theDatasetCodeGTModelInteriorMaterial
CDB GTModelInteriorMaterial Dataset code (509)
Definition: DtCDBDatasets.h:163
static const int theDatasetCodeGTModelInteriorGeometry
CDB GTModelInteriorGeometry Dataset code (506)
Definition: DtCDBDatasets.h:157
static const std::string theFileExtensionRgb
File extension for rgb.
Definition: DtCDBDatasets.h:200
SubCode(const std::string &label)
Definition: DtCDBDatasets.h:25
~Facc()
Definition: DtCDBDatasets.h:70
static const int theDatasetCodeGSModelCMT
CDB GSModelCMT Dataset code (309)
Definition: DtCDBDatasets.h:137
FACC Code information from Feature_Data_Dictionary.xml.
Definition: DtCDBDatasets.h:66
static const int theDatasetCodeGSModelInteriorGeometry
CDB GSModelInteriorGeometry Dataset code (305)
Definition: DtCDBDatasets.h:129
static const std::string theFileExtensionXml
File extension for xml.
Definition: DtCDBDatasets.h:196
static const int theDatasetCodeGTModelDescriptor
CDB GTModelDescriptor Dataset code (503)
Definition: DtCDBDatasets.h:151
static const int theDatasetCodeVectorMaterial
CDB Vector Material Dataset code (200)
Definition: DtCDBDatasets.h:109
static const int theDatasetCodeGSModelDescriptor
CDB GSModelDescriptor Dataset code (303)
Definition: DtCDBDatasets.h:125
static CDBDatasets * myInstance
Only instance of the CDBDataset object.
Definition: DtCDBDatasets.h:242
FeatureType(const std::string &label)
Definition: DtCDBDatasets.h:36
std::string myFaccPath
Definition: DtCDBDatasets.h:70
std::string myLabel
Definition: DtCDBDatasets.h:26
static const int theDatasetCodeGtFeature
CDB GT Feature Dataset code (101)
Definition: DtCDBDatasets.h:105
static const std::string theDatasets_DictionaryFilename
Filename and relative path of the Datasets.xml.
Definition: DtCDBDatasets.h:254
static const int theDatasetCodeGTModelSignature
CDB GTModelSignature Dataset code (502)
Definition: DtCDBDatasets.h:149
static const int theDatasetCodeMModelGeometry
CDB MModelGeometry Dataset code (600)
Definition: DtCDBDatasets.h:173
std::map< int, std::string > myDatasetFolder
Dataset folder (dataset code, folder)
Definition: DtCDBDatasets.h:263
static const int theDatasetCodeNavigation
CDB Navigation Dataset code (401)
Definition: DtCDBDatasets.h:143
std::map< std::string, Facc > myFaccDict
Feature Data Dictionary information (FACC CODE)
Definition: DtCDBDatasets.h:260
static const int theComponentSelector1_Bathymetry
Bathymetry component selector 1.
Definition: DtCDBDatasets.h:208
std::map< int, std::string > myDatasetFileExtension
Dataset File extension (dataset code, extension)
Definition: DtCDBDatasets.h:266
static Threading::Mutex myMutex
Mutex object to allow thread safety.
Definition: DtCDBDatasets.h:245
std::map< std::string, SubCategory > mySubCategories
Definition: DtCDBDatasets.h:61
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
static const int theDatasetCodeGTModelGeometry
CDB GTModelGeometry Dataset code (500)
Definition: DtCDBDatasets.h:145
std::string myLabel
Definition: DtCDBDatasets.h:59
~Category()
Definition: DtCDBDatasets.h:59
~FeatureType()
Definition: DtCDBDatasets.h:37
static const std::string theFileExtensionFlt
File extension for flt.
Definition: DtCDBDatasets.h:198
std::string myLabel
Definition: DtCDBDatasets.h:37
static const int theDatasetCodeMModelCMT
CDB MModelCMT Dataset code (605)
Definition: DtCDBDatasets.h:181
static const int theDatasetCodeExtImagery
CDB Extended Imagery Dataset code (900)
Definition: DtCDBDatasets.h:185
static const int theDatasetCodeGeoPolitical
CDB GeoPolitical Feature Dataset code (102)
Definition: DtCDBDatasets.h:107
static const int theDatasetCodeGTModelSignature2
CDB GTModelSignature Dataset code (512)
Definition: DtCDBDatasets.h:169
static const int theDatasetCodeGSModelInteriorTexture
CDB GSModelInteriorTexture Dataset code (306)
Definition: DtCDBDatasets.h:131
static const int theDatasetCodeRMTexture
CDB Raster Material Texture Dataset code (5)
Definition: DtCDBDatasets.h:99
static const int theDatasetCodeMModelDescriptor
CDB MModelDescriptor Dataset code (603)
Definition: DtCDBDatasets.h:177
static const std::string theFileExtensionTif
File extension for tif.
Definition: DtCDBDatasets.h:188
static const int theDatasetCodeGSModelTexture
CDB GSModelTexture Dataset code (301)
Definition: DtCDBDatasets.h:121
static const int theDatasetCodeGTModelInteriorDescriptor
CDB GTModelInteriorDescriptor Dataset code (508)
Definition: DtCDBDatasets.h:161
static const std::string theFileExtensionJp2
File extension for jpeg 2000.
Definition: DtCDBDatasets.h:190
Facc()
Definition: DtCDBDatasets.h:69
static const int theDatasetCodeGTModelMaterial
CDB GTModelMaterial Dataset code (504)
Definition: DtCDBDatasets.h:153
static const int theDatasetCodeMaxCulture
CDB Max Culture Dataset code (3)
Definition: DtCDBDatasets.h:95
const std::string myAppDataDir
App data directory set via constructore.
Definition: DtCDBDatasets.h:248
static const int theDatasetCodeGSModelGeometry
CDB GSModelGeometry Dataset code (300)
Definition: DtCDBDatasets.h:119
~SubCode()
Definition: DtCDBDatasets.h:26
FACC Sub Code (FSC) from Feature_Data_Dictionary.xml.
Definition: DtCDBDatasets.h:22
FeatureType()
Definition: DtCDBDatasets.h:35
FACC Code category portion from Feature_Data_Dictionary.xml.
Definition: DtCDBDatasets.h:55
~SubCategory()
Definition: DtCDBDatasets.h:48
static const int theDatasetCodeMModelTexture
CDB MModelTexture Dataset code (601)
Definition: DtCDBDatasets.h:175
static const int theDatasetCodeGTModelTexture2
CDB GTModelTexture Dataset code (511)
Definition: DtCDBDatasets.h:167
CDB Dataset class. Hold Dataset information Helper class to retreive CBD Dataset information.
Definition: DtCDBDatasets.h:78
static const int theDatasetCodeElevation
CDB Elevation Dataset code (1)
Definition: DtCDBDatasets.h:91
static const int theDatasetCodeGTModelInteriorCMT
CDB GTModelInteriorCMT Dataset code (513)
Definition: DtCDBDatasets.h:171
static const int theDatasetCodeGTModelInteriorTexture
CDB GTModelInteriorTexture Dataset code (507)
Definition: DtCDBDatasets.h:159
static const std::string theFileExtensionZip
File extension for zip.
Definition: DtCDBDatasets.h:202
SubCategory()
Definition: DtCDBDatasets.h:47
static const int theDatasetCodeRoadNetwork
CDB Road Network Dataset code (201)
Definition: DtCDBDatasets.h:111

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)