30 #ifndef OGRLAYERDECORATOR_H_INCLUDED
31 #define OGRLAYERDECORATOR_H_INCLUDED
37 class CPL_DLL OGRLayerDecorator :
public OGRLayer
47 OGRLayerDecorator(
OGRLayer* poDecoratedLayer,
49 virtual ~OGRLayerDecorator();
54 double dfMaxX,
double dfMaxY )
override;
57 double dfMaxX,
double dfMaxY )
override;
69 virtual const char *
GetName()
override;
76 virtual OGRErr GetExtent(
int iGeomField, OGREnvelope *psExtent,
int bForce = TRUE)
override;
77 virtual OGRErr GetExtent(OGREnvelope *psExtent,
int bForce = TRUE)
override;
82 int bApproxOK = TRUE )
override;
88 int bApproxOK = TRUE )
override;
106 virtual char **GetMetadata(
const char * pszDomain =
"" )
override;
107 virtual CPLErr SetMetadata(
char ** papszMetadata,
108 const char * pszDomain =
"" )
override;
109 virtual const char *GetMetadataItem(
const char * pszName,
110 const char * pszDomain =
"" )
override;
111 virtual CPLErr SetMetadataItem(
const char * pszName,
112 const char * pszValue,
113 const char * pszDomain =
"" )
override;
115 OGRLayer* GetBaseLayer()
const {
return m_poDecoratedLayer; }
120 #endif // OGRLAYERDECORATOR_H_INCLUDED
virtual const char * GetName()
Return the layer name.
Definition: ogrlayer.cpp:1728
void SetAxisMappingStrategy(OSRAxisMappingStrategy)
Set the data axis to CRS axis mapping strategy.
Definition: ogrspatialreference.cpp:10635
virtual OGRGeometry * UnionCascaded() const CPL_WARN_UNUSED_RESULT
Compute union using cascading.
Definition: ogrgeometry.cpp:4233
void OGR_GFld_SetNullable(OGRGeomFieldDefnH hDefn, int)
Set whether this geometry field can receive null values.
Definition: ogrgeomfielddefn.cpp:645
virtual OGRLinearRing * getInteriorRing(int)
Fetch reference to indicated internal ring.
Definition: ogrpolygon.cpp:215
virtual OGRErr CreateField(OGRFieldDefn *poField, int bApproxOK=TRUE)
Create a new field on a layer.
Definition: ogrlayer.cpp:665
void setPoint(int, OGRPoint *)
Set the location of a vertex in line string.
Definition: ogrlinestring.cpp:536
OGRBoolean Is3D() const
Definition: ogr_geometry.h:363
#define CPL_LSBWORD32(x)
Definition: cpl_port.h:826
virtual OGRBoolean IsEmpty() const =0
Returns TRUE (non-zero) if the object has no points.
OGRMultiPolygon * toMultiPolygon()
Definition: ogr_geometry.h:720
void SetSpatialRef(OGRSpatialReference *poSRSIn)
Set the spatial reference of this field.
Definition: ogrgeomfielddefn.cpp:489
virtual void setCoordinateDimension(int nDimension)
Set the coordinate dimension.
Definition: ogrgeometry.cpp:1002
@ wkbTINM
Definition: ogr_core.h:378
virtual OGRErr addRingDirectly(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:419
OGRGeometryCollection * toUpperClass()
Definition: ogr_geometry.h:2788
Definition: ogr_geometry.h:2669
@ wkbSurfaceM
Definition: ogr_core.h:376
virtual OGRErr addGeometryDirectly(OGRGeometry *)
Add a geometry directly to the container.
Definition: ogrgeometrycollection.cpp:374
OGRGeometryH OGR_G_DelaunayTriangulation(OGRGeometryH hThis, double dfTolerance, int bOnlyEdges) CPL_WARN_UNUSED_RESULT
Return a Delaunay triangulation of the vertices of the geometry.
Definition: ogrgeometry.cpp:5583
OGRCoordinateTransformation * OGRCreateCoordinateTransformation(const OGRSpatialReference *poSource, const OGRSpatialReference *poTarget)
Definition: ogrct.cpp:465
static OGRGeometry * forceToLineString(OGRGeometry *, bool bOnlyInOrder=true)
Convert to line string.
Definition: ogrgeometryfactory.cpp:4047
static OGRLineString * CastToLineString(OGRCurve *poCurve)
Cast to linestring.
Definition: ogrcurve.cpp:353
virtual OGRErr ReorderFields(int *panMap)
Reorder all the fields of a layer.
Definition: ogrlayer.cpp:733
virtual OGRBoolean isCompatibleSubType(OGRwkbGeometryType) const
Definition: ogrgeometrycollection.cpp:1281
double getX(int i) const
Get X at vertex.
Definition: ogr_geometry.h:1161
@ wkbPointZM
Definition: ogr_core.h:381
virtual double get_Area() const =0
Get the area of the surface object.
#define CPL_SWAP32(x)
Definition: cpl_port.h:719
@ wkbCurvePolygonZM
Definition: ogr_core.h:390
virtual OGRBoolean Equals(const OGRGeometry *) const override
Returns TRUE if two geometries are equivalent.
Definition: ogrgeometrycollection.cpp:1025
Definition: ogr_geometry.h:1242
void setNumPoints(int nNewPointCount, int bZeroizeNewContent=TRUE)
Set number of points in geometry.
Definition: ogrlinestring.cpp:435
int getNumGeometries() const
Fetch number of geometries in PolyhedralSurface.
Definition: ogrpolyhedralsurface.cpp:909
virtual OGRBoolean Contains(const OGRGeometry *) const
Test for containment.
Definition: ogrgeometry.cpp:4909
int OGR_G_CoordinateDimension(OGRGeometryH)
Get the dimension of the coordinates in this geometry.
Definition: ogrgeometry.cpp:934
OGRLinearRing * stealExteriorRing()
"Steal" reference to external polygon ring.
Definition: ogrpolygon.cpp:190
OGRwkbGeometryType OGR_L_GetGeomType(OGRLayerH)
Return the layer geometry type.
Definition: ogrlayer.cpp:1770
Definition: ogr_geometry.h:2312
void getPoint(int, OGRPoint *) const
Fetch a point in line string.
Definition: ogrlinestring.cpp:313
unsigned char GByte
Definition: cpl_port.h:215
OGRErr Intersection(OGRLayer *pLayerMethod, OGRLayer *pLayerResult, char **papszOptions=nullptr, GDALProgressFunc pfnProgress=nullptr, void *pProgressArg=nullptr)
Intersection of two layers.
Definition: ogrlayer.cpp:2062
static OGRMultiPolygon * CastToMultiPolygon(OGRPolyhedralSurface *poPS)
Casts the OGRPolyhedralSurface to an OGRMultiPolygon.
Definition: ogrpolyhedralsurface.cpp:820
OGRGeometryH OGR_G_Intersection(OGRGeometryH, OGRGeometryH) CPL_WARN_UNUSED_RESULT
Compute intersection.
Definition: ogrgeometry.cpp:4083
int OGR_G_IsMeasured(OGRGeometryH)
See whether this geometry is measured.
Definition: ogrgeometry.cpp:976
OGRErr addGeometryDirectly(OGRGeometry *poNewGeom)
Add a geometry directly to the container.
Definition: ogrpolyhedralsurface.cpp:877
#define CPLE_UserInterrupt
Definition: cpl_error.h:115
OGRGeometryCollection * toUpperClass()
Definition: ogr_geometry.h:2635
void OGR_G_FlattenTo2D(OGRGeometryH)
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrgeometry.cpp:2763
OGRErr Erase(OGRLayer *pLayerMethod, OGRLayer *pLayerResult, char **papszOptions=nullptr, GDALProgressFunc pfnProgress=nullptr, void *pProgressArg=nullptr)
Remove areas that are covered by the method layer.
Definition: ogrlayer.cpp:4079
OGRGeometryH OGR_G_UnionCascaded(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Compute union using cascading.
Definition: ogrgeometry.cpp:4284
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Definition: ogr_core.h:295
OGRGeometry * StealGeometry() CPL_WARN_UNUSED_RESULT
Take away ownership of geometry.
Definition: ogrfeature.cpp:498
virtual int getCoordinateDimension() const
Get the dimension of the coordinates in this object.
Definition: ogrgeometry.cpp:859
void OGR_GFld_SetType(OGRGeomFieldDefnH, OGRwkbGeometryType)
Set the geometry type of this field. This should never be done to an OGRGeomFieldDefn that is already...
Definition: ogrgeomfielddefn.cpp:341
int OGR_L_TestCapability(OGRLayerH, const char *)
Test if this layer supported the named capability.
Definition: ogrlayer.cpp:1067
OGRErr OGR_L_CreateFeature(OGRLayerH, OGRFeatureH) CPL_WARN_UNUSED_RESULT
Create and write a new feature within a layer.
Definition: ogrlayer.cpp:647
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6564
@ wkbMultiCurveZM
Definition: ogr_core.h:391
#define VALIDATE_POINTER0(ptr, func)
Definition: cpl_error.h:267
OGRErr OGR_L_GetExtentEx(OGRLayerH, int iGeomField, OGREnvelope *psExtent, int bForce)
Fetch the extent of this layer, on the specified geometry field.
Definition: ogrlayer.cpp:320
virtual OGRErr DeleteField(int iField)
Delete an existing field on a layer.
Definition: ogrlayer.cpp:701
static OGRMultiLineString * CastToMultiLineString(OGRMultiCurve *poMC)
Cast to multi line string.
Definition: ogrmulticurve.cpp:212
virtual void closeRings()
Force rings to be closed.
Definition: ogrgeometry.cpp:5045
virtual OGRBoolean Disjoint(const OGRGeometry *) const
Test for disjointness.
Definition: ogrgeometry.cpp:4582
Definition: ogr_geometry.h:1581
virtual int getNumPoints() const override
Fetch vertex count.
Definition: ogr_geometry.h:1159
@ wkbMultiLineStringZM
Definition: ogr_core.h:385
virtual OGRwkbGeometryType getGeometryType() const =0
Fetch geometry type.
virtual void swapXY()
Swap x and y coordinates.
Definition: ogrgeometry.cpp:5735
int OGR_G_Is3D(OGRGeometryH)
See whether this geometry has Z coordinates.
Definition: ogrgeometry.cpp:955
static OGRGeometry * organizePolygons(OGRGeometry **papoPolygons, int nPolygonCount, int *pbResultValidGeometry, const char **papszOptions=nullptr)
Organize polygons based on geometries.
Definition: ogrgeometryfactory.cpp:1410
void Release()
Decrements the reference count by one, and destroy if zero.
Definition: ogrspatialreference.cpp:931
OGRErr SetWellKnownGeogCS(const char *)
Set a GeogCS based on well known name.
Definition: ogrspatialreference.cpp:2953
bool LoadMemory(const std::string &osStr)
Definition: cpl_json.cpp:199
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const override
Returns if this geometry is or has curve geometry.
Definition: ogrgeometrycollection.cpp:1292
OGRErr OGR_G_ExportToIsoWkb(OGRGeometryH, OGRwkbByteOrder, unsigned char *)
Convert a geometry into SFSQL 1.2 / ISO SQL/MM Part 3 well known binary format.
Definition: ogrgeometry.cpp:1529
OGRCurve * toCurve()
Definition: ogr_geometry.h:538
@ wkbPoint
Definition: ogr_core.h:321
virtual double get_Area() const override
Get the area of the surface object.
Definition: ogrcurvepolygon.cpp:668
virtual OGRFeature * GetNextFeature() CPL_WARN_UNUSED_RESULT=0
Fetch the next available feature from this layer.
virtual void ResetReading()=0
Reset feature reading to start on the first feature.
CPLSTRING_METHOD_DLL CPLString & Printf(const char *pszFormat,...)
Definition: cplstring.cpp:59
@ wkbCurvePolygonZ
Definition: ogr_core.h:354
static OGRGeometryCollection * CastToGeometryCollection(OGRGeometryCollection *poSrc)
Cast to geometry collection.
Definition: ogrgeometrycollection.cpp:1396
Definition: ogrgeometryfactory.cpp:1307
@ wkbMultiSurfaceZM
Definition: ogr_core.h:392
@ wkbTriangleZ
Definition: ogr_core.h:361
#define VSI_REALLOC_VERBOSE(pOldPtr, nNewSize)
Definition: cpl_vsi.h:288
OGRErr OGR_L_ReorderField(OGRLayerH, int iOldFieldPos, int iNewFieldPos)
Reorder an existing field on a layer.
Definition: ogrlayer.cpp:824
void SetIgnored(int bIgnoreIn)
Set whether this field should be omitted when fetching features.
Definition: ogr_feature.h:212
OGRFeatureDefnH OGR_L_GetLayerDefn(OGRLayerH)
Fetch the schema information for this layer.
Definition: ogrlayer.cpp:993
Definition: ogr_featurestyle.h:84
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:6500
virtual OGRPolygon * CurvePolyToPoly(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const
Return a polygon from a curve polygon.
Definition: ogrcurvepolygon.cpp:569
virtual void set3D(OGRBoolean bIs3D)
Add or remove the Z coordinate dimension.
Definition: ogrgeometry.cpp:1025
@ wkbCompoundCurveZM
Definition: ogr_core.h:389
OGRGeometryH OGR_G_Boundary(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Compute boundary.
Definition: ogrgeometry.cpp:3837
@ wkbMultiSurfaceM
Definition: ogr_core.h:374
static OGRMultiSurface * CastToMultiSurface(OGRMultiPolygon *poMP)
Cast to multisurface.
Definition: ogrmultipolygon.cpp:163
Definition: ogr_geometry.h:2818
int IsSame(const OGRGeomFieldDefn *) const
Test if the geometry field definition is identical to the other one.
Definition: ogrgeomfielddefn.cpp:539
int getNumGeometries() const
Fetch number of geometries in container.
Definition: ogrgeometrycollection.cpp:251
@ wkbMultiPolygon
Definition: ogr_core.h:329
OGRErr OGR_L_SyncToDisk(OGRLayerH)
Flush pending changes to disk.
Definition: ogrlayer.cpp:1530
FeatureIterator end()
Definition: ogrlayer.cpp:4364
virtual OGRGeometry * getCurveGeometry(const char *const *papszOptions=nullptr) const CPL_WARN_UNUSED_RESULT
Return curve version of this geometry.
Definition: ogrgeometry.cpp:3157
void * CPLCalloc(size_t, size_t)
Definition: cpl_conv.cpp:138
Definition: ogrlayer.cpp:4274
OGRMultiSurface * toMultiSurface()
Definition: ogr_geometry.h:748
OGRGeometryH OGR_G_Simplify(OGRGeometryH hThis, double tolerance) CPL_WARN_UNUSED_RESULT
Compute a simplified geometry.
Definition: ogrgeometry.cpp:5404
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6352
OGRFeatureH OGR_L_GetFeature(OGRLayerH, GIntBig) CPL_WARN_UNUSED_RESULT
Fetch a feature by its identifier.
Definition: ogrlayer.cpp:481
void SetIgnored(int bIgnoreIn)
Set whether this field should be omitted when fetching features.
Definition: ogr_feature.h:142
OGRGeometryH OGR_G_ForceTo(OGRGeometryH hGeom, OGRwkbGeometryType eTargetType, char **papszOptions) CPL_WARN_UNUSED_RESULT
Convert to another geometry type.
Definition: ogrgeometryfactory.cpp:4606
@ wkbMultiPoint25D
Definition: ogr_core.h:402
void OGR_L_SetSpatialFilterRect(OGRLayerH, double, double, double, double)
Set a new rectangular spatial filter.
Definition: ogrlayer.cpp:1218
static OGRFeatureH ToHandle(OGRFeature *poFeature)
Definition: ogr_feature.h:757
static OGRGeometry * FromHandle(OGRGeometryH hGeom)
Definition: ogr_geometry.h:517
virtual OGRSpatialReference * GetSpatialRef()
Fetch the spatial reference system for this layer.
Definition: ogrlayer.cpp:1037
OGRErr OGR_L_SetFeature(OGRLayerH, OGRFeatureH) CPL_WARN_UNUSED_RESULT
Rewrite an existing feature.
Definition: ogrlayer.cpp:608
virtual OGRGeometry * SymDifference(const OGRGeometry *) const CPL_WARN_UNUSED_RESULT
Compute symmetric difference.
Definition: ogrgeometry.cpp:4442
@ wkbNDR
Definition: ogr_core.h:492
virtual int GetGeomFieldIndex(const char *) const
Find geometry field by name.
Definition: ogrfeaturedefn.cpp:916
Definition: ogr_geometry.h:2096
OGRErr OGR_L_GetExtent(OGRLayerH, OGREnvelope *, int)
Fetch the extent of this layer.
Definition: ogrlayer.cpp:303
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const
Returns if this geometry is or has curve geometry.
Definition: ogrgeometry.cpp:3089
@ wkbVariantOldOgc
Definition: ogr_core.h:425
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:6754
const char * CSLFetchNameValueDef(CSLConstList papszStrList, const char *pszName, const char *pszDefault)
Definition: cpl_string.cpp:1646
OGRGeometryH OGR_G_ForceToMultiLineString(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Convert to multilinestring.
Definition: ogrgeometryfactory.cpp:1295
Definition: ogr_spatialref.h:156
@ wkbCompoundCurve
Definition: ogr_core.h:335
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known text format.
Definition: ogrgeometrycollection.cpp:805
OGRGeometry * getGeometryRef(int)
Fetch geometry from container.
Definition: ogrgeometrycollection.cpp:276
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6669
int OGR_G_Equals(OGRGeometryH, OGRGeometryH)
Returns TRUE if two geometries are equivalent.
Definition: ogrgeometry.cpp:1192
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2645
void OGR_G_AssignSpatialReference(OGRGeometryH, OGRSpatialReferenceH)
Assign spatial reference to this object.
Definition: ogrgeometry.cpp:454
Definition: ogr_geometry.h:2397
virtual GIntBig GetFeatureCount(int bForce=TRUE)
Fetch the feature count in this layer.
Definition: ogrlayer.cpp:173
char * OGR_G_ExportToGMLEx(OGRGeometryH, char **papszOptions) CPL_WARN_UNUSED_RESULT
Convert a geometry into GML format.
Definition: ogr2gmlgeometry.cpp:1266
OGRGeometryH OGR_G_SymDifference(OGRGeometryH, OGRGeometryH) CPL_WARN_UNUSED_RESULT
Compute symmetric difference.
Definition: ogrgeometry.cpp:4528
@ wkbPolygon25D
Definition: ogr_core.h:401
Definition: ogrlayer.cpp:39
@ wkbPolygonZM
Definition: ogr_core.h:383
virtual char * exportToJson() const
Convert a geometry into GeoJSON format.
Definition: ogrgeometry.cpp:2851
OGRSpatialReference * Clone() const
Make a duplicate of this OGRSpatialReference.
Definition: ogrspatialreference.cpp:1187
void OGR_G_SetCoordinateDimension(OGRGeometryH, int)
Set the coordinate dimension.
Definition: ogrgeometry.cpp:1077
virtual const char * getGeometryName() const override
Fetch WKT name for geometry type.
Definition: ogrgeometrycollection.cpp:232
OGRTriangulatedSurface * toTriangulatedSurface()
Definition: ogr_geometry.h:776
OGRwkbGeometryType OGR_GT_SetModifier(OGRwkbGeometryType eType, int bSetZ, int bSetM)
Returns a XY, XYZ, XYM or XYZM geometry type depending on parameter.
Definition: ogrgeometry.cpp:6473
int OGR_G_Within(OGRGeometryH, OGRGeometryH)
Test for containment.
Definition: ogrgeometry.cpp:4874
@ wkbVariantPostGIS1
Definition: ogr_core.h:427
int OGR_G_IsEmpty(OGRGeometryH)
Test if the geometry is empty.
Definition: ogrgeometry.cpp:2020
void OGR_L_SetSpatialFilterEx(OGRLayerH, int iGeomField, OGRGeometryH hGeom)
Set a new spatial filter.
Definition: ogrlayer.cpp:1166
virtual OGRErr DeleteFeature(GIntBig nFID) CPL_WARN_UNUSED_RESULT
Delete feature from layer.
Definition: ogrlayer.cpp:1547
virtual void SetStyleTable(OGRStyleTable *poStyleTable)
Set layer style table.
Definition: ogrlayer.cpp:1674
@ wkbPolygonM
Definition: ogr_core.h:365
static OGRPolyhedralSurface * CastToPolyhedralSurface(OGRTriangulatedSurface *poTS)
Casts the OGRTriangulatedSurface to an OGRPolyhedralSurface.
Definition: ogrtriangulatedsurface.cpp:255
OGRGeometryH OGR_G_Union(OGRGeometryH, OGRGeometryH) CPL_WARN_UNUSED_RESULT
Compute union.
Definition: ogrgeometry.cpp:4200
Definition: ogr_geometry.h:286
int IsSame(const OGRSpatialReference *) const
Do these two spatial references describe the same system ?
Definition: ogrspatialreference.cpp:8157
@ wkbTriangleM
Definition: ogr_core.h:379
Definition: ogr_geometry.h:2591
virtual const char * GetFIDColumn()
This method returns the name of the underlying database column being used as the FID column,...
Definition: ogrlayer.cpp:1597
virtual OGRBoolean IsValid() const
Test if the geometry is valid.
Definition: ogrgeometry.cpp:2047
virtual const char * GetName() const
Get name of this OGRFeatureDefn.
Definition: ogrfeaturedefn.cpp:249
void OGR_GFld_SetSpatialRef(OGRGeomFieldDefnH, OGRSpatialReferenceH hSRS)
Set the spatial reference of this field.
Definition: ogrgeomfielddefn.cpp:517
OGRErr Update(OGRLayer *pLayerMethod, OGRLayer *pLayerResult, char **papszOptions=nullptr, GDALProgressFunc pfnProgress=nullptr, void *pProgressArg=nullptr)
Update this layer with features from the update layer.
Definition: ogrlayer.cpp:3528
virtual OGRErr exportToWkt(char **, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known text format.
Definition: ogrmultipolygon.cpp:133
virtual const char * getGeometryName() const =0
Fetch WKT name for geometry type.
void OGR_G_GetEnvelope(OGRGeometryH, OGREnvelope *)
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrgeometry.cpp:1297
char * OGR_G_ExportToJson(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Convert a geometry into GeoJSON format.
Definition: ogrgeojsonwriter.cpp:1412
@ wkbCircularString
Definition: ogr_core.h:333
static OGRSpatialReference * FromHandle(OGRSpatialReferenceH hSRS)
Definition: ogr_spatialref.h:663
Definition: ogrsf_frmts.h:70
Convenient string class based on std::string.
Definition: cpl_string.h:329
virtual OGRBoolean IsSimple() const
Test if the geometry is simple.
Definition: ogrgeometry.cpp:2154
static OGRGeomFieldDefnH ToHandle(OGRGeomFieldDefn *poGeomFieldDefn)
Definition: ogr_feature.h:223
virtual OGRBoolean Crosses(const OGRGeometry *) const
Test for crossing.
Definition: ogrgeometry.cpp:4730
OGRErr importFromWkb(const GByte *, int=-1, OGRwkbVariant=wkbVariantOldOgc)
Assign geometry from well known binary data.
Definition: ogrgeometry.cpp:1368
virtual int WkbSize() const override
Returns size of related binary representation.
Definition: ogrgeometrycollection.cpp:452
@ wkbMultiPolygonZM
Definition: ogr_core.h:386
Definition: ogr_geometry.h:2233
virtual OGRGeometry * Simplify(double dTolerance) const CPL_WARN_UNUSED_RESULT
Simplify the geometry.
Definition: ogrgeometry.cpp:5354
Definition: ogr_geometry.h:810
static OGRSpatialReferenceH ToHandle(OGRSpatialReference *poSRS)
Definition: ogr_spatialref.h:657
OGRCurve * stealCurve(int)
"Steal" reference to curve.
Definition: ogrcompoundcurve.cpp:497
OGRErr SymDifference(OGRLayer *pLayerMethod, OGRLayer *pLayerResult, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg)
Symmetrical difference of two layers.
Definition: ogrlayer.cpp:2838
@ wkbCurveM
Definition: ogr_core.h:375
int Reference()
Increments the reference count by one.
Definition: ogrspatialreference.cpp:844
static OGRGeometry * forceToMultiPolygon(OGRGeometry *)
Convert to multipolygon.
Definition: ogrgeometryfactory.cpp:815
void OGR_L_SetSpatialFilter(OGRLayerH, OGRGeometryH)
Set a new spatial filter.
Definition: ogrlayer.cpp:1148
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const CPL_WARN_UNUSED_RESULT
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrgeometry.cpp:3122
double getY(int i) const
Get Y at vertex.
Definition: ogr_geometry.h:1162
virtual const char * GetGeometryColumn()
This method returns the name of the underlying database column being used as the geometry column,...
Definition: ogrlayer.cpp:1624
virtual OGRGeometry * GetSpatialFilter()
This method returns the current spatial filter for this layer.
Definition: ogrlayer.cpp:1085
void SetType(OGRwkbGeometryType eTypeIn)
Set the geometry type of this field. This should never be done to an OGRGeomFieldDefn that is already...
Definition: ogrgeomfielddefn.cpp:319
virtual OGRBoolean IsRing() const
Test if the geometry is a ring.
Definition: ogrgeometry.cpp:2226
@ wkbPolyhedralSurfaceZM
Definition: ogr_core.h:395
OGRGeometry & operator=(const OGRGeometry &other)
Assignment operator.
Definition: ogrgeometry.cpp:137
virtual void SetSpatialFilter(OGRGeometry *)
Set a new spatial filter.
Definition: ogrlayer.cpp:1113
static OGRGeometry * createFromGEOS(GEOSContextHandle_t hGEOSCtxt, GEOSGeom)
Definition: ogrgeometryfactory.cpp:2059
OGRErr OGR_L_CommitTransaction(OGRLayerH) CPL_WARN_UNUSED_RESULT
For datasources which support transactions, CommitTransaction commits a transaction.
Definition: ogrlayer.cpp:949
double CPLAtofM(const char *)
Definition: cpl_strtod.cpp:142
static OGRGeometry * forceToPolygon(OGRGeometry *)
Convert to polygon.
Definition: ogrgeometryfactory.cpp:674
const char * GetNameRef() const
Fetch name of this field.
Definition: ogr_feature.h:203
int IsIgnored() const
Return whether this field should be omitted when fetching features.
Definition: ogr_feature.h:211
virtual OGRErr importFromWkt(const char **ppszInput)=0
Assign geometry from well known text data.
OGRGeometry * SimplifyPreserveTopology(double dTolerance) const CPL_WARN_UNUSED_RESULT
Simplify the geometry while preserving topology.
Definition: ogrgeometry.cpp:5433
@ wkbPoint25D
Definition: ogr_core.h:399
@ wkbSurfaceZM
Definition: ogr_core.h:394
virtual OGRGeometry * Buffer(double dfDist, int nQuadSegs=30) const CPL_WARN_UNUSED_RESULT
Compute buffer of geometry.
Definition: ogrgeometry.cpp:3896
@ wkbCircularStringZM
Definition: ogr_core.h:388
OGRErr ReorderField(int iOldFieldPos, int iNewFieldPos)
Reorder an existing field on a layer.
Definition: ogrlayer.cpp:765
std::unique_ptr< OGRFeature, OGRFeatureUniquePtrDeleter > OGRFeatureUniquePtr
Definition: ogr_feature.h:780
void * OGRFeatureH
Definition: ogr_api.h:302
#define EQUAL(a, b)
Definition: cpl_port.h:569
void * OGRStyleTableH
Definition: ogr_api.h:304
#define wkbHasZ(x)
Definition: ogr_core.h:446
OGRGeometryH OGR_G_MakeValid(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Attempts to make an invalid geometry valid without losing vertices.
Definition: ogrgeometry.cpp:3624
const char * GetNameRef() const
Fetch name of this field.
Definition: ogr_feature.h:113
@ wkbCircularStringZ
Definition: ogr_core.h:352
int OGRBoolean
Definition: ogr_core.h:306
@ wkbCurve
Definition: ogr_core.h:341
void * OGRFeatureDefnH
Definition: ogr_api.h:300
virtual OGRGeometry * Intersection(const OGRGeometry *) const CPL_WARN_UNUSED_RESULT
Compute intersection.
Definition: ogrgeometry.cpp:4000
OGRErr OGR_L_RollbackTransaction(OGRLayerH)
For datasources which support transactions, RollbackTransaction will roll back a datasource to its st...
Definition: ogrlayer.cpp:976
int GetRefCount() const
Fetch reference count.
Definition: ogrlayer.cpp:151
virtual OGRFeatureDefn * GetLayerDefn()=0
Fetch the schema information for this layer.
virtual OGRGeometry * Union(const OGRGeometry *) const CPL_WARN_UNUSED_RESULT
Compute union.
Definition: ogrgeometry.cpp:4119
@ wkbMultiPointZM
Definition: ogr_core.h:384
virtual OGRFieldDefn * GetFieldDefn(int i)
Fetch field definition.
Definition: ogrfeaturedefn.cpp:330
OGRErr OGR_G_CreateFromFgf(const void *, OGRSpatialReferenceH, OGRGeometryH *, int, int *)
Create a geometry object of the appropriate type from its FGF (FDO Geometry Format) binary representa...
Definition: ogrgeometryfactory.cpp:2499
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2682
#define wkbSetM(x)
Definition: ogr_core.h:461
double x
Definition: ogr_geometry.h:73
void setX(double xIn)
Assign point X coordinate.
Definition: ogr_geometry.h:866
virtual OGRErr StartTransaction() CPL_WARN_UNUSED_RESULT
For datasources which support transactions, StartTransaction creates a transaction.
Definition: ogrlayer.cpp:912
@ wkbTINZM
Definition: ogr_core.h:396
virtual const char * getGeometryName() const override
Fetch WKT name for geometry type.
Definition: ogrlinestring.cpp:2799
OGRGeometryH OGR_G_ApproximateArcAngles(double dfCenterX, double dfCenterY, double dfZ, double dfPrimaryRadius, double dfSecondaryAxis, double dfRotation, double dfStartAngle, double dfEndAngle, double dfMaxAngleStepSizeDegrees) CPL_WARN_UNUSED_RESULT
Definition: ogrgeometryfactory.cpp:4008
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:6732
struct OGRGeomFieldDefnHS * OGRGeomFieldDefnH
Definition: ogr_api.h:307
static OGRGeometry * transformWithOptions(const OGRGeometry *poSrcGeom, OGRCoordinateTransformation *poCT, char **papszOptions, const TransformWithOptionsCache &cache=TransformWithOptionsCache())
Definition: ogrgeometryfactory.cpp:3709
#define OLCCurveGeometries
Definition: ogr_core.h:768
#define wkbFlatten(x)
Definition: ogr_core.h:440
#define CPL_SWAP64PTR(x)
Definition: cpl_port.h:761
@ wkbLineStringZM
Definition: ogr_core.h:382
static OGRLineString * curveToLineString(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, int bHasZ, double dfMaxAngleStepSizeDegrees, const char *const *papszOptions=nullptr)
Converts an arc circle into an approximate line string.
Definition: ogrgeometryfactory.cpp:4909
OGRErr OGR_L_SetIgnoredFields(OGRLayerH, const char **)
Set which fields can be omitted when retrieving features from the layer.
Definition: ogrlayer.cpp:1847
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const =0
Convert a geometry into well known binary format.
static OGRGeometry * forceTo(OGRGeometry *poGeom, OGRwkbGeometryType eTargetType, const char *const *papszOptions=nullptr)
Convert to another geometry type.
Definition: ogrgeometryfactory.cpp:4250
OGRStyleTableH OGR_L_GetStyleTable(OGRLayerH)
Definition: ogrlayer.cpp:1686
OGRBoolean isPointOnRingBoundary(const OGRPoint *pt, int bTestEnvelope=TRUE) const
Definition: ogrlinearring.cpp:673
#define CPLAssert(expr)
Definition: cpl_error.h:186
virtual OGRGeometry * clone() const override
Make a copy of this object.
Definition: ogrgeometrycollection.cpp:151
OGRErr OGR_G_CreateFromWkb(const void *, OGRSpatialReferenceH, OGRGeometryH *, int)
Create a geometry object of the appropriate type from its well known binary representation.
Definition: ogrgeometryfactory.cpp:274
Definition: ogr_geometry.h:63
const char * OGR_GFld_GetNameRef(OGRGeomFieldDefnH)
Fetch name of this field.
Definition: ogrgeomfielddefn.cpp:241
Definition: ogr_geometry.h:2748
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6446
OGRErr OGR_L_DeleteField(OGRLayerH, int iField)
Delete an existing field on a layer.
Definition: ogrlayer.cpp:716
virtual OGRGeometry * clone() const CPL_WARN_UNUSED_RESULT=0
Make a copy of this object.
OGRErr OGR_L_DeleteFeature(OGRLayerH, GIntBig) CPL_WARN_UNUSED_RESULT
Delete feature from layer.
Definition: ogrlayer.cpp:1556
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant eWkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known text format.
Definition: ogrcurvepolygon.cpp:539
virtual void swapXY() override
Swap x and y coordinates.
Definition: ogrgeometrycollection.cpp:1262
int OGR_GFld_IsIgnored(OGRGeomFieldDefnH hDefn)
Return whether this field should be omitted when fetching features.
Definition: ogrgeomfielddefn.cpp:380
virtual void flattenTo2D()=0
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
virtual void StartPoint(OGRPoint *) const =0
Return the curve start point.
void OGR_L_ResetReading(OGRLayerH)
Reset feature reading to start on the first feature.
Definition: ogrlayer.cpp:1473
virtual OGRErr transform(OGRCoordinateTransformation *poCT) override
Apply arbitrary coordinate transformation to geometry.
Definition: ogrgeometrycollection.cpp:1056
void OGR_G_DestroyGeometry(OGRGeometryH)
Destroy geometry object.
Definition: ogrgeometryfactory.cpp:648
void * OGRSpatialReferenceH
Definition: ogr_api.h:74
int OGR_G_Disjoint(OGRGeometryH, OGRGeometryH)
Test for disjointness.
Definition: ogrgeometry.cpp:4621
OGRMultiCurve * toMultiCurve()
Definition: ogr_geometry.h:734
virtual OGRErr RollbackTransaction()
For datasources which support transactions, RollbackTransaction will roll back a datasource to its st...
Definition: ogrlayer.cpp:966
virtual OGRLinearRing * stealInteriorRing(int)
"Steal" reference to indicated interior ring.
Definition: ogrpolygon.cpp:263
virtual GEOSGeom exportToGEOS(GEOSContextHandle_t hGEOSCtxt) const CPL_WARN_UNUSED_RESULT
Definition: ogrgeometry.cpp:2959
virtual OGRSpatialReference * GetSpatialRef() const
Fetch spatial reference system of this field.
Definition: ogrgeomfielddefn.cpp:438
int OGR_L_FindFieldIndex(OGRLayerH, const char *, int bExactMatch)
Find the index of field in a layer.
Definition: ogrlayer.cpp:1011
virtual void assignSpatialReference(OGRSpatialReference *poSR) override
Assign spatial reference to this object.
Definition: ogrgeometrycollection.cpp:1237
OGRGeometryCollection()
Create an empty geometry collection.
virtual OGRGeometry * getCurveGeometry(const char *const *papszOptions=nullptr) const override
Return curve version of this geometry.
Definition: ogrgeometrycollection.cpp:1331
virtual OGRErr addGeometry(const OGRGeometry *)
Add a new geometry to a collection.
Definition: ogrpolyhedralsurface.cpp:841
OGRErr OGR_L_SymDifference(OGRLayerH, OGRLayerH, OGRLayerH, char **, GDALProgressFunc, void *)
Symmetrical difference of two layers.
Definition: ogrlayer.cpp:3098
void OGR_GFld_SetName(OGRGeomFieldDefnH, const char *)
Reset the name of this field.
Definition: ogrgeomfielddefn.cpp:202
const char * OGR_L_GetName(OGRLayerH)
Return the layer name.
Definition: ogrlayer.cpp:1738
Definition: ogr_geometry.h:1728
bool CPLTestBool(const char *pszValue)
Definition: cpl_string.cpp:1526
virtual OGRFeature * GetFeature(GIntBig nFID) CPL_WARN_UNUSED_RESULT
Fetch a feature by its identifier.
Definition: ogrlayer.cpp:447
virtual double get_Length() const
Compute the length of a multicurve.
Definition: ogrgeometrycollection.cpp:1155
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const override
Returns if this geometry is or has curve geometry.
Definition: ogrmultisurface.cpp:277
virtual int getNumPoints() const =0
Return the number of points of a curve geometry.
virtual void set3D(OGRBoolean bIs3D) override
Add or remove the Z coordinate dimension.
Definition: ogrgeometrycollection.cpp:1119
OGRwkbByteOrder
Definition: ogr_core.h:489
char * OGR_G_ExportToKML(OGRGeometryH, const char *pszAltitudeMode) CPL_WARN_UNUSED_RESULT
Convert a geometry into KML format.
Definition: ogr2kmlgeometry.cpp:502
int OGR_G_IsValid(OGRGeometryH)
Test if the geometry is valid.
Definition: ogrgeometry.cpp:2127
void * OGRCoordinateTransformationH
Definition: ogr_api.h:76
virtual OGRGeometry * Boundary() const CPL_WARN_UNUSED_RESULT
Compute boundary.
Definition: ogrgeometry.cpp:3769
OGRErr OGR_L_StartTransaction(OGRLayerH) CPL_WARN_UNUSED_RESULT
For datasources which support transactions, StartTransaction creates a transaction.
Definition: ogrlayer.cpp:922
OGRPolyhedralSurface * toUpperClass()
Definition: ogr_geometry.h:2560
static OGRGeometry * forceToMultiLineString(OGRGeometry *)
Convert to multilinestring.
Definition: ogrgeometryfactory.cpp:1087
virtual OGRGeomFieldDefn * GetGeomFieldDefn(int i)
Fetch geometry field definition.
Definition: ogrfeaturedefn.cpp:681
OGRLinearRing * getExteriorRing()
Fetch reference to external polygon ring.
Definition: ogrpolygon.cpp:145
void OGR_L_SetStyleTable(OGRLayerH, OGRStyleTableH)
Definition: ogrlayer.cpp:1713
Definition: ogr_geometry.h:1396
#define OGRERR_UNSUPPORTED_OPERATION
Definition: ogr_core.h:296
virtual OGRErr removeGeometry(int iIndex, int bDelete=TRUE)
Remove a geometry from the container.
Definition: ogrgeometrycollection.cpp:420
@ OAMS_TRADITIONAL_GIS_ORDER
Definition: ogr_srs_api.h:653
OGRErr OGR_L_AlterFieldDefn(OGRLayerH, int iField, OGRFieldDefnH hNewFieldDefn, int nFlags)
Alter the definition of an existing field on a layer.
Definition: ogrlayer.cpp:856
static OGRGeometry * createGeometry(OGRwkbGeometryType)
Create an empty geometry of desired type.
Definition: ogrgeometryfactory.cpp:528
OGRErr OGR_G_Transform(OGRGeometryH, OGRCoordinateTransformationH)
Apply arbitrary coordinate transformation to geometry.
Definition: ogrgeometry.cpp:726
@ wkbCurvePolygon
Definition: ogr_core.h:336
OGRErr OGR_G_ExportToIsoWkt(OGRGeometryH, char **)
Convert a geometry into SFSQL 1.2 / ISO SQL/MM Part 3 well known text format.
Definition: ogrgeometry.cpp:1800
OGRGeometryH OGR_G_SimplifyPreserveTopology(OGRGeometryH hThis, double tolerance) CPL_WARN_UNUSED_RESULT
Simplify the geometry while preserving topology.
Definition: ogrgeometry.cpp:5486
virtual OGRBoolean Intersects(const OGRGeometry *) const
Do these features intersect?
Definition: ogrgeometry.cpp:486
#define CPLE_ObjectNull
Definition: cpl_error.h:117
int OGR_GFld_IsNullable(OGRGeomFieldDefnH hDefn)
Return whether this geometry field can receive null values.
Definition: ogrgeomfielddefn.cpp:599
@ wkbLineStringM
Definition: ogr_core.h:364
The CPLJSONArray class holds JSON object from CPLJSONDocument.
Definition: cpl_json.h:53
virtual void StartPoint(OGRPoint *) const override
Return the curve start point.
Definition: ogrlinestring.cpp:1988
virtual int GetFieldCount() const
Fetch number of fields on this feature.
Definition: ogrfeaturedefn.cpp:286
OGRGeometryCollection & operator=(const OGRGeometryCollection &other)
Assignment operator.
Definition: ogrgeometrycollection.cpp:110
OGRErr OGR_L_ReorderFields(OGRLayerH, int *panMap)
Reorder all the fields of a layer.
Definition: ogrlayer.cpp:748
OGRErr addCurveDirectly(OGRCurve *, double dfToleranceEps=1e-14)
Add a curve directly to the container.
Definition: ogrcompoundcurve.cpp:555
unsigned long long GUIntBig
Definition: cpl_port.h:251
int OGRHasPreparedGeometrySupport()
Definition: ogrgeometry.cpp:5783
OGRPoint * toPoint()
Definition: ogr_geometry.h:524
#define VALIDATE_POINTER1(ptr, func, rc)
Definition: cpl_error.h:276
OGRSpatialReferenceH OGR_GFld_GetSpatialRef(OGRGeomFieldDefnH)
Fetch spatial reference system of this field.
Definition: ogrgeomfielddefn.cpp:460
virtual OGRErr CommitTransaction() CPL_WARN_UNUSED_RESULT
For datasources which support transactions, CommitTransaction commits a transaction.
Definition: ogrlayer.cpp:939
#define wkbSetZ(x)
Definition: ogr_core.h:451
virtual OGRGeometry * DelaunayTriangulation(double dfTolerance, int bOnlyEdges) const CPL_WARN_UNUSED_RESULT
Return a Delaunay triangulation of the vertices of the geometry.
Definition: ogrgeometry.cpp:5520
#define OGRERR_FAILURE
Definition: ogr_core.h:298
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6620
OGRSurface * toSurface()
Definition: ogr_geometry.h:622
virtual OGRErr CreateGeomField(OGRGeomFieldDefn *poField, int bApproxOK=TRUE)
Create a new geometry field on a layer.
Definition: ogrlayer.cpp:876
int OGR_G_GetCoordinateDimension(OGRGeometryH)
Get the dimension of the coordinates in this geometry.
Definition: ogrgeometry.cpp:908
double OGR_G_Distance3D(OGRGeometryH, OGRGeometryH)
Returns the 3D distance between two geometries.
Definition: ogrgeometry.cpp:3393
@ wkbMultiPolygon25D
Definition: ogr_core.h:404
@ wkbCircularStringM
Definition: ogr_core.h:370
OGRGeometryH OGR_G_PointOnSurface(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Returns a point guaranteed to lie on the surface.
Definition: ogrgeometry.cpp:5242
@ wkbMultiSurface
Definition: ogr_core.h:340
virtual OGRGeometry * Difference(const OGRGeometry *) const CPL_WARN_UNUSED_RESULT
Compute difference.
Definition: ogrgeometry.cpp:4320
int OGR_G_Crosses(OGRGeometryH, OGRGeometryH)
Test for crossing.
Definition: ogrgeometry.cpp:4800
#define OGRERR_NOT_ENOUGH_MEMORY
Definition: ogr_core.h:294
int Dereference()
Decrement layer reference count.
Definition: ogrlayer.cpp:129
@ wkbPolyhedralSurface
Definition: ogr_core.h:343
@ wkbCurvePolygonM
Definition: ogr_core.h:372
virtual OGRStyleTable * GetStyleTable()
Returns layer style table.
Definition: ogrlayer.cpp:1654
OGRPolyhedralSurface * toPolyhedralSurface()
Definition: ogr_geometry.h:762
OGRErr OGR_L_Identity(OGRLayerH, OGRLayerH, OGRLayerH, char **, GDALProgressFunc, void *)
Identify the features of this layer with the ones from the identity layer.
Definition: ogrlayer.cpp:3448
void sfcgal_geometry_t
Definition: ogr_geometry.h:83
static OGRFieldDefn * FromHandle(OGRFieldDefnH hFieldDefn)
Definition: ogr_feature.h:158
virtual OGRErr transform(OGRCoordinateTransformation *poCT) override
Apply arbitrary coordinate transformation to geometry.
Definition: ogrcurvepolygon.cpp:658
OGRwkbGeometryType OGR_GFld_GetType(OGRGeomFieldDefnH)
Fetch geometry type of this field.
Definition: ogrgeomfielddefn.cpp:284
OGRErr OGR_L_Erase(OGRLayerH, OGRLayerH, OGRLayerH, char **, GDALProgressFunc, void *)
Remove areas that are covered by the method layer.
Definition: ogrlayer.cpp:4252
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const =0
Return a linestring from a curve geometry.
OGRErr CreateFeature(OGRFeature *poFeature) CPL_WARN_UNUSED_RESULT
Create and write a new feature within a layer.
Definition: ogrlayer.cpp:626
@ wkbMultiPointM
Definition: ogr_core.h:366
void CPLDebug(const char *, const char *,...)
Definition: cpl_error.cpp:602
@ wkbGeometryCollectionM
Definition: ogr_core.h:369
OGRGeometryH OGR_G_CreateFromGML(const char *) CPL_WARN_UNUSED_RESULT
Create geometry from GML.
Definition: gml2ogrgeometry.cpp:3735
int CoordinateDimension() const
Get the dimension of the coordinates in this object.
Definition: ogrgeometry.cpp:878
virtual OGRErr GetExtent(OGREnvelope *psExtent, int bForce=TRUE) CPL_WARN_UNUSED_RESULT
Fetch the extent of this layer.
Definition: ogrlayer.cpp:211
OGRErr importFromWkt(const char **) override
Definition: ogrgeometrycollection.cpp:792
virtual void segmentize(double dfMaxLength) override
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrgeometrycollection.cpp:1250
void OGR_L_SetSpatialFilterRectEx(OGRLayerH, int iGeomField, double dfMinX, double dfMinY, double dfMaxX, double dfMaxY)
Set a new rectangular spatial filter.
Definition: ogrlayer.cpp:1238
OGRErr OGR_L_CreateGeomField(OGRLayerH hLayer, OGRGeomFieldDefnH hFieldDefn, int bForce)
Create a new geometry field on a layer.
Definition: ogrlayer.cpp:892
Definition: ogr_feature.h:92
OGRGeometryCollection * toUpperClass()
Definition: ogr_geometry.h:2282
static OGRMultiPolygon * CastToMultiPolygon(OGRMultiSurface *poMS)
Cast to multipolygon.
Definition: ogrmultisurface.cpp:322
int IsNullable() const
Return whether this geometry field can receive null values.
Definition: ogr_feature.h:214
void * CPLMalloc(size_t)
Definition: cpl_conv.cpp:168
#define CPL_LSBPTR32(x)
Definition: cpl_port.h:834
OGRErr transformTo(OGRSpatialReference *poSR)
Transform geometry to new spatial reference system.
Definition: ogrgeometry.cpp:610
void OGR_G_Empty(OGRGeometryH)
Clear geometry information. This restores the geometry to its initial state after construction,...
Definition: ogrgeometry.cpp:1984
@ wkbVariantIso
Definition: ogr_core.h:426
virtual void SetStyleIgnored(int bIgnore)
Set whether the style can be omitted when fetching features.
Definition: ogr_feature.h:315
void OGR_G_CloseRings(OGRGeometryH)
Force rings to be closed.
Definition: ogrgeometry.cpp:5061
OGRFeatureH OGR_L_GetNextFeature(OGRLayerH) CPL_WARN_UNUSED_RESULT
Fetch the next available feature from this layer.
Definition: ogrlayer.cpp:541
void OGR_G_SwapXY(OGRGeometryH hGeom)
Swap x and y coordinates.
Definition: ogrgeometry.cpp:5751
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6711
void addSubLineString(const OGRLineString *, int nStartVertex=0, int nEndVertex=-1)
Add a segment of another linestring to this one.
Definition: ogrlinestring.cpp:1428
void addPoint(const OGRPoint *)
Add a point to a line string.
Definition: ogrlinestring.cpp:793
double OGR_G_Distance(OGRGeometryH, OGRGeometryH)
Compute distance between two geometries.
Definition: ogrgeometry.cpp:3289
void OGR_GFld_SetIgnored(OGRGeomFieldDefnH hDefn, int)
Set whether this field should be omitted when fetching features.
Definition: ogrgeomfielddefn.cpp:418
virtual void assignSpatialReference(OGRSpatialReference *poSR)
Assign spatial reference to this object.
Definition: ogrgeometry.cpp:416
virtual char * exportToKML() const
Convert a geometry into KML format.
Definition: ogrgeometry.cpp:2829
OGRErr Union(OGRLayer *pLayerMethod, OGRLayer *pLayerResult, char **papszOptions=nullptr, GDALProgressFunc pfnProgress=nullptr, void *pProgressArg=nullptr)
Union of two layers.
Definition: ogrlayer.cpp:2408
OGRGeometryCollection * toUpperClass()
Definition: ogr_geometry.h:2718
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const override
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrgeometrycollection.cpp:1307
@ wkbNone
Definition: ogr_core.h:349
int OGR_G_Intersects(OGRGeometryH, OGRGeometryH)
Do these features intersect?
Definition: ogrgeometry.cpp:558
OGRGeometryH OGR_G_ForceToLineString(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Convert to line string.
Definition: ogrgeometryfactory.cpp:4214
static OGRCurve * curveFromLineString(const OGRLineString *poLS, const char *const *papszOptions=nullptr)
Try to convert a linestring approximating curves into a curve.
Definition: ogrgeometryfactory.cpp:5700
static OGRPolygon * CastToPolygon(OGRCurvePolygon *poCP)
Convert to polygon.
Definition: ogrcurvepolygon.cpp:830
virtual void setMeasured(OGRBoolean bIsMeasured) override
Add or remove the M coordinate dimension.
Definition: ogrgeometrycollection.cpp:1129
@ wkbPolygon
Definition: ogr_core.h:324
OGRErr OGR_G_ExportToWkt(OGRGeometryH, char **)
Convert a geometry into well known text format.
Definition: ogrgeometry.cpp:1767
void OGR_G_Set3D(OGRGeometryH, int)
Add or remove the Z coordinate dimension.
Definition: ogrgeometry.cpp:1104
@ wkbMultiCurveM
Definition: ogr_core.h:373
int OGR_G_Centroid(OGRGeometryH, OGRGeometryH)
Compute the geometry centroid.
Definition: ogrgeometry.cpp:5200
@ wkbMultiLineString25D
Definition: ogr_core.h:403
OGRSpatialReference * getSpatialReference(void) const
Returns spatial reference system for object.
Definition: ogr_geometry.h:435
virtual double get_Area() const
Compute area of geometry collection.
Definition: ogrgeometrycollection.cpp:1193
void OGR_G_DumpReadable(OGRGeometryH, FILE *, const char *)
Dump geometry in well known text format to indicated output file.
Definition: ogrgeometry.cpp:381
OGRLineString * toLineString()
Definition: ogr_geometry.h:566
OGRErr SetGeomFieldDirectly(int iField, OGRGeometry *)
Set feature geometry of a specified geometry field.
Definition: ogrfeature.cpp:802
static OGRCompoundCurve * CastToCompoundCurve(OGRCurve *puCurve)
Cast to compound curve.
Definition: ogrcurve.cpp:322
OGRGeometry * getGeometryRef(int i)
Fetch geometry from container.
Definition: ogrpolyhedralsurface.cpp:931
virtual void dumpReadable(FILE *, const char *=nullptr, char **papszOptions=nullptr) const
Dump geometry in well known text format to indicated output file.
Definition: ogrgeometry.cpp:168
virtual void getEnvelope(OGREnvelope *psEnvelope) const override
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrgeometrycollection.cpp:977
int Reference()
Increment layer reference count.
Definition: ogrlayer.cpp:107
OGRSpatialReferenceH OGR_G_GetSpatialReference(OGRGeometryH)
Returns spatial reference system for geometry.
Definition: ogrgeometry.cpp:1948
OGRSimpleCurve * toSimpleCurve()
Definition: ogr_geometry.h:552
void CPLErrorReset(void)
Definition: cpl_error.cpp:729
#define VSI_CALLOC_VERBOSE(nCount, nSize)
Definition: cpl_vsi.h:283
virtual OGRErr ICreateFeature(OGRFeature *poFeature) CPL_WARN_UNUSED_RESULT
Create and write a new feature within a layer.
Definition: ogrlayer.cpp:637
void closeRings() override
Force rings to be closed.
Definition: ogrgeometrycollection.cpp:1089
OGRGeometryH OGR_G_ConvexHull(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Compute convex hull.
Definition: ogrgeometry.cpp:3737
@ wkbCompoundCurveM
Definition: ogr_core.h:371
OGRGeometryH OGR_G_Polygonize(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Polygonizes a set of sparse edges.
Definition: ogrgeometry.cpp:5716
virtual void empty()=0
Clear geometry information. This restores the geometry to its initial state after construction,...
OGRErr Identity(OGRLayer *pLayerMethod, OGRLayer *pLayerResult, char **papszOptions=nullptr, GDALProgressFunc pfnProgress=nullptr, void *pProgressArg=nullptr)
Identify the features of this layer with the ones from the identity layer.
Definition: ogrlayer.cpp:3183
OGRPolygon * toUpperClass()
Definition: ogr_geometry.h:2073
virtual OGRBoolean IsEmpty() const override
Returns TRUE (non-zero) if the object has no points.
Definition: ogrgeometrycollection.cpp:1223
@ wkbPolyhedralSurfaceM
Definition: ogr_core.h:377
OGRErr OGR_G_ImportFromWkt(OGRGeometryH, char **)
Assign geometry from well known text data.
Definition: ogrgeometry.cpp:1583
const char * CPLSPrintf(const char *fmt,...)
Definition: cpl_string.cpp:977
void SetName(const char *)
Reset the name of this field.
Definition: ogrgeomfielddefn.cpp:177
OGRGeometryH OGR_G_GetGeometryRef(OGRGeometryH, int)
Fetch geometry from a geometry container.
Definition: ogr_api.cpp:1308
OGRGeometryH OGR_G_Difference(OGRGeometryH, OGRGeometryH) CPL_WARN_UNUSED_RESULT
Compute difference.
Definition: ogrgeometry.cpp:4402
virtual OGRBoolean Overlaps(const OGRGeometry *) const
Test for overlap.
Definition: ogrgeometry.cpp:4984
virtual OGRErr Centroid(OGRPoint *poPoint) const
Compute the geometry centroid.
Definition: ogrgeometry.cpp:5100
Definition: ogr_geometry.h:1035
@ wkbSurface
Definition: ogr_core.h:342
OGRwkbGeometryType OGRFromOGCGeomType(const char *pszGeomType)
Definition: ogrgeometry.cpp:2288
void * OGRFieldDefnH
Definition: ogr_api.h:298
struct _OGRPreparedGeometry OGRPreparedGeometry
Definition: ogr_geometry.h:2924
OGRBoolean isPointInRing(const OGRPoint *pt, int bTestEnvelope=TRUE) const
Definition: ogrlinearring.cpp:592
virtual OGRwkbGeometryType GetGeomType() const
Fetch the geometry base type.
Definition: ogrfeaturedefn.cpp:984
virtual int isClockwise() const
Returns TRUE if the ring has clockwise winding (or less than 2 points)
Definition: ogrlinearring.cpp:445
virtual void SetSpatialFilterRect(double dfMinX, double dfMinY, double dfMaxX, double dfMaxY)
Set a new rectangular spatial filter.
Definition: ogrlayer.cpp:1184
void * OGRGeometryH
Definition: ogr_api.h:60
void CPLError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt,...)
Definition: cpl_error.cpp:308
Definition: ogr_feature.h:182
const char * CPLParseNameValue(const char *pszNameValue, char **ppszKey)
Definition: cpl_string.cpp:1754
int getNumCurves() const
Return the number of curves.
Definition: ogrcompoundcurve.cpp:432
OGRErr OGR_L_Update(OGRLayerH, OGRLayerH, OGRLayerH, char **, GDALProgressFunc, void *)
Update this layer with features from the update layer.
Definition: ogrlayer.cpp:3747
static OGRFeature * FromHandle(OGRFeatureH hFeature)
Definition: ogr_feature.h:763
static OGRLayer * FromHandle(OGRLayerH hLayer)
Definition: ogrsf_frmts.h:260
@ wkbLinearRing
Definition: ogr_core.h:350
void VSIFree(void *)
Definition: cpl_vsisimple.cpp:827
OGRCurve * getCurve(int)
Fetch reference to indicated internal ring.
Definition: ogrcompoundcurve.cpp:456
#define CPLE_NotSupported
Definition: cpl_error.h:109
#define OGRERR_NOT_ENOUGH_DATA
Definition: ogr_core.h:293
struct GEOSGeom_t * GEOSGeom
Definition: ogr_geometry.h:79
virtual void setCoordinateDimension(int nDimension) override
Set the coordinate dimension.
Definition: ogrgeometrycollection.cpp:1108
#define OGRERR_CORRUPT_DATA
Definition: ogr_core.h:297
virtual OGRBoolean IsEmpty() const override
Returns TRUE (non-zero) if the object has no points.
Definition: ogr_geometry.h:848
virtual void empty() override
Clear geometry information. This restores the geometry to its initial state after construction,...
Definition: ogrpoint.cpp:190
OGRErr Clip(OGRLayer *pLayerMethod, OGRLayer *pLayerResult, char **papszOptions=nullptr, GDALProgressFunc pfnProgress=nullptr, void *pProgressArg=nullptr)
Clip off areas that are not covered by the method layer.
Definition: ogrlayer.cpp:3820
virtual int GetFieldIndex(const char *) const
Find field by name.
Definition: ogrfeaturedefn.cpp:1218
double getZ(int i) const
Get Z at vertex.
Definition: ogrlinestring.cpp:381
virtual int get_IsClosed() const
Return TRUE if curve is closed.
Definition: ogrcurve.cpp:95
virtual int getDimension() const =0
Get the dimension of this object.
CPLJSONObject GetRoot()
Definition: cpl_json.cpp:119
void OGR_G_Segmentize(OGRGeometryH hGeom, double dfMaxLength)
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrgeometry.cpp:807
OGRLinearRing * toLinearRing()
Definition: ogr_geometry.h:580
int OGRErr
Definition: ogr_core.h:290
const char * OGR_L_GetGeometryColumn(OGRLayerH)
This method returns the name of the underlying database column being used as the geometry column,...
Definition: ogrlayer.cpp:1637
@ wkbCompoundCurveZ
Definition: ogr_core.h:353
int OGR_G_IsRing(OGRGeometryH)
Test if the geometry is a ring.
Definition: ogrgeometry.cpp:2272
OGRCurvePolygon * toCurvePolygon()
Definition: ogr_geometry.h:664
virtual void flattenTo2D() override
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrgeometrycollection.cpp:216
virtual void segmentize(double dfMaxLength)
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrgeometry.cpp:784
void OGR_G_GetEnvelope3D(OGRGeometryH, OGREnvelope3D *)
Computes and returns the bounding envelope (3D) for this geometry in the passed psEnvelope structure.
Definition: ogrgeometry.cpp:1333
static void freeGEOSContext(GEOSContextHandle_t hGEOSCtxt)
Definition: ogrgeometry.cpp:2918
#define M_PI
Definition: cpl_port.h:417
OGRwkbGeometryType OGR_G_GetGeometryType(OGRGeometryH)
Fetch geometry type.
Definition: ogrgeometry.cpp:1839
long long GIntBig
Definition: cpl_port.h:248
OGRPolygon * toPolygon()
Definition: ogr_geometry.h:636
@ wkbCurveZ
Definition: ogr_core.h:357
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:6377
OGRGeometryH OGR_G_Clone(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Make a copy of this object.
Definition: ogrgeometry.cpp:1911
OGRGeometryCollection * toGeometryCollection()
Definition: ogr_geometry.h:678
OGRCurve * getExteriorRingCurve()
Fetch reference to external polygon ring.
Definition: ogrcurvepolygon.cpp:201
OGRErr OGR_L_SetNextByIndex(OGRLayerH, GIntBig)
Move read cursor to the nIndex'th feature in the current resultset.
Definition: ogrlayer.cpp:524
int getNumInteriorRings() const
Fetch the number of internal rings.
Definition: ogrcurvepolygon.cpp:238
static int GetCurveParmeters(double x0, double y0, double x1, double y1, double x2, double y2, double &R, double &cx, double &cy, double &alpha0, double &alpha1, double &alpha2)
Returns the parameter of an arc circle.
Definition: ogrgeometryfactory.cpp:4649
#define VSI_MALLOC_VERBOSE(size)
Definition: cpl_vsi.h:268
virtual void EndPoint(OGRPoint *) const override
Return the curve end point.
Definition: ogrlinestring.cpp:1998
OGRwkbGeometryType
Definition: ogr_core.h:317
OGRErr OGR_G_ExportToWkb(OGRGeometryH, OGRwkbByteOrder, unsigned char *)
Convert a geometry well known binary format.
Definition: ogrgeometry.cpp:1491
static OGRErr createFromWkb(const void *, OGRSpatialReference *, OGRGeometry **, int=-1, OGRwkbVariant=wkbVariantOldOgc)
Create a geometry object of the appropriate type from its well known binary representation.
Definition: ogrgeometryfactory.cpp:105
static OGRErr createFromFgf(const void *, OGRSpatialReference *, OGRGeometry **, int=-1, int *=nullptr)
Create a geometry object of the appropriate type from its FGF (FDO Geometry Format) binary representa...
Definition: ogrgeometryfactory.cpp:2171
#define CPL_UNUSED
Definition: cpl_port.h:948
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6401
@ wkbTINZ
Definition: ogr_core.h:360
GIntBig OGR_L_GetFeatureCount(OGRLayerH, int)
Fetch the feature count in this layer.
Definition: ogrlayer.cpp:194
Definition: ogr_geometry.h:2036
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value. The returned value should n...
Definition: ogrgeometry.cpp:2422
Definition: ogr_feature.h:354
OGRErr OGR_L_SetAttributeFilter(OGRLayerH, const char *)
Set a new attribute query.
Definition: ogrlayer.cpp:430
void setY(double yIn)
Assign point Y coordinate.
Definition: ogr_geometry.h:870
OGRStyleTable * Clone()
Duplicate style table.
Definition: ogrfeaturestyle.cpp:1208
static OGRGeometry * createFromGML(const char *)
Create geometry from GML.
Definition: ogrgeometryfactory.cpp:2039
OGRwkbGeometryType GetType() const
Fetch geometry type of this field.
Definition: ogr_feature.h:205
OGRGeometryH OGR_G_ForceToMultiPoint(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Convert to multipoint.
Definition: ogrgeometryfactory.cpp:1055
virtual OGRGeometry * Polygonize() const CPL_WARN_UNUSED_RESULT
Polygonizes a set of sparse edges.
Definition: ogrgeometry.cpp:5625
#define EQUALN(a, b, n)
Definition: cpl_port.h:567
OGRGeometry * GetGeometryRef()
Fetch pointer to feature geometry.
Definition: ogrfeature.cpp:583
The CPLJSONDocument class Wrapper class around json-c library.
Definition: cpl_json.h:188
void OGR_L_SetStyleTableDirectly(OGRLayerH, OGRStyleTableH)
Definition: ogrlayer.cpp:1699
@ wkbTriangleZM
Definition: ogr_core.h:397
double getZ() const
Fetch Z coordinate.
Definition: ogr_geometry.h:857
void setZ(double zIn)
Assign point Z coordinate. Calling this method will force the geometry coordinate dimension to 3D (wk...
Definition: ogr_geometry.h:874
@ wkbXDR
Definition: ogr_core.h:491
virtual OGRErr addRing(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:362
void SetNullable(int bNullableIn)
Set whether this geometry field can receive null values.
Definition: ogr_feature.h:215
int OGR_G_Contains(OGRGeometryH, OGRGeometryH)
Test for containment.
Definition: ogrgeometry.cpp:4948
virtual int WkbSize() const =0
Returns size of related binary representation.
OGRBoolean IsMeasured() const
Definition: ogr_geometry.h:365
int OGR_G_Touches(OGRGeometryH, OGRGeometryH)
Test for touching.
Definition: ogrgeometry.cpp:4695
const char * OGR_G_GetGeometryName(OGRGeometryH)
Fetch WKT name for geometry type.
Definition: ogrgeometry.cpp:1875
std::unique_ptr< OGRPreparedGeometry, OGRPreparedGeometryUniquePtrDeleter > OGRPreparedGeometryUniquePtr
Definition: ogr_geometry.h:2943
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const override
Returns if this geometry is or has curve geometry.
Definition: ogrmulticurve.cpp:186
@ wkbGeometryCollection25D
Definition: ogr_core.h:405
OGRErr OGR_G_CreateFromWkt(char **, OGRSpatialReferenceH, OGRGeometryH *)
Create a geometry object of the appropriate type from its well known text representation.
Definition: ogrgeometryfactory.cpp:497
Definition: ogr_geometry.h:926
virtual void assignSpatialReference(OGRSpatialReference *poSR) override
Assign spatial reference to this object.
Definition: ogrcurvepolygon.cpp:708
virtual OGRGeometry * MakeValid() const
Attempts to make an invalid geometry valid without losing vertices.
Definition: ogrgeometry.cpp:3536
FeatureIterator begin()
Definition: ogrlayer.cpp:4355
double getY() const
Fetch Y coordinate.
Definition: ogr_geometry.h:855
virtual void SetGeometryIgnored(int bIgnore)
Set whether the geometry can be omitted when fetching features.
Definition: ogrfeaturedefn.cpp:1358
void visit(OGRPoint *) override
Definition: ogr_geometry.h:170
static OGRGeomFieldDefn * FromHandle(OGRGeomFieldDefnH hGeomFieldDefn)
Definition: ogr_feature.h:229
@ wkbGeometryCollection
Definition: ogr_core.h:330
static OGRFeatureDefnH ToHandle(OGRFeatureDefn *poFeatureDefn)
Definition: ogr_feature.h:333
static OGRGeometry * createFromGeoJson(const char *)
Create geometry from GeoJson fragment.
Definition: ogrgeometryfactory.cpp:5798
virtual void empty() override
Clear geometry information. This restores the geometry to its initial state after construction,...
Definition: ogrgeometrycollection.cpp:131
struct GEOSContextHandle_HS * GEOSContextHandle_t
Definition: ogr_geometry.h:81
virtual int GetGeomFieldCount() const
Fetch number of geometry fields on this feature.
Definition: ogrfeaturedefn.cpp:632
const char * CSLFetchNameValue(CSLConstList papszStrList, const char *pszName)
Definition: cpl_string.cpp:1674
OGRGeometryH OGR_G_CreateGeometry(OGRwkbGeometryType) CPL_WARN_UNUSED_RESULT
Create an empty geometry of desired type.
Definition: ogrgeometryfactory.cpp:605
CPLErr
Definition: cpl_error.h:52
@ wkbMultiCurveZ
Definition: ogr_core.h:355
void setPoints(int, const OGRRawPoint *, const double *=nullptr)
Assign all points in a line string.
Definition: ogrlinestring.cpp:1018
int OGR_G_Overlaps(OGRGeometryH, OGRGeometryH)
Test for overlap.
Definition: ogrgeometry.cpp:5024
OGRGeometryH OGR_G_ForceToMultiPolygon(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Convert to multipolygon.
Definition: ogrgeometryfactory.cpp:963
virtual OGRErr SetNextByIndex(GIntBig nIndex)
Move read cursor to the nIndex'th feature in the current resultset.
Definition: ogrlayer.cpp:499
virtual int getDimension() const override
Get the dimension of this object.
Definition: ogrgeometrycollection.cpp:193
virtual OGRErr transform(OGRCoordinateTransformation *poCT)=0
Apply arbitrary coordinate transformation to geometry.
@ wkbPolyhedralSurfaceZ
Definition: ogr_core.h:359
@ wkbMultiCurve
Definition: ogr_core.h:339
void OGR_G_SetMeasured(OGRGeometryH, int)
Add or remove the M coordinate dimension.
Definition: ogrgeometry.cpp:1131
virtual OGRErr SetIgnoredFields(const char **papszFields)
Set which fields can be omitted when retrieving features from the layer.
Definition: ogrlayer.cpp:1792
int GBool
Definition: cpl_port.h:223
@ wkbMultiPolygonM
Definition: ogr_core.h:368
static bool haveGEOS()
Test if GEOS enabled.
Definition: ogrgeometryfactory.cpp:2134
OGRErr OGR_L_Clip(OGRLayerH, OGRLayerH, OGRLayerH, char **, GDALProgressFunc, void *)
Clip off areas that are not covered by the method layer.
Definition: ogrlayer.cpp:4006
OGRGeometryCollection * toUpperClass()
Definition: ogr_geometry.h:2365
@ wkbLineString25D
Definition: ogr_core.h:400
OGRGeometryH OGR_G_Buffer(OGRGeometryH, double, int) CPL_WARN_UNUSED_RESULT
Compute buffer of geometry.
Definition: ogrgeometry.cpp:3963
const char * OGR_L_GetFIDColumn(OGRLayerH)
This method returns the name of the underlying database column being used as the FID column,...
Definition: ogrlayer.cpp:1607
virtual OGRErr importFromWkb(const unsigned char *, int, OGRwkbVariant, int &nBytesConsumedOut) override
Assign geometry from well known binary data.
Definition: ogrgeometrycollection.cpp:590
Definition: ogr_geometry.h:1314
@ wkbGeometryCollectionZM
Definition: ogr_core.h:387
std::unique_ptr< OGRGeometry, OGRGeometryUniquePtrDeleter > OGRGeometryUniquePtr
Definition: ogr_geometry.h:798
OGRSpatialReferenceH OGR_L_GetSpatialRef(OGRLayerH)
Fetch the spatial reference system for this layer.
Definition: ogrlayer.cpp:1049
#define OGRERR_NONE
Definition: ogr_core.h:292
char * CPLStrdup(const char *)
Definition: cpl_conv.cpp:293
static void destroyGeometry(OGRGeometry *)
Destroy geometry object.
Definition: ogrgeometryfactory.cpp:627
Definition: ogr_feature.h:259
virtual OGRwkbGeometryType GetGeomType()
Return the layer geometry type.
Definition: ogrlayer.cpp:1755
@ wkbMultiSurfaceZ
Definition: ogr_core.h:356
CPLErr CPLGetLastErrorType(void)
Definition: cpl_error.cpp:842
static OGRLinearRing * CastToLinearRing(OGRCurve *poCurve)
Cast to linear ring.
Definition: ogrcurve.cpp:375
OGRGeometryH OGR_L_GetSpatialFilter(OGRLayerH)
This function returns the current spatial filter for this layer.
Definition: ogrlayer.cpp:1095
void OGR_GFld_Destroy(OGRGeomFieldDefnH)
Destroy a geometry field definition.
Definition: ogrgeomfielddefn.cpp:155
virtual OGRErr ISetFeature(OGRFeature *poFeature) CPL_WARN_UNUSED_RESULT
Rewrite an existing feature.
Definition: ogrlayer.cpp:598
static OGRGeometry * forceToMultiPoint(OGRGeometry *)
Convert to multipoint.
Definition: ogrgeometryfactory.cpp:986
int OGRGetNonLinearGeometriesEnabledFlag(void)
Get flag to enable/disable returning non-linear geometries in the C API.
Definition: ogr_api.cpp:1851
#define CPLE_IllegalArg
Definition: cpl_error.h:107
const char * OGRToOGCGeomType(OGRwkbGeometryType eGeomType)
Definition: ogrgeometry.cpp:2361
double y
Definition: ogr_geometry.h:75
char * CPLBinaryToHex(int nBytes, const GByte *pabyData)
Definition: cpl_string.cpp:2475
@ wkbTriangle
Definition: ogr_core.h:347
virtual OGRErr SetAttributeFilter(const char *)
Set a new attribute query.
Definition: ogrlayer.cpp:338
@ wkbLineString
Definition: ogr_core.h:322
int OGR_G_GetDimension(OGRGeometryH)
Get the dimension of this geometry.
Definition: ogrgeometry.cpp:838
virtual double Distance(const OGRGeometry *) const
Compute distance between two geometries.
Definition: ogrgeometry.cpp:3185
bool IsValid() const
Definition: cpl_json.cpp:1111
OGRGeometry * GetGeomFieldRef(int iField)
Fetch pointer to feature geometry.
Definition: ogrfeature.cpp:666
Definition: ogr_geometry.h:1913
Definition: ogr_geometry.h:2516
virtual OGRGeometry * ConvexHull() const CPL_WARN_UNUSED_RESULT
Compute convex hull.
Definition: ogrgeometry.cpp:3654
@ wkbMultiLineString
Definition: ogr_core.h:328
Definition: ogr_geometry.h:1763
virtual void getEnvelope(OGREnvelope *psEnvelope) const =0
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
#define wkbHasM(x)
Definition: ogr_core.h:456
virtual void SetStyleTableDirectly(OGRStyleTable *poStyleTable)
Set layer style table.
Definition: ogrlayer.cpp:1663
OGRCurve * getInteriorRingCurve(int)
Fetch reference to indicated internal ring.
Definition: ogrcurvepolygon.cpp:266
virtual int TestCapability(const char *)=0
Test if this layer supported the named capability.
virtual OGRBoolean Equals(const OGRGeometry *) const =0
Returns TRUE if two geometries are equivalent.
virtual void assignSpatialReference(OGRSpatialReference *poSR) override
Assign spatial reference to this object.
Definition: ogrpolyhedralsurface.cpp:1077
virtual char * exportToGML(const char *const *papszOptions=nullptr) const
Convert a geometry into GML format.
Definition: ogrgeometry.cpp:2806
static OGRMultiCurve * CastToMultiCurve(OGRMultiLineString *poMLS)
Cast to multicurve.
Definition: ogrmultilinestring.cpp:166
virtual OGRErr addGeometry(const OGRGeometry *)
Add a geometry to the container.
Definition: ogrgeometrycollection.cpp:334
@ wkbCurveZM
Definition: ogr_core.h:393
virtual double get_Length() const =0
Returns the length of the curve.
void CPLErrorV(CPLErr, CPLErrorNum, const char *, va_list)
Definition: cpl_error.cpp:324
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const =0
Convert a geometry into well known text format.
virtual OGRErr AlterFieldDefn(int iField, OGRFieldDefn *poNewFieldDefn, int nFlagsIn)
Alter the definition of an existing field on a layer.
Definition: ogrlayer.cpp:841
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known binary format.
Definition: ogrgeometrycollection.cpp:606
OGRErr OGR_L_Union(OGRLayerH, OGRLayerH, OGRLayerH, char **, GDALProgressFunc, void *)
Union of two layers.
Definition: ogrlayer.cpp:2758
virtual OGRGeometry * clone() const override
Make a copy of this object.
Definition: ogrlinestring.cpp:141
virtual OGRBoolean Touches(const OGRGeometry *) const
Test for touching.
Definition: ogrgeometry.cpp:4656
void * OGRLayerH
Definition: ogr_api.h:509
OGRGeomFieldDefnH OGR_GFld_Create(const char *, OGRwkbGeometryType) CPL_WARN_UNUSED_RESULT
Create a new field geometry definition.
Definition: ogrgeomfielddefn.cpp:109
OGRErr OGR_L_Intersection(OGRLayerH, OGRLayerH, OGRLayerH, char **, GDALProgressFunc, void *)
Intersection of two layers.
Definition: ogrlayer.cpp:2321
OGRMultiLineString * toMultiLineString()
Definition: ogr_geometry.h:706
unsigned short GUInt16
Definition: cpl_port.h:213
@ wkbMultiLineStringM
Definition: ogr_core.h:367
#define OGRERR_INVALID_HANDLE
Definition: ogr_core.h:300
OGRErr SetFeature(OGRFeature *poFeature) CPL_WARN_UNUSED_RESULT
Rewrite an existing feature.
Definition: ogrlayer.cpp:587
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6423
virtual OGRErr SyncToDisk()
Flush pending changes to disk.
Definition: ogrlayer.cpp:1520
int IsGeographic() const
Check if geographic coordinate system.
Definition: ogrspatialreference.cpp:7760
#define CPLFree
Definition: cpl_conv.h:81
virtual OGRBoolean Within(const OGRGeometry *) const
Test for containment.
Definition: ogrgeometry.cpp:4835
static OGRGeometry * approximateArcAngles(double dfX, double dfY, double dfZ, double dfPrimaryRadius, double dfSecondaryAxis, double dfRotation, double dfStartAngle, double dfEndAngle, double dfMaxAngleStepSizeDegrees)
Definition: ogrgeometryfactory.cpp:3904
@ wkbUnknown
Definition: ogr_core.h:319
void reversePoints(void)
Reverse point order.
Definition: ogrlinestring.cpp:1392
@ wkbTIN
Definition: ogr_core.h:345
OGRErr OGR_G_ImportFromWkb(OGRGeometryH, const void *, int)
Assign geometry from well known binary data.
Definition: ogrgeometry.cpp:1426
virtual OGRwkbGeometryType getGeometryType() const override
Fetch geometry type.
Definition: ogrgeometrycollection.cpp:176
int GInt32
Definition: cpl_port.h:205
virtual void setMeasured(OGRBoolean bIsMeasured)
Add or remove the M coordinate dimension.
Definition: ogrgeometry.cpp:1048
OGRCurvePolygon * toUpperClass()
Definition: ogr_geometry.h:2004
OGRGeomFieldDefn(const char *pszNameIn, OGRwkbGeometryType eGeomTypeIn)
Constructor.
Definition: ogrgeomfielddefn.cpp:58
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Definition: cpl_port.h:997
virtual int FindFieldIndex(const char *pszFieldName, int bExactMatch)
Find the index of field in the layer.
Definition: ogrlayer.cpp:1028
virtual OGRBoolean Equals(const OGRGeometry *) const override
Returns TRUE if two geometries are equivalent.
Definition: ogrpoint.cpp:707
GByte * CPLHexToBinary(const char *pszHex, int *pnBytes)
Definition: cpl_string.cpp:2533
void visit(const OGRPoint *) override
Definition: ogr_geometry.h:244
OGRwkbVariant
Definition: ogr_core.h:423
OGRCurve * stealExteriorRingCurve()
"Steal" reference to external ring.
Definition: ogrcurvepolygon.cpp:307
OGRLineString * toUpperClass()
Definition: ogr_geometry.h:1360
@ wkbPointM
Definition: ogr_core.h:363
@ wkbMultiPoint
Definition: ogr_core.h:327
@ wkbSurfaceZ
Definition: ogr_core.h:358
OGRCompoundCurve * toCompoundCurve()
Definition: ogr_geometry.h:608
double getX() const
Fetch X coordinate.
Definition: ogr_geometry.h:853
const char * CPLGetConfigOption(const char *, const char *)
Definition: cpl_conv.cpp:1692
OGRErr OGR_L_CreateField(OGRLayerH, OGRFieldDefnH, int)
Create a new field on a layer.
Definition: ogrlayer.cpp:681
OGRwkbGeometryType getIsoGeometryType() const
Get the geometry type that conforms with ISO SQL/MM Part3.
Definition: ogrgeometry.cpp:756
OGRGeometryH OGR_G_ForceToPolygon(OGRGeometryH) CPL_WARN_UNUSED_RESULT
Convert to polygon.
Definition: ogrgeometryfactory.cpp:793
virtual double get_Area() const =0
Get the area of the (closed) curve.
int OGR_G_GetGeometryCount(OGRGeometryH)
Fetch the number of elements in a geometry or number of geometries in container.
Definition: ogr_api.cpp:1243
int OGR_G_IsSimple(OGRGeometryH)
Returns TRUE if the geometry is simple.
Definition: ogrgeometry.cpp:2199
#define OLCMeasuredGeometries
Definition: ogr_core.h:769
static OGRGeometryH ToHandle(OGRGeometry *poGeom)
Definition: ogr_geometry.h:511
static GEOSContextHandle_t createGEOSContext()
Definition: ogrgeometry.cpp:2900
int OGR_G_WkbSize(OGRGeometryH hGeom)
Returns size of related binary representation.
Definition: ogrgeometry.cpp:1265
static OGRErr createFromWkt(const char *, OGRSpatialReference *, OGRGeometry **)
Create a geometry object of the appropriate type from its well known text representation.
Definition: ogrgeometryfactory.cpp:464
#define STARTS_WITH_CI(a, b)
Definition: cpl_port.h:580
#define CPLE_AppDefined
Definition: cpl_error.h:99
virtual double Distance3D(const OGRGeometry *poOtherGeom) const
Returns the 3D distance between two geometries.
Definition: ogrgeometry.cpp:3319
unsigned int GUInt32
Definition: cpl_port.h:207
OGRErr OGR_G_TransformTo(OGRGeometryH, OGRSpatialReferenceH)
Transform geometry to new spatial reference system.
Definition: ogrgeometry.cpp:667
Generated for GDAL by
1.8.17.