VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
overlayShapeFileLoadHandler.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2016 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 #pragma once
9 
10 #include <vrvUtil/signalslib.h>
11 #include <vrfGuiCore/vrfGuiCore.h>
13 #include <vrvUtil/DtUnicode.h>
14 #include <vrvCore/DtUniqueID.h>
15 #include <vlpi/entityType.h>
17 
18 class OGRSFDriver;
19 class OGRLayer;
20 class OGRFeature;
21 class OGRPoint;
22 class OGRGeometry;
23 class OGRDataSource;
24 
25 namespace makVrv
26 {
27  class DtDe;
28 }
29 
30 namespace makVrf
31 {
34  {
36  DtEntityType entityType;
37  int force;
38  std::vector<DtVector> localLocations;
39  };
40 
44  {
45  public:
47 
49  virtual std::vector<DtDataFileCreationData> loadDataFile(const std::string& file, const std::string& defaultOverlay = "") const = 0;
50 
51  protected:
53  };
54 
57  {
58  public:
60  DtOGRReader(makVrv::DtDe& de, const std::string& gdalDriver);
61 
62  virtual ~DtOGRReader();
63 
64  virtual std::vector<DtDataFileCreationData> loadDataFile(const std::string& file, const std::string& defaultOverlay = "") const;
65 
66  protected:
68  virtual OGRSFDriver* createOGRDriver(const char* driverName = "ESRI Shapefile") const;
69 
71  virtual bool importLayer(OGRDataSource* dataSource, OGRLayer*, const std::string&, const std::string& shapeFileName,
72  std::vector<DtDataFileCreationData>& importedData) const;
73 
75  virtual DtDataFileCreationData importFeature(OGRDataSource* dataSource, OGRLayer*, OGRFeature*, const std::string&, const std::string& shapeFileName) const;
76 
78  virtual int getForceFromFeature(OGRDataSource* dataSource, OGRLayer*, OGRFeature*, const std::string&) const;
79 
84  virtual DtEntityType getEntityTypeToCreateFromFeature(OGRDataSource* dataSource, OGRLayer* layer, OGRFeature*, const std::string& shapeFileName) const;
85 
87  virtual int geometryType(OGRGeometry*) const;
88 
90  virtual std::vector<DtVector> getFeatureGeometry(OGRFeature*) const;
91 
92  virtual DtVector convertPointToLocal(OGRPoint*) const;
93 
95  virtual std::string nameFromFeature(OGRFeature*, const std::string& shapeFileName) const;
96 
97  struct FeatureStyle
98  {
99  int penColor;
100  int penWidth;
102  };
103 
105  virtual FeatureStyle getStyleForFeature(OGRDataSource* dataSource, OGRLayer*, OGRFeature*) const;
106 
107  static void GDALErrorHandler(int eclass, int code, const char *msg );
108 
109  protected:
110  std::string myGDALDriver;
111  };
112 
115  {
116  public:
118  virtual ~DtOGRReaderCreator();
119 
120  virtual DtOGRReader* create(const std::string& gdalDriver);
121 
122  static DtOGRReaderCreator& instance(makVrv::DtDe& de);
123  static void registerInstance(makVrv::DtDe& de, DtOGRReaderCreator*);
124 
126  virtual int getForceFromFeature(OGRDataSource* dataSource, OGRLayer*, OGRFeature*, const std::string&) const;
127 
128  virtual DtEntityType lineType(OGRDataSource* dataSource, OGRLayer* layer, OGRFeature*, const std::string& shapeFileName) const;
129  virtual DtEntityType pointType(OGRDataSource* dataSource, OGRLayer* layer, OGRFeature*, const std::string& shapeFileName) const;
130  virtual DtEntityType areaType(OGRDataSource* dataSource, OGRLayer* layer, OGRFeature*, const std::string& shapeFileName) const;
131 
132  protected:
134  };
135 
140  {
141  public:
142  typedef std::map<std::string, std::pair<DtDataFileReader*, makVrv::DtUnicode> > Drivers;
143 
146 
149 
150  static DtOverlayShapeFileLoadHandler& instance(makVrv::DtDe& de);
151  static void registerInstance(makVrv::DtDe& de, DtOverlayShapeFileLoadHandler*);
152 
154  virtual void setDefaultDriver(const std::string&);
155  virtual const std::string& defaultDriver() const;
156 
159  virtual bool importShapeFileOntoOverlay(const std::string& shapefile, const std::string& overlay, bool keepLocal = false);
160 
163  virtual const DtFilename& importFrom() const;
164 
166  virtual DtDataFileReader* readerBasedOnFilename(const std::string&) const;
167 
169  virtual void addDriver(const std::string& extension, DtDataFileReader*, const makVrv::DtUnicode& displayString);
170 
171  const Drivers& drivers() const
172  {
173  return myDrivers;
174  }
175 
176  protected:
180  std::string myDefaultDriver;
181  };
182 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)