39 #ifndef __OPENFLUID_LANDR_VECTORDATASET_HPP__ 
   40 #define __OPENFLUID_LANDR_VECTORDATASET_HPP__ 
   45 #include <ogrsf_frmts.h> 
   49 namespace geos { 
namespace geom {
 
   71     typedef std::list<std::pair<OGRFeature*, geos::geom::Geometry*> > 
FeaturesList_t;
 
   78     OGRDataSource* mp_DataSource;
 
   83     std::map<unsigned int, FeaturesList_t> m_Features;
 
   89     std::map<unsigned int, geos::geom::Geometry*> m_Geometries;
 
   94     std::string getTimestampedPath(
const std::string& OriginalFileName);
 
   99     std::string getInitializedTmpPath();
 
  106     bool isAlreadyExisting(
const std::string& Path);
 
  112     void parse(
unsigned int LayerIndex);
 
  114     void snapLineNodes(
double Threshold,
unsigned int LayerIndex=0);
 
  116     void snapPolygonVertices(
double Threshold,
unsigned int LayerIndex=0);
 
  150     OGRDataSource* source();
 
  155     OGRDataSource* source() 
const;
 
  163     void copyToDisk(
const std::string& FilePath,
 
  164                     const std::string& FileName,
 
  165                     bool ReplaceIfExists);
 
  175     void addALayer(std::string LayerName = 
"",
 
  176                    OGRwkbGeometryType LayerType = wkbUnknown,
 
  177                    OGRSpatialReference* SpatialRef = 
nullptr);
 
  184     OGRLayer* layer(
unsigned int LayerIndex = 0);
 
  191     OGRFeatureDefn* layerDef(
unsigned int LayerIndex = 0);
 
  200     void addAField(
const std::string& FieldName,
 
  201                    OGRFieldType FieldType = OFTString,
 
  202                    unsigned int LayerIndex = 0);
 
  209     bool isLineType(
unsigned int LayerIndex = 0);
 
  216     bool isPolygonType(
unsigned int LayerIndex = 0);
 
  224     bool containsField(
const std::string& FieldName,
 
  225                        unsigned int LayerIndex = 0);
 
  233     int getFieldIndex(
const std::string& FieldName,
 
  234                       unsigned int LayerIndex = 0);
 
  244     bool isFieldOfType(
const std::string& FieldName,
 
  245                        OGRFieldType FieldType,
 
  246                        unsigned int LayerIndex = 0);
 
  255     bool isIntValueSet(
const std::string& FieldName,
 
  257                        unsigned int LayerIndex = 0);
 
  272     geos::geom::Geometry* geometries(
unsigned int LayerIndex = 0);
 
  279     bool isPointType(
unsigned int LayerIndex = 0);
 
  287     void setIndexIntField(
const std::string& FieldName,
 
  289                           unsigned int LayerIndex = 0);
 
  294     OGREnvelope envelope();
 
  302     void snapVertices(
double Threshold,
unsigned int LayerIndex=0);
 
  311     std::string checkTopology(
double Threshold, 
unsigned int LayerIndex=0);
 
  319     std::list<std::pair<OGRFeature*, OGRFeature*> > findOverlap(
unsigned int LayerIndex=0);
 
  328     std::list<std::pair<OGRFeature*, OGRFeature*> > findGap(
double Threshold,
unsigned int LayerIndex=0);
 
  336     void cleanOverlap(
double Threshold, 
unsigned int LayerIndex=0);
 
  343     std::list<OGRFeature*> hasDuplicateGeometry(
unsigned int LayerIndex=0);
 
Definition: GeoVectorValue.hpp:52
Interface for managing Vector Data format. 
Definition: VectorDataset.hpp:64
std::list< std::pair< OGRFeature *, geos::geom::Geometry * > > FeaturesList_t
A list of pair of OGRFeature and geos::geom::Geometry related to this VectorDataset entities...
Definition: VectorDataset.hpp:71
#define OPENFLUID_API
Definition: dllexport.hpp:87