OGR
ogrsf_frmts.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogrsf_frmts.h 37968 2017-04-12 07:16:55Z rouault $
3  *
4  * Project: OpenGIS Simple Features Reference Implementation
5  * Purpose: Classes related to format registration, and file opening.
6  * Author: Frank Warmerdam, warmerda@home.com
7  *
8  ******************************************************************************
9  * Copyright (c) 1999, Les Technologies SoftMap Inc.
10  * Copyright (c) 2007-2014, Even Rouault <even dot rouault at mines-paris dot org>
11  *
12  * Permission is hereby granted, free of charge, to any person obtaining a
13  * copy of this software and associated documentation files (the "Software"),
14  * to deal in the Software without restriction, including without limitation
15  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16  * and/or sell copies of the Software, and to permit persons to whom the
17  * Software is furnished to do so, subject to the following conditions:
18  *
19  * The above copyright notice and this permission notice shall be included
20  * in all copies or substantial portions of the Software.
21  *
22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
28  * DEALINGS IN THE SOFTWARE.
29  ****************************************************************************/
30 
31 #ifndef OGRSF_FRMTS_H_INCLUDED
32 #define OGRSF_FRMTS_H_INCLUDED
33 
34 #include "cpl_progress.h"
35 #include "ogr_feature.h"
36 #include "ogr_featurestyle.h"
37 #include "gdal_priv.h"
38 
45 #if !defined(GDAL_COMPILATION) && !defined(SUPPRESS_DEPRECATION_WARNINGS)
47 #define OGR_DEPRECATED(x) CPL_WARN_DEPRECATED(x)
48 #else
49 #define OGR_DEPRECATED(x)
50 #endif
51 
53 class OGRLayerAttrIndex;
54 class OGRSFDriver;
55 
56 /************************************************************************/
57 /* OGRLayer */
58 /************************************************************************/
59 
65 /* Note: any virtual method added to this class must also be added in the */
66 /* OGRLayerDecorator and OGRMutexedLayer classes. */
67 
68 class CPL_DLL OGRLayer : public GDALMajorObject
69 {
70  private:
71  void ConvertGeomsIfNecessary( OGRFeature *poFeature );
72 
73  protected:
75  int m_bFilterIsEnvelope;
76  OGRGeometry *m_poFilterGeom;
77  OGRPreparedGeometry *m_pPreparedFilterGeom; /* m_poFilterGeom compiled as a prepared geometry */
78  OGREnvelope m_sFilterEnvelope;
79  int m_iGeomFieldFilter; // specify the index on which the spatial
80  // filter is active.
81 
82  int FilterGeometry( OGRGeometry * );
83  //int FilterGeometry( OGRGeometry *, OGREnvelope* psGeometryEnvelope);
84  int InstallFilter( OGRGeometry * );
85 
86  OGRErr GetExtentInternal(int iGeomField, OGREnvelope *psExtent, int bForce );
88 
89  virtual OGRErr ISetFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
90  virtual OGRErr ICreateFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
91 
92  public:
93  OGRLayer();
94  virtual ~OGRLayer();
95 
96  virtual OGRGeometry *GetSpatialFilter();
97  virtual void SetSpatialFilter( OGRGeometry * );
98  virtual void SetSpatialFilterRect( double dfMinX, double dfMinY,
99  double dfMaxX, double dfMaxY );
100 
101  virtual void SetSpatialFilter( int iGeomField, OGRGeometry * );
102  virtual void SetSpatialFilterRect( int iGeomField,
103  double dfMinX, double dfMinY,
104  double dfMaxX, double dfMaxY );
105 
106  virtual OGRErr SetAttributeFilter( const char * );
107 
108  virtual void ResetReading() = 0;
109  virtual OGRFeature *GetNextFeature() CPL_WARN_UNUSED_RESULT = 0;
110  virtual OGRErr SetNextByIndex( GIntBig nIndex );
111  virtual OGRFeature *GetFeature( GIntBig nFID ) CPL_WARN_UNUSED_RESULT;
112 
113  OGRErr SetFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
114  OGRErr CreateFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
115 
116  virtual OGRErr DeleteFeature( GIntBig nFID ) CPL_WARN_UNUSED_RESULT;
117 
118  virtual const char *GetName();
119  virtual OGRwkbGeometryType GetGeomType();
120  virtual OGRFeatureDefn *GetLayerDefn() = 0;
121  virtual int FindFieldIndex( const char *pszFieldName, int bExactMatch );
122 
123  virtual OGRSpatialReference *GetSpatialRef();
124 
125  virtual GIntBig GetFeatureCount( int bForce = TRUE );
126  virtual OGRErr GetExtent(OGREnvelope *psExtent, int bForce = TRUE) CPL_WARN_UNUSED_RESULT;
127  virtual OGRErr GetExtent(int iGeomField, OGREnvelope *psExtent,
128  int bForce = TRUE) CPL_WARN_UNUSED_RESULT;
129 
130  virtual int TestCapability( const char * ) = 0;
131 
132  virtual OGRErr CreateField( OGRFieldDefn *poField,
133  int bApproxOK = TRUE );
134  virtual OGRErr DeleteField( int iField );
135  virtual OGRErr ReorderFields( int* panMap );
136  virtual OGRErr AlterFieldDefn( int iField, OGRFieldDefn* poNewFieldDefn, int nFlagsIn );
137 
138  virtual OGRErr CreateGeomField( OGRGeomFieldDefn *poField,
139  int bApproxOK = TRUE );
140 
141  virtual OGRErr SyncToDisk();
142 
143  virtual OGRStyleTable *GetStyleTable();
144  virtual void SetStyleTableDirectly( OGRStyleTable *poStyleTable );
145 
146  virtual void SetStyleTable(OGRStyleTable *poStyleTable);
147 
148  virtual OGRErr StartTransaction() CPL_WARN_UNUSED_RESULT;
149  virtual OGRErr CommitTransaction() CPL_WARN_UNUSED_RESULT;
150  virtual OGRErr RollbackTransaction();
151 
152  virtual const char *GetFIDColumn();
153  virtual const char *GetGeometryColumn();
154 
155  virtual OGRErr SetIgnoredFields( const char **papszFields );
156 
157  OGRErr Intersection( OGRLayer *pLayerMethod,
158  OGRLayer *pLayerResult,
159  char** papszOptions = NULL,
160  GDALProgressFunc pfnProgress = NULL,
161  void * pProgressArg = NULL );
162  OGRErr Union( OGRLayer *pLayerMethod,
163  OGRLayer *pLayerResult,
164  char** papszOptions = NULL,
165  GDALProgressFunc pfnProgress = NULL,
166  void * pProgressArg = NULL );
167  OGRErr SymDifference( OGRLayer *pLayerMethod,
168  OGRLayer *pLayerResult,
169  char** papszOptions,
170  GDALProgressFunc pfnProgress,
171  void * pProgressArg );
172  OGRErr Identity( OGRLayer *pLayerMethod,
173  OGRLayer *pLayerResult,
174  char** papszOptions = NULL,
175  GDALProgressFunc pfnProgress = NULL,
176  void * pProgressArg = NULL );
177  OGRErr Update( OGRLayer *pLayerMethod,
178  OGRLayer *pLayerResult,
179  char** papszOptions = NULL,
180  GDALProgressFunc pfnProgress = NULL,
181  void * pProgressArg = NULL );
182  OGRErr Clip( OGRLayer *pLayerMethod,
183  OGRLayer *pLayerResult,
184  char** papszOptions = NULL,
185  GDALProgressFunc pfnProgress = NULL,
186  void * pProgressArg = NULL );
187  OGRErr Erase( OGRLayer *pLayerMethod,
188  OGRLayer *pLayerResult,
189  char** papszOptions = NULL,
190  GDALProgressFunc pfnProgress = NULL,
191  void * pProgressArg = NULL );
192 
193  int Reference();
194  int Dereference();
195  int GetRefCount() const;
197  GIntBig GetFeaturesRead();
199 
200  /* non virtual : convenience wrapper for ReorderFields() */
201  OGRErr ReorderField( int iOldFieldPos, int iNewFieldPos );
202 
204  int AttributeFilterEvaluationNeedsGeometry();
205 
206  /* consider these private */
207  OGRErr InitializeIndexSupport( const char * );
208  OGRLayerAttrIndex *GetIndex() { return m_poAttrIndex; }
210 
211  protected:
213  OGRStyleTable *m_poStyleTable;
214  OGRFeatureQuery *m_poAttrQuery;
215  char *m_pszAttrQueryString;
216  OGRLayerAttrIndex *m_poAttrIndex;
217 
218  int m_nRefCount;
219 
220  GIntBig m_nFeaturesRead;
222 };
223 
224 /************************************************************************/
225 /* OGRDataSource */
226 /************************************************************************/
227 
247 class CPL_DLL OGRDataSource : public GDALDataset
248 {
249 public:
250  OGRDataSource();
252  virtual const char *GetName() OGR_DEPRECATED("Use GDALDataset class instead") = 0;
253 
254  static void DestroyDataSource( OGRDataSource * ) OGR_DEPRECATED("Use GDALDataset class instead");
256 };
257 
258 /************************************************************************/
259 /* OGRSFDriver */
260 /************************************************************************/
261 
280 class CPL_DLL OGRSFDriver : public GDALDriver
281 {
282  public:
284  virtual ~OGRSFDriver();
285 
286  virtual const char *GetName() OGR_DEPRECATED("Use GDALDriver class instead") = 0;
287 
288  virtual OGRDataSource *Open( const char *pszName, int bUpdate=FALSE ) OGR_DEPRECATED("Use GDALDriver class instead") = 0;
289 
290  virtual int TestCapability( const char *pszCap ) OGR_DEPRECATED("Use GDALDriver class instead") = 0;
291 
292  virtual OGRDataSource *CreateDataSource( const char *pszName,
293  char ** = NULL ) OGR_DEPRECATED("Use GDALDriver class instead");
294  virtual OGRErr DeleteDataSource( const char *pszName ) OGR_DEPRECATED("Use GDALDriver class instead");
296 };
297 
298 /************************************************************************/
299 /* OGRSFDriverRegistrar */
300 /************************************************************************/
301 
315 class CPL_DLL OGRSFDriverRegistrar
316 {
317 
320 
321  static GDALDataset* OpenWithDriverArg(GDALDriver* poDriver,
322  GDALOpenInfo* poOpenInfo);
323  static GDALDataset* CreateVectorOnly( GDALDriver* poDriver,
324  const char * pszName,
325  char ** papszOptions );
326  static CPLErr DeleteDataSource( GDALDriver* poDriver,
327  const char * pszName );
328 
329  public:
331  static OGRSFDriverRegistrar *GetRegistrar() OGR_DEPRECATED("Use GDALDriverManager class instead");
332 
333  // cppcheck-suppress functionStatic
334  void RegisterDriver( OGRSFDriver * poDriver ) OGR_DEPRECATED("Use GDALDriverManager class instead");
335 
336  // cppcheck-suppress functionStatic
337  int GetDriverCount( void ) OGR_DEPRECATED("Use GDALDriverManager class instead");
338  // cppcheck-suppress functionStatic
339  GDALDriver *GetDriver( int iDriver ) OGR_DEPRECATED("Use GDALDriverManager class instead");
340  // cppcheck-suppress functionStatic
341  GDALDriver *GetDriverByName( const char * ) OGR_DEPRECATED("Use GDALDriverManager class instead");
342 
343  // cppcheck-suppress functionStatic
344  int GetOpenDSCount() OGR_DEPRECATED("Use GDALDriverManager class instead");
345  // cppcheck-suppress functionStatic
346  OGRDataSource *GetOpenDS( int ) OGR_DEPRECATED("Use GDALDriverManager class instead");
348 };
349 
350 /* -------------------------------------------------------------------- */
351 /* Various available registration methods. */
352 /* -------------------------------------------------------------------- */
354 void CPL_DLL OGRRegisterAll();
355 
357 void OGRRegisterAllInternal();
358 
359 void CPL_DLL RegisterOGRFileGDB();
360 void CPL_DLL RegisterOGRShape();
361 void CPL_DLL RegisterOGRDB2();
362 void CPL_DLL RegisterOGRNTF();
363 void CPL_DLL RegisterOGRFME();
364 void CPL_DLL RegisterOGRSDTS();
365 void CPL_DLL RegisterOGRTiger();
366 void CPL_DLL RegisterOGRS57();
367 void CPL_DLL RegisterOGRTAB();
368 void CPL_DLL RegisterOGRMIF();
369 void CPL_DLL RegisterOGROGDI();
370 void CPL_DLL RegisterOGRODBC();
371 void CPL_DLL RegisterOGRWAsP();
372 void CPL_DLL RegisterOGRPG();
373 void CPL_DLL RegisterOGRMSSQLSpatial();
374 void CPL_DLL RegisterOGRMySQL();
375 void CPL_DLL RegisterOGROCI();
376 void CPL_DLL RegisterOGRDGN();
377 void CPL_DLL RegisterOGRGML();
378 void CPL_DLL RegisterOGRLIBKML();
379 void CPL_DLL RegisterOGRKML();
380 void CPL_DLL RegisterOGRGeoJSON();
381 void CPL_DLL RegisterOGRAVCBin();
382 void CPL_DLL RegisterOGRAVCE00();
383 void CPL_DLL RegisterOGRREC();
384 void CPL_DLL RegisterOGRMEM();
385 void CPL_DLL RegisterOGRVRT();
386 void CPL_DLL RegisterOGRDODS();
387 void CPL_DLL RegisterOGRSQLite();
388 void CPL_DLL RegisterOGRCSV();
389 void CPL_DLL RegisterOGRILI1();
390 void CPL_DLL RegisterOGRILI2();
391 void CPL_DLL RegisterOGRGRASS();
392 void CPL_DLL RegisterOGRPGeo();
393 void CPL_DLL RegisterOGRDXF();
394 void CPL_DLL RegisterOGRCAD();
395 void CPL_DLL RegisterOGRDWG();
396 void CPL_DLL RegisterOGRDGNV8();
397 void CPL_DLL RegisterOGRSDE();
398 void CPL_DLL RegisterOGRIDB();
399 void CPL_DLL RegisterOGRGMT();
400 void CPL_DLL RegisterOGRBNA();
401 void CPL_DLL RegisterOGRGPX();
402 void CPL_DLL RegisterOGRGeoconcept();
403 void CPL_DLL RegisterOGRIngres();
404 void CPL_DLL RegisterOGRXPlane();
405 void CPL_DLL RegisterOGRNAS();
406 void CPL_DLL RegisterOGRGeoRSS();
407 void CPL_DLL RegisterOGRGTM();
408 void CPL_DLL RegisterOGRVFK();
409 void CPL_DLL RegisterOGRPGDump();
410 void CPL_DLL RegisterOGROSM();
411 void CPL_DLL RegisterOGRGPSBabel();
412 void CPL_DLL RegisterOGRSUA();
413 void CPL_DLL RegisterOGROpenAir();
414 void CPL_DLL RegisterOGRPDS();
415 void CPL_DLL RegisterOGRWFS();
416 void CPL_DLL RegisterOGRSOSI();
417 void CPL_DLL RegisterOGRHTF();
418 void CPL_DLL RegisterOGRAeronavFAA();
419 void CPL_DLL RegisterOGRGeomedia();
420 void CPL_DLL RegisterOGRMDB();
421 void CPL_DLL RegisterOGREDIGEO();
422 void CPL_DLL RegisterOGRGFT();
423 void CPL_DLL RegisterOGRSVG();
424 void CPL_DLL RegisterOGRCouchDB();
425 void CPL_DLL RegisterOGRCloudant();
426 void CPL_DLL RegisterOGRIdrisi();
427 void CPL_DLL RegisterOGRARCGEN();
428 void CPL_DLL RegisterOGRSEGUKOOA();
429 void CPL_DLL RegisterOGRSEGY();
430 void CPL_DLL RegisterOGRXLS();
431 void CPL_DLL RegisterOGRODS();
432 void CPL_DLL RegisterOGRXLSX();
433 void CPL_DLL RegisterOGRElastic();
434 void CPL_DLL RegisterOGRGeoPackage();
435 void CPL_DLL RegisterOGRWalk();
436 void CPL_DLL RegisterOGRCarto();
437 void CPL_DLL RegisterOGRAmigoCloud();
438 void CPL_DLL RegisterOGRSXF();
439 void CPL_DLL RegisterOGROpenFileGDB();
440 void CPL_DLL RegisterOGRSelafin();
441 void CPL_DLL RegisterOGRJML();
442 void CPL_DLL RegisterOGRPLSCENES();
443 void CPL_DLL RegisterOGRCSW();
444 void CPL_DLL RegisterOGRMongoDB();
445 void CPL_DLL RegisterOGRVDV();
446 void CPL_DLL RegisterOGRGMLAS();
447 // @endcond
448 
449 CPL_C_END
450 
451 #endif /* ndef OGRSF_FRMTS_H_INCLUDED */
OGRPolygon::getInteriorRing
virtual OGRLinearRing * getInteriorRing(int)
Fetch reference to indicated internal ring.
Definition: ogrpolygon.cpp:217
OGRGeometry::Is3D
OGRBoolean Is3D() const
Definition: ogr_geometry.h:185
CPL_LSBWORD32
#define CPL_LSBWORD32(x)
Definition: cpl_port.h:879
OGRGeometry::IsEmpty
virtual OGRBoolean IsEmpty() const =0
Returns TRUE (non-zero) if the object has no points.
OGRGeometry::setCoordinateDimension
virtual void setCoordinateDimension(int nDimension)
Set the coordinate dimension.
Definition: ogrgeometry.cpp:1022
OGRCurvePolygon::addRingDirectly
virtual OGRErr addRingDirectly(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:397
OGRPoint::Intersects
virtual OGRBoolean Intersects(const OGRGeometry *) const CPL_OVERRIDE
Do these features intersect?
Definition: ogrpoint.cpp:790
ogr_spatialref.h
wkbPointZM
@ wkbPointZM
Definition: ogr_core.h:376
CPL_SWAP32
#define CPL_SWAP32(x)
Definition: cpl_port.h:772
OGRPolyhedralSurface::getNumGeometries
int getNumGeometries() const
Fetch number of geometries in PolyhedralSurface.
Definition: ogrpolyhedralsurface.cpp:914
OGRPolygon::stealExteriorRing
OGRLinearRing * stealExteriorRing()
"Steal" reference to external polygon ring.
Definition: ogrpolygon.cpp:192
OGRMultiPolygon
Definition: ogr_geometry.h:1435
OGRPolyhedralSurface::CastToMultiPolygon
static OGRMultiPolygon * CastToMultiPolygon(OGRPolyhedralSurface *poPS)
Casts the OGRPolyhedralSurface to an OGRMultiPolygon.
Definition: ogrpolyhedralsurface.cpp:815
OGRPolygon::getLinearGeometry
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrpolygon.cpp:822
OGRPolyhedralSurface::addGeometryDirectly
OGRErr addGeometryDirectly(OGRGeometry *poNewGeom)
Add a geometry directly to the container.
Definition: ogrpolyhedralsurface.cpp:872
OGRPolygon::getGeometryType
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrpolygon.cpp:106
OGRPolyhedralSurface::getDimension
virtual int getDimension() const CPL_OVERRIDE
Get the dimension of this object.
Definition: ogrpolyhedralsurface.cpp:144
OGRERR_UNSUPPORTED_GEOMETRY_TYPE
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Definition: ogr_core.h:290
OGRCurvePolygon::clone
virtual OGRGeometry * clone() const CPL_OVERRIDE
Make a copy of this object.
Definition: ogrcurvepolygon.cpp:106
cpl_error.h
OGRGeometry::getGeometryType
virtual OGRwkbGeometryType getGeometryType() const =0
Fetch geometry type.
OGRPoint::getEnvelope
virtual void getEnvelope(OGREnvelope *psEnvelope) const CPL_OVERRIDE
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrpoint.cpp:622
wkbPoint
@ wkbPoint
Definition: ogr_core.h:316
OGRPoint::importFromWkb
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrpoint.cpp:298
CPLString::Printf
CPLString & Printf(const char *pszFormat,...)
Definition: cplstring.cpp:59
CPL_SWAPDOUBLE
#define CPL_SWAPDOUBLE(p)
Definition: cpl_port.h:860
VSI_REALLOC_VERBOSE
#define VSI_REALLOC_VERBOSE(pOldPtr, nNewSize)
Definition: cpl_vsi.h:274
OGRStyleTable
Definition: ogr_featurestyle.h:83
OGRPolyhedralSurface::empty
virtual void empty() CPL_OVERRIDE
Clear geometry information. This restores the geometry to it's initial state after construction,...
Definition: ogrpolyhedralsurface.cpp:153
OGRPolyhedralSurface::importFromWkt
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrpolyhedralsurface.cpp:350
OGRGeometry::set3D
virtual void set3D(OGRBoolean bIs3D)
Add or remove the Z coordinate dimension.
Definition: ogrgeometry.cpp:1045
OGRSimpleCurve::setMeasured
virtual void setMeasured(OGRBoolean bIsMeasured) CPL_OVERRIDE
Add or remove the M coordinate dimension.
Definition: ogrlinestring.cpp:179
OGRCurvePolygon::set3D
virtual void set3D(OGRBoolean bIs3D) CPL_OVERRIDE
Add or remove the Z coordinate dimension.
Definition: ogrcurvepolygon.cpp:689
CPLCalloc
void * CPLCalloc(size_t, size_t)
Definition: cpl_conv.cpp:128
OGRPoint::flattenTo2D
virtual void flattenTo2D() CPL_OVERRIDE
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrpoint.cpp:249
OGRRegisterAll
void OGRRegisterAll(void)
Register all drivers.
Definition: ogrregisterall.cpp:38
wkbNDR
@ wkbNDR
Definition: ogr_core.h:482
OGRPoint::IsEmpty
virtual OGRBoolean IsEmpty() const CPL_OVERRIDE
Returns TRUE (non-zero) if the object has no points.
Definition: ogr_geometry.h:357
cpl_vsi.h
OGRCoordinateTransformation::GetTargetCS
virtual OGRSpatialReference * GetTargetCS()=0
OGRSpatialReference
Definition: ogr_spatialref.h:132
OGRPolyhedralSurface
Definition: ogr_geometry.h:1487
OGRPolygon::CurvePolyToPoly
virtual OGRPolygon * CurvePolyToPoly(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return a polygon from a curve polygon.
Definition: ogrpolygon.cpp:802
OGRPolyhedralSurface::getGeometryType
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Returns the WKB Type of PolyhedralSurface.
Definition: ogrpolyhedralsurface.cpp:116
wkbPolygon25D
@ wkbPolygon25D
Definition: ogr_core.h:396
wkbPolygonZM
@ wkbPolygonZM
Definition: ogr_core.h:378
wkbVariantPostGIS1
@ wkbVariantPostGIS1
Definition: ogr_core.h:422
wkbPolygonM
@ wkbPolygonM
Definition: ogr_core.h:360
OGRGeometry
Definition: ogr_geometry.h:118
OGRCoordinateTransformation::Transform
virtual int Transform(int nCount, double *x, double *y, double *z=NULL)=0
OGRGeometry::getGeometryName
virtual const char * getGeometryName() const =0
Fetch WKT name for geometry type.
OGRPolyhedralSurface::get_Area
virtual double get_Area() const CPL_OVERRIDE
Returns the area enclosed.
Definition: ogrpolyhedralsurface.cpp:744
OGRPolyhedralSurface::setCoordinateDimension
virtual void setCoordinateDimension(int nDimension) CPL_OVERRIDE
Set the coordinate dimension.
Definition: ogrpolyhedralsurface.cpp:1022
OGRPolyhedralSurface::swapXY
virtual void swapXY() CPL_OVERRIDE
Swap x and y coordinates.
Definition: ogrpolyhedralsurface.cpp:1037
OGRPolyhedralSurface::IsEmpty
virtual OGRBoolean IsEmpty() const CPL_OVERRIDE
Checks if the PolyhedralSurface is empty.
Definition: ogrpolyhedralsurface.cpp:973
OGRPolyhedralSurface::WkbSize
virtual int WkbSize() const CPL_OVERRIDE
Returns size of related binary representation.
Definition: ogrpolyhedralsurface.cpp:132
OGRLayer
Definition: ogrsf_frmts.h:68
CPLString
Convenient string class based on std::string.
Definition: cpl_string.h:338
OGRPoint
Definition: ogr_geometry.h:322
ogr_geometry.h
OGRPoint::importFromWkt
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrpoint.cpp:477
wkbPolyhedralSurfaceZM
@ wkbPolyhedralSurfaceZM
Definition: ogr_core.h:390
OGRGeometry::operator=
OGRGeometry & operator=(const OGRGeometry &other)
Assignment operator.
Definition: ogrgeometry.cpp:141
CPLRealloc
void * CPLRealloc(void *, size_t)
Definition: cpl_conv.cpp:215
wkbPoint25D
@ wkbPoint25D
Definition: ogr_core.h:394
OGRPolygon::operator=
OGRPolygon & operator=(const OGRPolygon &other)
Assignment operator.
Definition: ogrpolygon.cpp:93
EQUAL
#define EQUAL(a, b)
Definition: cpl_port.h:622
OGRBoolean
int OGRBoolean
Definition: ogr_core.h:301
OGRPolygon::WkbSize
virtual int WkbSize() const CPL_OVERRIDE
Returns size of related binary representation.
Definition: ogrpolygon.cpp:299
OGRSFDriverRegistrar
Definition: ogrsf_frmts.h:315
OGRPolyhedralSurface::PointOnSurface
virtual OGRErr PointOnSurface(OGRPoint *) const CPL_OVERRIDE
This method relates to the SFCOM ISurface::get_PointOnSurface() method.
Definition: ogrpolyhedralsurface.cpp:771
OGRRawPoint::x
double x
Definition: ogr_geometry.h:57
OGRGeometryFactory::createFromWkb
static OGRErr createFromWkb(unsigned char *, OGRSpatialReference *, OGRGeometry **, int=-1, OGRwkbVariant=wkbVariantOldOgc)
Create a geometry object of the appropriate type from it's well known binary representation.
Definition: ogrgeometryfactory.cpp:103
OGRGeometry::getCurveGeometry
virtual OGRGeometry * getCurveGeometry(const char *const *papszOptions=NULL) const CPL_WARN_UNUSED_RESULT
Return curve version of this geometry.
Definition: ogrgeometry.cpp:3116
wkbFlatten
#define wkbFlatten(x)
Definition: ogr_core.h:431
OGRPoint::swapXY
virtual void swapXY() CPL_OVERRIDE
Swap x and y coordinates.
Definition: ogrpoint.cpp:757
CPLAssert
#define CPLAssert(expr)
Definition: cpl_error.h:182
OGRRawPoint
Definition: ogr_geometry.h:47
CPL_C_START
#define CPL_C_START
Definition: cpl_port.h:352
OGRGeometry::clone
virtual OGRGeometry * clone() const CPL_WARN_UNUSED_RESULT=0
Make a copy of this object.
OGRPolygon::stealInteriorRing
virtual OGRLinearRing * stealInteriorRing(int)
"Steal" reference to indicated interior ring.
Definition: ogrpolygon.cpp:265
OGRCurvePolygon::setMeasured
virtual void setMeasured(OGRBoolean bIsMeasured) CPL_OVERRIDE
Add or remove the M coordinate dimension.
Definition: ogrcurvepolygon.cpp:694
OGRPolyhedralSurface::addGeometry
virtual OGRErr addGeometry(const OGRGeometry *)
Add a new geometry to a collection.
Definition: ogrpolyhedralsurface.cpp:836
OGRPoint::exportToWkt
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrpoint.cpp:562
OGRPolyhedralSurface::getEnvelope
virtual void getEnvelope(OGREnvelope *psEnvelope) const CPL_OVERRIDE
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrpolyhedralsurface.cpp:198
OGRSurface
Definition: ogr_geometry.h:1017
OGRwkbByteOrder
OGRwkbByteOrder
Definition: ogr_core.h:479
OGRPolygon::getExteriorRing
OGRLinearRing * getExteriorRing()
Fetch reference to external polygon ring.
Definition: ogrpolygon.cpp:147
OGRCurvePolygon::OGRCurvePolygon
OGRCurvePolygon()
Create an empty curve polygon.
Definition: ogrcurvepolygon.cpp:52
OGRGeometryFactory::createGeometry
static OGRGeometry * createGeometry(OGRwkbGeometryType)
Create an empty geometry of desired type.
Definition: ogrgeometryfactory.cpp:442
wkbCurvePolygon
@ wkbCurvePolygon
Definition: ogr_core.h:331
OGRGeometry::Intersects
virtual OGRBoolean Intersects(const OGRGeometry *) const
Do these features intersect?
Definition: ogrgeometry.cpp:515
OGRPoint::Equals
virtual OGRBoolean Equals(OGRGeometry *) const CPL_OVERRIDE
Returns TRUE if two geometries are equivalent.
Definition: ogrpoint.cpp:706
OGRPoint::setCoordinateDimension
virtual void setCoordinateDimension(int nDimension) CPL_OVERRIDE
Set the coordinate dimension.
Definition: ogrpoint.cpp:262
OGRPoint::WkbSize
virtual int WkbSize() const CPL_OVERRIDE
Returns size of related binary representation.
Definition: ogrpoint.cpp:280
OGRSimpleCurve::setPointsM
void setPointsM(int, OGRRawPoint *, double *)
Assign all points in a line string.
Definition: ogrlinestring.cpp:874
OGRERR_FAILURE
#define OGRERR_FAILURE
Definition: ogr_core.h:293
CPL_MSBWORD32
#define CPL_MSBWORD32(x)
Definition: cpl_port.h:881
OGRPolygon::exportToWkb
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrpolygon.cpp:364
OGRERR_NOT_ENOUGH_MEMORY
#define OGRERR_NOT_ENOUGH_MEMORY
Definition: ogr_core.h:289
OGRPolyhedralSurface::clone
virtual OGRGeometry * clone() const CPL_OVERRIDE
Make a copy of this object.
Definition: ogrpolyhedralsurface.cpp:169
ogrsf_frmts.h
OGRPolygon::hasCurveGeometry
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrpolygon.cpp:813
wkbPolyhedralSurface
@ wkbPolyhedralSurface
Definition: ogr_core.h:338
sfcgal_geometry_t
void sfcgal_geometry_t
Definition: ogr_geometry.h:67
CPL_C_END
#define CPL_C_END
Definition: cpl_port.h:354
CPLDebug
void CPLDebug(const char *, const char *,...)
Definition: cpl_error.cpp:492
OGRPolygon::importFromWkb
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrpolygon.cpp:319
OGRFieldDefn
Definition: ogr_feature.h:62
OGRPoint::empty
virtual void empty() CPL_OVERRIDE
Clear geometry information. This restores the geometry to it's initial state after construction,...
Definition: ogrpoint.cpp:198
ogr_featurestyle.h
wkbVariantIso
@ wkbVariantIso
Definition: ogr_core.h:421
OGRSimpleCurve::set3D
virtual void set3D(OGRBoolean bIs3D) CPL_OVERRIDE
Add or remove the Z coordinate dimension.
Definition: ogrlinestring.cpp:170
OGRSimpleCurve::getNumPoints
virtual int getNumPoints() const CPL_OVERRIDE
Fetch vertex count.
Definition: ogr_geometry.h:552
OGRPolyhedralSurface::removeGeometry
OGRErr removeGeometry(int iIndex, int bDelete=TRUE)
Remove a geometry from the container.
Definition: ogrpolyhedralsurface.cpp:1073
OGRGeometry::assignSpatialReference
void assignSpatialReference(OGRSpatialReference *poSR)
Assign spatial reference to this object.
Definition: ogrgeometry.cpp:450
ogr_feature.h
cpl_conv.h
OGRPoint::getDimension
virtual int getDimension() const CPL_OVERRIDE
Get the dimension of this object.
Definition: ogrpoint.cpp:212
wkbPolygon
@ wkbPolygon
Definition: ogr_core.h:319
OGRGeometry::getSpatialReference
OGRSpatialReference * getSpatialReference(void) const
Returns spatial reference system for object.
Definition: ogr_geometry.h:238
OGRPolyhedralSurface::getGeometryRef
OGRGeometry * getGeometryRef(int i)
Fetch geometry from container.
Definition: ogrpolyhedralsurface.cpp:936
VSI_CALLOC_VERBOSE
#define VSI_CALLOC_VERBOSE(nCount, nSize)
Definition: cpl_vsi.h:269
wkbPolyhedralSurfaceM
@ wkbPolyhedralSurfaceM
Definition: ogr_core.h:372
OGRDataSource
Definition: ogrsf_frmts.h:247
OGRPoint::getGeometryName
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrpoint.cpp:239
OGRPreparedGeometry
struct _OGRPreparedGeometry OGRPreparedGeometry
Definition: ogr_geometry.h:1799
CPLError
void CPLError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt,...)
Definition: cpl_error.cpp:215
OGRGeomFieldDefn
Definition: ogr_feature.h:141
OGRGeometryFactory::createFromWkt
static OGRErr createFromWkt(char **, OGRSpatialReference *, OGRGeometry **)
Create a geometry object of the appropriate type from it's well known text representation.
Definition: ogrgeometryfactory.cpp:270
OGRPolyhedralSurface::flattenTo2D
virtual void flattenTo2D() CPL_OVERRIDE
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrpolyhedralsurface.cpp:627
OGRPolyhedralSurface::getGeometryName
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrpolyhedralsurface.cpp:102
VSIFree
void VSIFree(void *)
Definition: cpl_vsisimple.cpp:817
OGRSimpleCurve::setPoints
void setPoints(int, OGRRawPoint *, double *=NULL)
Assign all points in a line string.
Definition: ogrlinestring.cpp:985
CPLE_NotSupported
#define CPLE_NotSupported
Definition: cpl_error.h:110
OGRERR_NOT_ENOUGH_DATA
#define OGRERR_NOT_ENOUGH_DATA
Definition: ogr_core.h:288
OGRERR_CORRUPT_DATA
#define OGRERR_CORRUPT_DATA
Definition: ogr_core.h:292
OGRCoordinateTransformation
Definition: ogr_spatialref.h:591
OGRSFDriver
Definition: ogrsf_frmts.h:280
OGRErr
int OGRErr
Definition: ogr_core.h:285
OGRPolyhedralSurface::transform
virtual OGRErr transform(OGRCoordinateTransformation *) CPL_OVERRIDE
Apply arbitrary coordinate transformation to geometry.
Definition: ogrpolyhedralsurface.cpp:639
GIntBig
long long GIntBig
Definition: cpl_port.h:250
OGRPoint::transform
virtual OGRErr transform(OGRCoordinateTransformation *poCT) CPL_OVERRIDE
Apply arbitrary coordinate transformation to geometry.
Definition: ogrpoint.cpp:741
OGRRegisterAll
void OGRRegisterAll()
Register all drivers.
Definition: ogrregisterall.cpp:38
VSI_MALLOC_VERBOSE
#define VSI_MALLOC_VERBOSE(size)
Definition: cpl_vsi.h:254
OGRPoint::OGRPoint
OGRPoint()
Create an empty point.
Definition: ogrpoint.cpp:54
OGRwkbGeometryType
OGRwkbGeometryType
Definition: ogr_core.h:312
CPL_UNUSED
#define CPL_UNUSED
Definition: cpl_port.h:1008
OGRPolyhedralSurface::importFromWkb
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrpolyhedralsurface.cpp:216
CPL_WARN_UNUSED_RESULT
#define CPL_WARN_UNUSED_RESULT
Definition: cpl_port.h:999
OGRFeature
Definition: ogr_feature.h:279
OGRPolyhedralSurface::Equals
virtual OGRBoolean Equals(OGRGeometry *) const CPL_OVERRIDE
Returns TRUE if two geometries are equivalent.
Definition: ogrpolyhedralsurface.cpp:704
cpl_port.h
OGRPolygon::closeRings
virtual void closeRings() CPL_OVERRIDE
Force rings to be closed.
Definition: ogrpolygon.cpp:791
EQUALN
#define EQUALN(a, b, n)
Definition: cpl_port.h:620
OGRPolyhedralSurface::~OGRPolyhedralSurface
virtual ~OGRPolyhedralSurface()
Destructor.
Definition: ogrpolyhedralsurface.cpp:74
ogr_api.h
OGRCurvePolygon::Intersects
virtual OGRBoolean Intersects(const OGRGeometry *) const CPL_OVERRIDE
Do these features intersect?
Definition: ogrcurvepolygon.cpp:775
OGRPoint::getZ
double getZ() const
Fetch Z coordinate.
Definition: ogr_geometry.h:366
wkbXDR
@ wkbXDR
Definition: ogr_core.h:481
OGRGeometry::WkbSize
virtual int WkbSize() const =0
Returns size of related binary representation.
OGRGeometry::IsMeasured
OGRBoolean IsMeasured() const
Definition: ogr_geometry.h:187
OGRCurvePolygon::operator=
OGRCurvePolygon & operator=(const OGRCurvePolygon &other)
Assignment operator.
Definition: ogrcurvepolygon.cpp:91
OGRPolyhedralSurface::set3D
virtual void set3D(OGRBoolean bIs3D) CPL_OVERRIDE
Set the type as 3D geometry.
Definition: ogrpolyhedralsurface.cpp:986
OGRCurve
Definition: ogr_geometry.h:433
OGRPoint::getY
double getY() const
Fetch Y coordinate.
Definition: ogr_geometry.h:364
OGRGeometry::getLinearGeometry
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_WARN_UNUSED_RESULT
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrgeometry.cpp:3081
CPLErr
CPLErr
Definition: cpl_error.h:52
OGRPolygon::getGeometryName
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrpolygon.cpp:123
wkbPolyhedralSurfaceZ
@ wkbPolyhedralSurfaceZ
Definition: ogr_core.h:354
OGRPolyhedralSurface::operator=
OGRPolyhedralSurface & operator=(const OGRPolyhedralSurface &other)
Assignment operator.
Definition: ogrpolyhedralsurface.cpp:87
OGRPolyhedralSurface::OGRPolyhedralSurface
OGRPolyhedralSurface()
Create an empty PolyhedralSurface.
Definition: ogrpolyhedralsurface.cpp:47
OGRPolyhedralSurface::hasCurveGeometry
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrpolyhedralsurface.cpp:1047
OGRLinearRing
Definition: ogr_geometry.h:684
OGRERR_NONE
#define OGRERR_NONE
Definition: ogr_core.h:287
CPLStrdup
char * CPLStrdup(const char *)
Definition: cpl_conv.cpp:284
OGRFeatureDefn
Definition: ogr_feature.h:207
OGRRawPoint::y
double y
Definition: ogr_geometry.h:59
wkbLineString
@ wkbLineString
Definition: ogr_core.h:317
OGRPolygon::exportToWkt
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrpolygon.cpp:614
OGRPolygon::OGRPolygon
OGRPolygon()
Create an empty polygon.
Definition: ogrpolygon.cpp:55
OGRPoint::exportToWkb
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrpoint.cpp:375
OGRPolygon
Definition: ogr_geometry.h:1162
OGRPoint::getGeometryType
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrpoint.cpp:222
OGRCurvePolygon
Definition: ogr_geometry.h:1051
OGRPolygon::PointOnSurface
virtual OGRErr PointOnSurface(OGRPoint *poPoint) const CPL_OVERRIDE
This method relates to the SFCOM ISurface::get_PointOnSurface() method.
Definition: ogrpolygon.cpp:758
OGRPoint::clone
virtual OGRGeometry * clone() const CPL_OVERRIDE
Make a copy of this object.
Definition: ogrpoint.cpp:182
OGRCurvePolygon::Contains
virtual OGRBoolean Contains(const OGRGeometry *) const CPL_OVERRIDE
Test for containment.
Definition: ogrcurvepolygon.cpp:752
OGRPolyhedralSurface::setMeasured
virtual void setMeasured(OGRBoolean bIsMeasured) CPL_OVERRIDE
Set the type as Measured.
Definition: ogrpolyhedralsurface.cpp:1001
OGRPolygon::IsPointOnSurface
OGRBoolean IsPointOnSurface(const OGRPoint *) const
Definition: ogrpolygon.cpp:771
OGRPoint::Within
virtual OGRBoolean Within(const OGRGeometry *) const CPL_OVERRIDE
Test for containment.
Definition: ogrpoint.cpp:766
OGRPolyhedralSurface::exportToWkb
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrpolyhedralsurface.cpp:300
OGRPolygon::getCurveGeometry
virtual OGRGeometry * getCurveGeometry(const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return curve version of this geometry.
Definition: ogrpolygon.cpp:835
ogr_core.h
OGRPolyhedralSurface::exportToWkt
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrpolyhedralsurface.cpp:462
CPLFree
#define CPLFree
Definition: cpl_conv.h:81
OGRGeometry::Within
virtual OGRBoolean Within(const OGRGeometry *) const
Test for containment.
Definition: ogrgeometry.cpp:4729
OGRCurvePolygon::IsEmpty
virtual OGRBoolean IsEmpty() const CPL_OVERRIDE
Returns TRUE (non-zero) if the object has no points.
Definition: ogrcurvepolygon.cpp:703
OGRGeometry::setMeasured
virtual void setMeasured(OGRBoolean bIsMeasured)
Add or remove the M coordinate dimension.
Definition: ogrgeometry.cpp:1068
OGRLinearRing::CastToLineString
static OGRLineString * CastToLineString(OGRLinearRing *poLR)
Cast to line string.
Definition: ogrlinearring.cpp:770
OGRwkbVariant
OGRwkbVariant
Definition: ogr_core.h:418
OGRCurvePolygon::stealExteriorRingCurve
OGRCurve * stealExteriorRingCurve()
"Steal" reference to external ring.
Definition: ogrcurvepolygon.cpp:311
OGRPolygon::importFromWkt
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrpolygon.cpp:438
wkbPointM
@ wkbPointM
Definition: ogr_core.h:358
OGRPoint::getX
double getX() const
Fetch X coordinate.
Definition: ogr_geometry.h:362
OGRGeometry::getIsoGeometryType
OGRwkbGeometryType getIsoGeometryType() const
Get the geometry type that conforms with ISO SQL/MM Part3.
Definition: ogrgeometry.cpp:776
OGRSimpleCurve::exportToWkt
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrlinestring.cpp:1797
OGRPoint::operator=
OGRPoint & operator=(const OGRPoint &other)
Assignment operator.
Definition: ogrpoint.cpp:162
STARTS_WITH_CI
#define STARTS_WITH_CI(a, b)
Definition: cpl_port.h:633
CPLE_AppDefined
#define CPLE_AppDefined
Definition: cpl_error.h:100
GUInt32
unsigned int GUInt32
Definition: cpl_port.h:199

Generated for GDAL by doxygen 1.8.17.