VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
dfadData.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2002 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: dfad_data.h,v $ $Revision: 1.19 $ $State: Exp $
7 *******************************************************************************/
8 #ifndef dfadData_H_
9 #define dfadData_H_
10 
11 #include "dted/dtedDefines.h"
12 #include "dted/dfadInitializer.h"
13 #include "geometry/point.h"
14 #include "geometry/color.h"
15 #include "dted/dfadHeader.h"
16 #include "dted/dfadInfo.h"
18 #include "gdb/specification.h"
20 
21 #include <vlutil/vlFilename.h>
22 #include <vlutil/vlList.h>
23 #include <vlutil/vlConfig.h>
24 #include <list>
25 
26 #include "gdb/terrainDatabase.h"
27 
28 class DtVectorNetwork;
30 
31 // maximum number of attributes to differentiate a type of feature. See file
32 // mapping DFAD to SEDRIS.
33 const DtU8 SEDRIS_CODE_LIMIT = 10;
34 
35 // maximum limit of soil types for a DFAD feature
36 const DtU8 SMC_CODE_LIMIT = 8;
37 
38 // Defines the different type of features coming from a DFAD/DFD file
39 enum
40 {
45 };
46 
47 // data structure to store the SMC codes in the original format
48 class SMC
49 {
50 public:
51  SMC() {}
52 
53  DtU8 smcCode;
55 };
56 
57 
58 // data structure to store the information about the different FID codes.
60 {
61 public:
62  FID() {}
63 
64  DtU8 fidCode;
66  DtU8 soils[SMC_CODE_LIMIT]; // Type of soils available for this FID code
67  DtU8 entries; // How many SEDIRS attributes describe this FID type
68  DtString sedrisCodes[SEDRIS_CODE_LIMIT]; // SEDIRS codes and names
70  DtColor color; // Original color representation for the mapping process
71 };
72 
73 
74 class DtDfadFeature;
75 
76 
78 {
79 public:
80  typedef std::list<DtDfadFeature*> DtDfadFeatureContainer;
81  typedef DtDfadFeatureContainer::iterator DtDfadFeatureIter;
82  typedef DtDfadFeatureContainer::const_iterator DtDfadFeatureConstIter;
83 
84  // Constructor, receives the files to be used for mapping process. By default the different filenames.
85  // The object is not valid until you call init.
86  DtDfadData( DtFilename filename = "", // File to be imported
87  DtFilename dfadSedrisMapFile =
88  DtFilename::combine(DtVectorDataInitializer::defaultDfadConfigDirectory(), DtFilename("dfad_sedris_map.txt")), // Mapping DFAD - SEDRIS
89  DtFilename sedrisColorMapFile =
90  DtFilename::combine(DtVectorDataInitializer::defaultDfadConfigDirectory(), DtFilename("sedris_colormap.txt")), // Color map for each SEDRIS subcategory
91  DtFilename fidSmcFile =
92  DtFilename::combine(DtVectorDataInitializer::defaultDfadConfigDirectory(), DtFilename("FID-SMC.txt")), //
93  const DtMapDatum& mapdatum = DtCurrentMapDatum(), // Datum to use for projections
94  double projectionScale = 0.9996); // Projection scale
95 
96 
97  virtual ~DtDfadData();
98 
99  // This function initializes all the data structures and reads the mapping files.
100  virtual bool init();
101 
102  // Set the name of the file to be imported. You can import different DFAD/DFD files
103  // into a same GDB, but you must be sure to avoid conflicts with the data.
104  virtual void setDataFile(const DtFilename& filename);
105 
106  // Import the data into the specified vector network.
107  // The function receives a vectorNetwork
108  // an array of bools from 0 - 3000.
109  // i-pos is true if we want to import features with FID = i
110  // Returns true if the import was successful and false if it failed for any reason.
111  virtual bool import(const DtTerrainDatabase& terrainDatabase,
112  DtVectorNetwork& vectorNetwork,
113  const bool* const importTypes);
114 
115  // Report functions to create a file with info about all features in the data and about data
116  // selected to be imported.
117  virtual void report(DtFilename fileanme);
118  virtual void reportImport(DtFilename filename, const bool* const importTypes);
119 
120 
121  // Info about the data coming from DFAD/DFD. How many features, what type
122  // and the container of features.
123  inline unsigned int size() { return myDfadFeatures.size(); }
124 
125  inline DtDfadFeatureContainer& featureContainer() { return myDfadFeatures; }
126  inline const DtDfadFeatureContainer& featureContainer() const { return myDfadFeatures; }
127 
128  inline DtPoint& origin() { return myOrigin; }
129 
130 
131  inline int& areas() { return myAreas; }
132  inline int& lines() { return myLines; }
133  inline int& points() { return myAreas; }
134 
135  // Function to calculate the extent for area features,
136  virtual void caculateExtent(const DtPoint& point, DtPoint& minPoint, DtPoint& maxPoint);
137 
138  // Adding each different type of feature
139  virtual bool addArealFeature(DtDfadFeature* pfeature, DtSpecification& spec);
140  virtual bool addLinearFeature(DtDfadFeature* pfeature, DtSpecification& spec);
141  virtual bool addPointFeature(DtDfadFeature* pfeature, DtSpecification& spec);
142 
143  // Adding a vector into the vectorNetwork. Could be open or closed.
144  // Returns true if it successfully added the new vector into the network.
145  virtual bool addNetwork(DtDfadFeature* pfeature,
146  DtSpecificationID specIndex,
147  bool isCloseNetwork);
148 
149  virtual DtPoint geoToUtm(const DtPoint& geo) const;
150 
151  DtFilename myFilename;
152  DtFilename myFidSmcFile;
155 
158 
160 
163 
164  int myAreas;
165  int myLines;
166  int myPoints;
167 
168  std::vector<int> myTypesCount;
169 
172 
174 
175  std::vector<SMC> mySmcs;
176  std::vector<FID> myFids;
177 
178  DtMapDatum myMapDatum;
180 };
181 
182 #endif
unsigned int DtSpecificationID
Definition: specificationManager.h:22
const DtU8 SMC_CODE_LIMIT
Definition: dfadData.h:36
DtU8 fidCode
Definition: dfadData.h:64
DtFilename mySedrisColorMapFile
Definition: dfadData.h:153
const DtTerrainDatabase * myTerrainDatabase
Definition: dfadData.h:156
std::list< DtDfadFeature * > DtDfadFeatureContainer
Definition: dfadData.h:80
DtString name
Definition: dfadData.h:65
static const DtFilename & defaultDfadConfigDirectory()
Definition: dfadData.h:43
double myProjectionScale
Definition: dfadData.h:179
std::vector< int > myTypesCount
Definition: dfadData.h:168
Definition: color.h:25
int myLines
Definition: dfadData.h:165
DtDfadFeatureContainer::const_iterator DtDfadFeatureConstIter
Definition: dfadData.h:82
int & points()
Definition: dfadData.h:133
DtU8 smcCode
Definition: dfadData.h:53
FID()
Definition: dfadData.h:62
DtFilename myFilename
Definition: dfadData.h:151
SMC()
Definition: dfadData.h:51
DtMapDatum myMapDatum
Definition: dfadData.h:178
int & areas()
Definition: dfadData.h:131
int mySmcCount
Definition: dfadData.h:170
int myPoints
Definition: dfadData.h:166
DtDfadHeader myHeader
Definition: dfadData.h:161
const DtU8 SEDRIS_CODE_LIMIT
Definition: dfadData.h:33
#define DT_DLL_dted
Definition: dtedDefines.h:23
Definition: dfadData.h:48
Definition: specificationManager.h:31
const DtDfadFeatureContainer & featureContainer() const
Definition: dfadData.h:126
Definition: dfadInfo.h:35
std::vector< FID > myFids
Definition: dfadData.h:176
DtDfadInfo myInfo
Definition: dfadData.h:162
Definition: specification.h:27
Definition: dfadFeature.h:23
Definition: dfadHeader.h:17
Definition: dfadData.h:41
std::vector< SMC > mySmcs
Definition: dfadData.h:175
DtDfadFeatureContainer & featureContainer()
Definition: dfadData.h:125
Definition: dfadData.h:44
DtDfadFeatureContainer myDfadFeatures
Definition: dfadData.h:159
DtColor color
Definition: dfadData.h:70
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
unsigned int size()
Definition: dfadData.h:123
DtU8 entries
Definition: dfadData.h:67
int & lines()
Definition: dfadData.h:132
int myFidCount
Definition: dfadData.h:171
DtDfadFeatureContainer::iterator DtDfadFeatureIter
Definition: dfadData.h:81
DtVectorNetwork * myVectorNetwork
Definition: dfadData.h:157
Definition: terrainDatabase.h:148
DtFilename myFidSmcFile
Definition: dfadData.h:152
DtPoint myOrigin
Definition: dfadData.h:173
DtFilename myDfadSedrisMapFile
Definition: dfadData.h:154
Definition: point.h:34
int myAreas
Definition: dfadData.h:164
DtPoint & origin()
Definition: dfadData.h:128
DtString name
Definition: dfadData.h:54
Definition: dfadData.h:59
Definition: vectorNetwork.h:37
Definition: dfadData.h:77
Definition: dfadData.h:42

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)