OGR
ogreditablelayer.h
1 /******************************************************************************
2  * $Id: ogreditablelayer.h 07880b5ca268a13af619c6a1774f9696cd7f6992 2019-03-28 00:41:48 +0100 Even Rouault $
3  *
4  * Project: OpenGIS Simple Features Reference Implementation
5  * Purpose: Defines OGREditableLayer class
6  * Author: Even Rouault <even.rouault at spatialys.com>
7  *
8  ******************************************************************************
9  * Copyright (c) 2015, Even Rouault <even.rouault at spatialys.com>
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included
19  * in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  ****************************************************************************/
29 
30 #ifndef OGREDITABLELAYER_H_INCLUDED
31 #define OGREDITABLELAYER_H_INCLUDED
32 
34 #include "ogrlayerdecorator.h"
35 #include <set>
36 #include <map>
37 
38 class CPL_DLL IOGREditableLayerSynchronizer
39 {
40  public:
41  virtual ~IOGREditableLayerSynchronizer();
42 
43  virtual OGRErr EditableSyncToDisk(OGRLayer* poEditableLayer,
44  OGRLayer** ppoDecoratedLayer) = 0;
45 };
46 
47 class CPL_DLL OGREditableLayer : public OGRLayerDecorator
48 {
49  CPL_DISALLOW_COPY_ASSIGN(OGREditableLayer)
50 
51  protected:
52 
53  IOGREditableLayerSynchronizer *m_poSynchronizer;
54  bool m_bTakeOwnershipSynchronizer;
55  OGRFeatureDefn *m_poEditableFeatureDefn;
56  GIntBig m_nNextFID;
57  std::set<GIntBig> m_oSetCreated{};
58  std::set<GIntBig> m_oSetEdited{};
59  std::set<GIntBig> m_oSetDeleted{};
60  std::set<GIntBig>::iterator m_oIter{};
61  std::set<CPLString> m_oSetDeletedFields{};
62  OGRLayer *m_poMemLayer;
63  bool m_bStructureModified;
64  bool m_bSupportsCreateGeomField;
65  bool m_bSupportsCurveGeometries;
66  std::map<CPLString, int> m_oMapEditableFDefnFieldNameToIdx{};
67 
68  OGRFeature *Translate(OGRFeatureDefn* poTargetDefn,
69  OGRFeature* poSrcFeature,
70  bool bCanStealSrcFeature,
71  bool bHideDeletedFields);
72  void DetectNextFID();
73  int GetSrcGeomFieldIndex(int iGeomField);
74 
75  public:
76 
77  OGREditableLayer(OGRLayer* poDecoratedLayer,
78  bool bTakeOwnershipDecoratedLayer,
79  IOGREditableLayerSynchronizer* poSynchronizer,
80  bool bTakeOwnershipSynchronizer);
81  virtual ~OGREditableLayer();
82 
83  void SetNextFID(GIntBig nNextFID);
84  void SetSupportsCreateGeomField(bool SupportsCreateGeomField);
85  void SetSupportsCurveGeometries(bool bSupportsCurveGeometries);
86 
87  virtual OGRGeometry *GetSpatialFilter() override;
88  virtual void SetSpatialFilter( OGRGeometry * ) override;
89  virtual void SetSpatialFilterRect( double dfMinX, double dfMinY,
90  double dfMaxX, double dfMaxY ) override;
91  virtual void SetSpatialFilter( int iGeomField, OGRGeometry * ) override;
92  virtual void SetSpatialFilterRect( int iGeomField, double dfMinX, double dfMinY,
93  double dfMaxX, double dfMaxY ) override;
94 
95  virtual OGRErr SetAttributeFilter( const char * ) override;
96 
97  virtual void ResetReading() override;
98  virtual OGRFeature *GetNextFeature() override;
99  virtual OGRErr SetNextByIndex( GIntBig nIndex ) override;
100  virtual OGRFeature *GetFeature( GIntBig nFID ) override;
101  virtual OGRErr ISetFeature( OGRFeature *poFeature ) override;
102  virtual OGRErr ICreateFeature( OGRFeature *poFeature ) override;
103  virtual OGRErr DeleteFeature( GIntBig nFID ) override;
104 
105  virtual OGRwkbGeometryType GetGeomType() override;
106  virtual OGRFeatureDefn *GetLayerDefn() override;
107 
108  virtual OGRSpatialReference *GetSpatialRef() override;
109 
110  virtual GIntBig GetFeatureCount( int bForce = TRUE ) override;
111  virtual OGRErr GetExtent(int iGeomField, OGREnvelope *psExtent, int bForce = TRUE) override;
112  virtual OGRErr GetExtent(OGREnvelope *psExtent, int bForce = TRUE) override;
113 
114  virtual int TestCapability( const char * ) override;
115 
116  virtual OGRErr CreateField( OGRFieldDefn *poField,
117  int bApproxOK = TRUE ) override;
118  virtual OGRErr DeleteField( int iField ) override;
119  virtual OGRErr ReorderFields( int* panMap ) override;
120  virtual OGRErr AlterFieldDefn( int iField, OGRFieldDefn* poNewFieldDefn, int nFlags ) override;
121 
122  virtual OGRErr CreateGeomField( OGRGeomFieldDefn *poField,
123  int bApproxOK = TRUE ) override;
124 
125  virtual OGRErr SyncToDisk() override;
126 
127  virtual OGRErr StartTransaction() override;
128  virtual OGRErr CommitTransaction() override;
129  virtual OGRErr RollbackTransaction() override;
130 
131  virtual const char *GetGeometryColumn() override;
132 };
134 
135 #endif // OGREDITABLELAYER_H_INCLUDED
OLCReorderFields
#define OLCReorderFields
Definition: ogr_core.h:760
OGRSpatialReference::SetAxisMappingStrategy
void SetAxisMappingStrategy(OSRAxisMappingStrategy)
Set the data axis to CRS axis mapping strategy.
Definition: ogrspatialreference.cpp:10635
OGRSimpleCurve::setPoint
void setPoint(int, OGRPoint *)
Set the location of a vertex in line string.
Definition: ogrlinestring.cpp:536
OGRSimpleCurve::getEnvelope
virtual void getEnvelope(OGREnvelope *psEnvelope) const override
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrlinestring.cpp:2311
OGRCurvePolygon::getEnvelope
virtual void getEnvelope(OGREnvelope *psEnvelope) const override
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrcurvepolygon.cpp:619
OGRGeometry::Is3D
OGRBoolean Is3D() const
Definition: ogr_geometry.h:363
OGRGeometry::IsEmpty
virtual OGRBoolean IsEmpty() const =0
Returns TRUE (non-zero) if the object has no points.
OGR_DS_Destroy
void OGR_DS_Destroy(OGRDataSourceH)
Closes opened datasource and releases allocated resources.
Definition: ogrdatasource.cpp:58
OGRGeometry::setCoordinateDimension
virtual void setCoordinateDimension(int nDimension)
Set the coordinate dimension.
Definition: ogrgeometry.cpp:1002
OGRCurvePolygon::addRingDirectly
virtual OGRErr addRingDirectly(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:419
OGRCompoundCurve::segmentize
virtual void segmentize(double dfMaxLength) override
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrcompoundcurve.cpp:644
OGRCreateCoordinateTransformation
OGRCoordinateTransformation * OGRCreateCoordinateTransformation(const OGRSpatialReference *poSource, const OGRSpatialReference *poTarget)
Definition: ogrct.cpp:465
OGRCurve::CastToLineString
static OGRLineString * CastToLineString(OGRCurve *poCurve)
Cast to linestring.
Definition: ogrcurve.cpp:353
OGRCompoundCurve::addCurve
OGRErr addCurve(OGRCurve *, double dfToleranceEps=1e-14)
Add a curve to the container.
Definition: ogrcompoundcurve.cpp:524
ogr_spatialref.h
OGRSimpleCurve::getX
double getX(int i) const
Get X at vertex.
Definition: ogr_geometry.h:1161
OGRSimpleCurve::empty
virtual void empty() override
Clear geometry information. This restores the geometry to its initial state after construction,...
Definition: ogrlinestring.cpp:163
OGRCompoundCurve::WkbSize
virtual int WkbSize() const override
Returns size of related binary representation.
Definition: ogrcompoundcurve.cpp:128
OGRCurve::get_AreaOfCurveSegments
virtual double get_AreaOfCurveSegments() const =0
Get the area of the purely curve portions of a (closed) curve.
CPL_SWAP32
#define CPL_SWAP32(x)
Definition: cpl_port.h:719
OGRSimpleCurve::end
Iterator end()
Definition: ogrcurve.cpp:520
wkbCurvePolygonZM
@ wkbCurvePolygonZM
Definition: ogr_core.h:390
OGRSimpleCurve::Iterator::Private
Definition: ogrcurve.cpp:458
OGRLineString
Definition: ogr_geometry.h:1243
OAO_North
@ OAO_North
Definition: ogr_srs_api.h:50
OGRSimpleCurve::setNumPoints
void setNumPoints(int nNewPointCount, int bZeroizeNewContent=TRUE)
Set number of points in geometry.
Definition: ogrlinestring.cpp:435
OGRGeometry::Contains
virtual OGRBoolean Contains(const OGRGeometry *) const
Test for containment.
Definition: ogrgeometry.cpp:4909
OLCCreateGeomField
#define OLCCreateGeomField
Definition: ogr_core.h:767
OGR_DS_GetName
const char * OGR_DS_GetName(OGRDataSourceH)
Returns the name of the data source.
Definition: ogrdatasource.cpp:305
OGR_DS_GetLayerCount
int OGR_DS_GetLayerCount(OGRDataSourceH)
Get the number of layers in this data source.
Definition: ogrdatasource.cpp:268
OGRFeature::SetFID
virtual OGRErr SetFID(GIntBig nFIDIn)
Set the feature identifier.
Definition: ogrfeature.cpp:5440
OGRCompoundCurve::transform
virtual OGRErr transform(OGRCoordinateTransformation *poCT) override
Apply arbitrary coordinate transformation to geometry.
Definition: ogrcompoundcurve.cpp:626
OGRCircularString::OGRCircularString
OGRCircularString()
Create an empty circular string.
OGRCompoundCurve::getNumPoints
virtual int getNumPoints() const override
Return the number of points of a curve geometry.
Definition: ogrcompoundcurve.cpp:687
OGRProjCT::GetEmitErrors
bool GetEmitErrors() const override
Definition: ogrct.cpp:389
OGRERR_UNSUPPORTED_GEOMETRY_TYPE
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Definition: ogr_core.h:295
OGRFeature::StealGeometry
OGRGeometry * StealGeometry() CPL_WARN_UNUSED_RESULT
Take away ownership of geometry.
Definition: ogrfeature.cpp:498
OGRGeometry::getCoordinateDimension
virtual int getCoordinateDimension() const
Get the dimension of the coordinates in this object.
Definition: ogrgeometry.cpp:859
OGRCircularString::exportToWkb
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known binary format.
Definition: ogrcircularstring.cpp:164
OGRSimpleCurve::get_LinearArea
virtual double get_LinearArea() const
Compute area of ring / closed linestring.
Definition: ogrlinestring.cpp:2831
OGRCoordinateTransformationOptions::Private
Definition: ogrct.cpp:56
VALIDATE_POINTER0
#define VALIDATE_POINTER0(ptr, func)
Definition: cpl_error.h:267
OGRPointIterator::getNextPoint
virtual OGRBoolean getNextPoint(OGRPoint *p)=0
Returns the next point followed by the iterator.
OGRPointIterator
Definition: ogr_geometry.h:909
OGRCompoundCurve::importFromWkb
virtual OGRErr importFromWkb(const unsigned char *, int, OGRwkbVariant, int &nBytesConsumedOut) override
Assign geometry from well known binary data.
Definition: ogrcompoundcurve.cpp:148
OGRCompoundCurve::exportToWkt
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known text format.
Definition: ogrcompoundcurve.cpp:211
OGRCurvePolygon::flattenTo2D
virtual void flattenTo2D() override
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrcurvepolygon.cpp:165
cpl_error.h
OGRCircularString::exportToWkt
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known text format.
Definition: ogrcircularstring.cpp:207
OGRCompoundCurve
Definition: ogr_geometry.h:1582
OGRSimpleCurve::getNumPoints
virtual int getNumPoints() const override
Fetch vertex count.
Definition: ogr_geometry.h:1159
OGRCompoundCurve::get_Area
virtual double get_Area() const override
Get the area of the (closed) curve.
Definition: ogrcompoundcurve.cpp:863
OGRGeometry::getGeometryType
virtual OGRwkbGeometryType getGeometryType() const =0
Fetch geometry type.
OGRGeometry::swapXY
virtual void swapXY()
Swap x and y coordinates.
Definition: ogrgeometry.cpp:5735
OGRFeature::SetNativeMediaType
void SetNativeMediaType(const char *pszNativeMediaType)
Sets the native media type for the feature.
Definition: ogrfeature.cpp:6890
OGRSpatialReference::Release
void Release()
Decrements the reference count by one, and destroy if zero.
Definition: ogrspatialreference.cpp:931
OGRGeometry::toCurve
OGRCurve * toCurve()
Definition: ogr_geometry.h:538
wkbPoint
@ wkbPoint
Definition: ogr_core.h:321
OGRCurvePolygon::IsEmpty
virtual OGRBoolean IsEmpty() const override
Returns TRUE (non-zero) if the object has no points.
Definition: ogrcurvepolygon.cpp:717
OGRCompoundCurve::setMeasured
virtual void setMeasured(OGRBoolean bIsMeasured) override
Add or remove the M coordinate dimension.
Definition: ogrcompoundcurve.cpp:404
OGRCurvePolygon::get_Area
virtual double get_Area() const override
Get the area of the surface object.
Definition: ogrcurvepolygon.cpp:668
OGRCoordinateTransformationOptions
Definition: ogr_spatialref.h:772
CPLString::Printf
CPLSTRING_METHOD_DLL CPLString & Printf(const char *pszFormat,...)
Definition: cplstring.cpp:59
OGRSimpleCurve::exportToWkb
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known binary format.
Definition: ogrlinestring.cpp:1653
OGRFieldDefn::SetName
void SetName(const char *)
Reset the name of this field.
Definition: ogrfielddefn.cpp:157
OGRCurve::end
ConstIterator end() const
Definition: ogrcurve.cpp:623
wkbCurvePolygonZ
@ wkbCurvePolygonZ
Definition: ogr_core.h:354
OGRSimpleCurve::importFromWkt
virtual OGRErr importFromWkt(const char **ppszInput)=0
Assign geometry from well known text data.
OGRSpatialReference::GetAuthorityCode
const char * GetAuthorityCode(const char *pszTargetKey) const
Get the authority code for a node.
Definition: ogrspatialreference.cpp:7381
OGRCircularString::get_Length
virtual double get_Length() const override
Returns the length of the curve.
Definition: ogrcircularstring.cpp:225
VSI_REALLOC_VERBOSE
#define VSI_REALLOC_VERBOSE(pOldPtr, nNewSize)
Definition: cpl_vsi.h:288
OGR_DS_GetDriver
OGRSFDriverH OGR_DS_GetDriver(OGRDataSourceH)
Returns the driver that the dataset was opened with.
Definition: ogrdatasource.cpp:333
OGRCurve::begin
ConstIterator begin() const
Definition: ogrcurve.cpp:618
OGRStyleTable
Definition: ogr_featurestyle.h:85
OGRCurvePolygon::CurvePolyToPoly
virtual OGRPolygon * CurvePolyToPoly(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const
Return a polygon from a curve polygon.
Definition: ogrcurvepolygon.cpp:569
OGRGeometry::set3D
virtual void set3D(OGRBoolean bIs3D)
Add or remove the Z coordinate dimension.
Definition: ogrgeometry.cpp:1025
wkbCompoundCurveZM
@ wkbCompoundCurveZM
Definition: ogr_core.h:389
OGRSpatialReference::SetDataAxisToSRSAxisMapping
OGRErr SetDataAxisToSRSAxisMapping(const std::vector< int > &mapping)
Set a custom data axis to CRS axis mapping.
Definition: ogrspatialreference.cpp:10709
OGRGeometryCollection::getNumGeometries
int getNumGeometries() const
Fetch number of geometries in container.
Definition: ogrgeometrycollection.cpp:251
CPLCalloc
void * CPLCalloc(size_t, size_t)
Definition: cpl_conv.cpp:138
OGRFieldDefn::SetType
void SetType(OGRFieldType eTypeIn)
Set the type of this field. This should never be done to an OGRFieldDefn that is already part of an O...
Definition: ogrfielddefn.cpp:277
OGRGeometry::FromHandle
static OGRGeometry * FromHandle(OGRGeometryH hGeom)
Definition: ogr_geometry.h:517
OGRLayer::GetSpatialRef
virtual OGRSpatialReference * GetSpatialRef()
Fetch the spatial reference system for this layer.
Definition: ogrlayer.cpp:1037
OGRCurvePolygon::getExteriorRingCurve
OGRCurve * getExteriorRingCurve()
Fetch reference to external polygon ring.
Definition: ogrcurvepolygon.cpp:201
wkbNDR
@ wkbNDR
Definition: ogr_core.h:492
OGRCompoundCurvePointIterator
Definition: ogrcompoundcurve.cpp:704
OGRCurvePolygon::hasCurveGeometry
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const override
Returns if this geometry is or has curve geometry.
Definition: ogrcurvepolygon.cpp:594
OGRFeatureDefn::GetGeomFieldIndex
virtual int GetGeomFieldIndex(const char *) const
Find geometry field by name.
Definition: ogrfeaturedefn.cpp:916
OGRGeometryCollection
Definition: ogr_geometry.h:2097
CPLPopErrorHandler
void CPLPopErrorHandler(void)
Definition: cpl_error.cpp:1242
OGRGeometry::hasCurveGeometry
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const
Returns if this geometry is or has curve geometry.
Definition: ogrgeometry.cpp:3089
wkbVariantOldOgc
@ wkbVariantOldOgc
Definition: ogr_core.h:425
OGRFieldDefn::GetWidth
int GetWidth() const
Get the formatting width for this field.
Definition: ogr_feature.h:127
cpl_vsi.h
OGRCoordinateTransformation::GetTargetCS
virtual OGRSpatialReference * GetTargetCS()=0
OGRSpatialReference
Definition: ogr_spatialref.h:157
wkbCompoundCurve
@ wkbCompoundCurve
Definition: ogr_core.h:335
OGRGeometryCollection::getGeometryRef
OGRGeometry * getGeometryRef(int)
Fetch geometry from container.
Definition: ogrgeometrycollection.cpp:276
OCTNewCoordinateTransformationEx
OGRCoordinateTransformationH OCTNewCoordinateTransformationEx(OGRSpatialReferenceH hSourceSRS, OGRSpatialReferenceH hTargetSRS, OGRCoordinateTransformationOptionsH hOptions)
Definition: ogrct.cpp:620
OGRLayer::GetFeatureCount
virtual GIntBig GetFeatureCount(int bForce=TRUE)
Fetch the feature count in this layer.
Definition: ogrlayer.cpp:173
OGRSpatialReference::exportToProj4
OGRErr exportToProj4(char **) const
Export coordinate system in PROJ format.
Definition: ogrspatialreference.cpp:9752
OGRCompoundCurvePointIterator::getNextPoint
OGRBoolean getNextPoint(OGRPoint *p) override
Returns the next point followed by the iterator.
Definition: ogrcompoundcurve.cpp:723
OGRCircularString::segmentize
virtual void segmentize(double dfMaxLength) override
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrcircularstring.cpp:351
OGRProjCT::Initialize
int Initialize(const OGRSpatialReference *poSource, const OGRSpatialReference *poTarget, const OGRCoordinateTransformationOptions &options)
Definition: ogrct.cpp:678
OGRSpatialReference::Clone
OGRSpatialReference * Clone() const
Make a duplicate of this OGRSpatialReference.
Definition: ogrspatialreference.cpp:1187
OGRCompoundCurve::importFromWkt
virtual OGRErr importFromWkt(const char **ppszInput)=0
Assign geometry from well known text data.
OGRFeature::GetFieldCount
int GetFieldCount() const
Fetch number of fields on this feature. This will always be the same as the field count for the OGRFe...
Definition: ogr_feature.h:600
OGRCircularString::get_Area
virtual double get_Area() const override
Get the area of the (closed) curve.
Definition: ogrcircularstring.cpp:865
wkbVariantPostGIS1
@ wkbVariantPostGIS1
Definition: ogr_core.h:427
OGRCircularString::IsValid
virtual OGRBoolean IsValid() const override
Test if the geometry is valid.
Definition: ogrcircularstring.cpp:705
OGRCurvePolygon::Intersects
virtual OGRBoolean Intersects(const OGRGeometry *) const override
Do these features intersect?
Definition: ogrcurvepolygon.cpp:799
OLCSequentialWrite
#define OLCSequentialWrite
Definition: ogr_core.h:753
OGRCurve::IsConvex
virtual OGRBoolean IsConvex() const
Returns if a (closed) curve forms a convex shape.
Definition: ogrcurve.cpp:276
OGRGeometry
Definition: ogr_geometry.h:287
OGRSpatialReference::IsSame
int IsSame(const OGRSpatialReference *) const
Do these two spatial references describe the same system ?
Definition: ogrspatialreference.cpp:8157
OGRGeometry::IsValid
virtual OGRBoolean IsValid() const
Test if the geometry is valid.
Definition: ogrgeometry.cpp:2047
OGRGeometry::getGeometryName
virtual const char * getGeometryName() const =0
Fetch WKT name for geometry type.
OGR_DS_ExecuteSQL
OGRLayerH OGR_DS_ExecuteSQL(OGRDataSourceH, const char *, OGRGeometryH, const char *)
Execute an SQL statement against the data store.
Definition: ogrdatasource.cpp:214
OGRSFDriverH
void * OGRSFDriverH
Definition: ogr_api.h:513
ograpispy.h
wkbCircularString
@ wkbCircularString
Definition: ogr_core.h:333
OCTTransform4D
int OCTTransform4D(OGRCoordinateTransformationH hCT, int nCount, double *x, double *y, double *z, double *t, int *pabSuccess)
Definition: ogrct.cpp:2061
OGRSimpleCurve::IsEmpty
virtual OGRBoolean IsEmpty() const override
Returns TRUE (non-zero) if the object has no points.
Definition: ogrlinestring.cpp:2526
OGR_DS_DeleteLayer
OGRErr OGR_DS_DeleteLayer(OGRDataSourceH, int)
Delete the indicated layer from the datasource.
Definition: ogrdatasource.cpp:175
OGRCompoundCurve::getEnvelope
virtual void getEnvelope(OGREnvelope *psEnvelope) const override
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrcompoundcurve.cpp:249
OGRSpatialReference::FromHandle
static OGRSpatialReference * FromHandle(OGRSpatialReferenceH hSRS)
Definition: ogr_spatialref.h:663
OGRLayer
Definition: ogrsf_frmts.h:71
CPLString
Convenient string class based on std::string.
Definition: cpl_string.h:330
OGRCoordinateTransformationOptions::~OGRCoordinateTransformationOptions
~OGRCoordinateTransformationOptions()
Destroys a OGRCoordinateTransformationOptions.
Definition: ogrct.cpp:94
OGRSpatialReference::IsProjected
int IsProjected() const
Check if projected coordinate system.
Definition: ogrspatialreference.cpp:7642
OGRPoint
Definition: ogr_geometry.h:811
OGRPointIterator::destroy
static void destroy(OGRPointIterator *)
Destroys a point iterator.
Definition: ogrcurve.cpp:448
OGRFieldDefn::GetPrecision
int GetPrecision() const
Get the formatting precision for this field. This should normally be zero for fields of types other t...
Definition: ogr_feature.h:130
OGRCompoundCurve::stealCurve
OGRCurve * stealCurve(int)
"Steal" reference to curve.
Definition: ogrcompoundcurve.cpp:497
ogr_geometry.h
OGRSimpleCurve::getY
double getY(int i) const
Get Y at vertex.
Definition: ogr_geometry.h:1162
OGRLayer::GetGeometryColumn
virtual const char * GetGeometryColumn()
This method returns the name of the underlying database column being used as the geometry column,...
Definition: ogrlayer.cpp:1624
OGRLayer::GetSpatialFilter
virtual OGRGeometry * GetSpatialFilter()
This method returns the current spatial filter for this layer.
Definition: ogrlayer.cpp:1085
OGRCurvePolygon::empty
virtual void empty() override
Clear geometry information. This restores the geometry to its initial state after construction,...
Definition: ogrcurvepolygon.cpp:128
OGRFeature::SetNativeData
void SetNativeData(const char *pszNativeData)
Sets the native data for the feature.
Definition: ogrfeature.cpp:6834
OAO_East
@ OAO_East
Definition: ogr_srs_api.h:52
OGRGeometry::operator=
OGRGeometry & operator=(const OGRGeometry &other)
Assignment operator.
Definition: ogrgeometry.cpp:137
CPLRealloc
void * CPLRealloc(void *, size_t)
Definition: cpl_conv.cpp:225
OGRGeomFieldDefn::GetNameRef
const char * GetNameRef() const
Fetch name of this field.
Definition: ogr_feature.h:203
wkbCircularStringZM
@ wkbCircularStringZM
Definition: ogr_core.h:388
OGRCompoundCurve::getGeometryType
virtual OGRwkbGeometryType getGeometryType() const override
Fetch geometry type.
Definition: ogrcompoundcurve.cpp:102
OGRCoordinateTransformation::DestroyCT
static void DestroyCT(OGRCoordinateTransformation *poCT)
OGRCoordinateTransformation destructor.
Definition: ogrct.cpp:434
OGRCompoundCurve::EndPoint
virtual void EndPoint(OGRPoint *) const override
Return the curve end point.
Definition: ogrcompoundcurve.cpp:300
EQUAL
#define EQUAL(a, b)
Definition: cpl_port.h:569
OGR_DS_SyncToDisk
OGRErr OGR_DS_SyncToDisk(OGRDataSourceH)
Definition: ogrdatasource.cpp:317
OGRStyleTableH
void * OGRStyleTableH
Definition: ogr_api.h:304
wkbHasZ
#define wkbHasZ(x)
Definition: ogr_core.h:446
OGRFeature::SetFieldsFrom
OGRErr SetFieldsFrom(const OGRFeature *, const int *, int=TRUE)
Set fields from another feature.
Definition: ogrfeature.cpp:5962
OGRFieldDefn::GetNameRef
const char * GetNameRef() const
Fetch name of this field.
Definition: ogr_feature.h:113
wkbCircularStringZ
@ wkbCircularStringZ
Definition: ogr_core.h:352
OGRBoolean
int OGRBoolean
Definition: ogr_core.h:306
OGRCircularString::hasCurveGeometry
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const override
Returns if this geometry is or has curve geometry.
Definition: ogrcircularstring.cpp:716
OGR_DS_TestCapability
int OGR_DS_TestCapability(OGRDataSourceH, const char *)
Test if capability is available.
Definition: ogrdatasource.cpp:255
OGRFieldDefn::SetPrecision
void SetPrecision(int nPrecisionIn)
Set the formatting precision for this field in characters.
Definition: ogr_feature.h:131
OGRCircularString::importFromWkt
virtual OGRErr importFromWkt(const char **ppszInput)=0
Assign geometry from well known text data.
OGRFeatureDefn::GetFieldDefn
virtual OGRFieldDefn * GetFieldDefn(int i)
Fetch field definition.
Definition: ogrfeaturedefn.cpp:330
OGRProjCT::GetSourceCS
OGRSpatialReference * GetSourceCS() override
Definition: ogrct.cpp:1394
OGRPoint::setX
void setX(double xIn)
Assign point X coordinate.
Definition: ogr_geometry.h:866
OGRLayer::StartTransaction
virtual OGRErr StartTransaction() CPL_WARN_UNUSED_RESULT
For datasources which support transactions, StartTransaction creates a transaction.
Definition: ogrlayer.cpp:912
OGRCoordinateTransformation::Transform
int Transform(int nCount, double *x, double *y, double *z=nullptr, int *pabSuccess=nullptr)
Definition: ogrct.cpp:1414
VSI_MALLOC2_VERBOSE
#define VSI_MALLOC2_VERBOSE(nSize1, nSize2)
Definition: cpl_vsi.h:273
OGRCompoundCurve::IsEmpty
virtual OGRBoolean IsEmpty() const override
Returns TRUE (non-zero) if the object has no points.
Definition: ogrcompoundcurve.cpp:267
OLCCurveGeometries
#define OLCCurveGeometries
Definition: ogr_core.h:768
wkbFlatten
#define wkbFlatten(x)
Definition: ogr_core.h:440
OGR_DS_ReleaseResultSet
void OGR_DS_ReleaseResultSet(OGRDataSourceH, OGRLayerH)
Release results of OGR_DS_ExecuteSQL().
Definition: ogrdatasource.cpp:238
OGRSpatialReference::GetAuthorityName
const char * GetAuthorityName(const char *pszTargetKey) const
Get the authority name for a node.
Definition: ogrspatialreference.cpp:7465
CPLPushErrorHandler
void CPLPushErrorHandler(CPLErrorHandler)
Definition: cpl_error.cpp:1185
OGRGeometryFactory::curveToLineString
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
OLCAlterFieldDefn
#define OLCAlterFieldDefn
Definition: ogr_core.h:761
OGRGeometry::exportToWkb
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const =0
Convert a geometry into well known binary format.
CPLAssert
#define CPLAssert(expr)
Definition: cpl_error.h:186
OGRCompoundCurve::Value
virtual void Value(double, OGRPoint *) const override
Fetch point at given distance along curve.
Definition: ogrcompoundcurve.cpp:310
OGRRawPoint
Definition: ogr_geometry.h:64
OGRGeometry::clone
virtual OGRGeometry * clone() const CPL_WARN_UNUSED_RESULT=0
Make a copy of this object.
OGRCurvePolygon::exportToWkt
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant eWkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known text format.
Definition: ogrcurvepolygon.cpp:539
OGRGeometry::flattenTo2D
virtual void flattenTo2D()=0
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
OGRCurve::StartPoint
virtual void StartPoint(OGRPoint *) const =0
Return the curve start point.
OGRCompoundCurve::Equals
virtual OGRBoolean Equals(const OGRGeometry *) const override
Returns TRUE if two geometries are equivalent.
Definition: ogrcompoundcurve.cpp:379
OGRSpatialReferenceH
void * OGRSpatialReferenceH
Definition: ogr_api.h:74
OGRLayer::RollbackTransaction
virtual OGRErr RollbackTransaction()
For datasources which support transactions, RollbackTransaction will roll back a datasource to its st...
Definition: ogrlayer.cpp:966
OGRCurvePolygon::WkbSize
virtual int WkbSize() const override
Returns size of related binary representation.
Definition: ogrcurvepolygon.cpp:440
OGRCompoundCurve::hasCurveGeometry
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const override
Returns if this geometry is or has curve geometry.
Definition: ogrcompoundcurve.cpp:662
OGRCompoundCurve::set3D
virtual void set3D(OGRBoolean bIs3D) override
Add or remove the Z coordinate dimension.
Definition: ogrcompoundcurve.cpp:399
OGRGeomFieldDefn::GetSpatialRef
virtual OGRSpatialReference * GetSpatialRef() const
Fetch spatial reference system of this field.
Definition: ogrgeomfielddefn.cpp:438
OGRCoordinateTransformationOptions::OGRCoordinateTransformationOptions
OGRCoordinateTransformationOptions()
Constructs a new OGRCoordinateTransformationOptions.
Definition: ogrct.cpp:81
OCTTransformEx
int CPL_STDCALL OCTTransformEx(OGRCoordinateTransformationH hCT, int nCount, double *x, double *y, double *z, int *pabSuccess)
Definition: ogrct.cpp:2034
OGRSurface
Definition: ogr_geometry.h:1729
CPLTestBool
bool CPLTestBool(const char *pszValue)
Definition: cpl_string.cpp:1526
OGRSimpleCurve::operator=
OGRSimpleCurve & operator=(const OGRSimpleCurve &other)
Assignment operator.
Definition: ogrlinestring.cpp:114
OGRLineString::get_Area
virtual double get_Area() const override
Get the area of the (closed) curve.
OGRCurve::getNumPoints
virtual int getNumPoints() const =0
Return the number of points of a curve geometry.
OGRwkbByteOrder
OGRwkbByteOrder
Definition: ogr_core.h:490
OGRCoordinateTransformationH
void * OGRCoordinateTransformationH
Definition: ogr_api.h:76
OCTDestroyCoordinateTransformation
void CPL_STDCALL OCTDestroyCoordinateTransformation(OGRCoordinateTransformationH)
OGRCoordinateTransformation destructor.
Definition: ogrct.cpp:407
OGRFeatureDefn::GetGeomFieldDefn
virtual OGRGeomFieldDefn * GetGeomFieldDefn(int i)
Fetch geometry field definition.
Definition: ogrfeaturedefn.cpp:681
OGRCircularString
Definition: ogr_geometry.h:1397
OLCDeleteFeature
#define OLCDeleteFeature
Definition: ogr_core.h:763
OAMS_TRADITIONAL_GIS_ORDER
@ OAMS_TRADITIONAL_GIS_ORDER
Definition: ogr_srs_api.h:653
OGRGeometryFactory::createGeometry
static OGRGeometry * createGeometry(OGRwkbGeometryType)
Create an empty geometry of desired type.
Definition: ogrgeometryfactory.cpp:528
wkbCurvePolygon
@ wkbCurvePolygon
Definition: ogr_core.h:336
OGRFeature::GetStyleString
virtual const char * GetStyleString() const
Fetch style string for this feature.
Definition: ogrfeature.cpp:6117
OGRGeometry::Intersects
virtual OGRBoolean Intersects(const OGRGeometry *) const
Do these features intersect?
Definition: ogrgeometry.cpp:486
CPLE_ObjectNull
#define CPLE_ObjectNull
Definition: cpl_error.h:117
OGRSimpleCurve::StartPoint
virtual void StartPoint(OGRPoint *) const override
Return the curve start point.
Definition: ogrlinestring.cpp:1988
OGRFeatureDefn::GetFieldCount
virtual int GetFieldCount() const
Fetch number of fields on this feature.
Definition: ogrfeaturedefn.cpp:286
OGRCompoundCurve::addCurveDirectly
OGRErr addCurveDirectly(OGRCurve *, double dfToleranceEps=1e-14)
Add a curve directly to the container.
Definition: ogrcompoundcurve.cpp:555
OGRLayer::ToHandle
static OGRLayerH ToHandle(OGRLayer *poLayer)
Definition: ogrsf_frmts.h:254
OGRGeometry::toPoint
OGRPoint * toPoint()
Definition: ogr_geometry.h:524
VALIDATE_POINTER1
#define VALIDATE_POINTER1(ptr, func, rc)
Definition: cpl_error.h:276
OGRLayer::CommitTransaction
virtual OGRErr CommitTransaction() CPL_WARN_UNUSED_RESULT
For datasources which support transactions, CommitTransaction commits a transaction.
Definition: ogrlayer.cpp:939
OGRCurvePolygon::set3D
virtual void set3D(OGRBoolean bIs3D) override
Add or remove the Z coordinate dimension.
Definition: ogrcurvepolygon.cpp:694
OGRERR_FAILURE
#define OGRERR_FAILURE
Definition: ogr_core.h:298
OGRCoordinateTransformationOptions::SetAreaOfInterest
bool SetAreaOfInterest(double dfWestLongitudeDeg, double dfSouthLatitudeDeg, double dfEastLongitudeDeg, double dfNorthLatitudeDeg)
Sets an area of interest.
Definition: ogrct.cpp:144
wkbCircularStringM
@ wkbCircularStringM
Definition: ogr_core.h:370
OGRCompoundCurve::get_Length
virtual double get_Length() const override
Returns the length of the curve.
Definition: ogrcompoundcurve.cpp:278
OGRERR_NOT_ENOUGH_MEMORY
#define OGRERR_NOT_ENOUGH_MEMORY
Definition: ogr_core.h:294
OGRCompoundCurve::clone
virtual OGRGeometry * clone() const override
Make a copy of this object.
Definition: ogrcompoundcurve.cpp:222
OGRSimpleCurve::importFromWkb
virtual OGRErr importFromWkb(const unsigned char *, int, OGRwkbVariant, int &nBytesConsumedOut) override
Assign geometry from well known binary data.
Definition: ogrlinestring.cpp:1537
ogrsf_frmts.h
wkbCurvePolygonM
@ wkbCurvePolygonM
Definition: ogr_core.h:372
OGRCurvePolygon::transform
virtual OGRErr transform(OGRCoordinateTransformation *poCT) override
Apply arbitrary coordinate transformation to geometry.
Definition: ogrcurvepolygon.cpp:658
CPLDebug
void CPLDebug(const char *, const char *,...)
Definition: cpl_error.cpp:602
OGRLineString::CurveToLine
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const override
Return a linestring from a curve geometry.
Definition: ogrlinestring.cpp:2809
OGRCurve::ContainsPoint
virtual int ContainsPoint(const OGRPoint *p) const
Returns if a point is contained in a (closed) curve.
Definition: ogrcurve.cpp:396
OGRCurvePolygon::setCoordinateDimension
virtual void setCoordinateDimension(int nDimension) override
Set the coordinate dimension.
Definition: ogrcurvepolygon.cpp:688
OGRDataSourceH
void * OGRDataSourceH
Definition: ogr_api.h:511
OGRFieldDefn
Definition: ogr_feature.h:93
ogr_srs_api.h
OGRCurve::getDimension
virtual int getDimension() const override
Get the dimension of this object.
Definition: ogrcurve.cpp:72
OGRFeature::SetStyleString
virtual void SetStyleString(const char *)
Set feature style string.
Definition: ogrfeature.cpp:6169
OGRCurvePolygon::importFromWkb
virtual OGRErr importFromWkb(const unsigned char *, int, OGRwkbVariant, int &nBytesConsumedOut) override
Assign geometry from well known binary data.
Definition: ogrcurvepolygon.cpp:464
CPLMalloc
void * CPLMalloc(size_t)
Definition: cpl_conv.cpp:168
wkbVariantIso
@ wkbVariantIso
Definition: ogr_core.h:426
OGR_GT_IsCurve
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6711
OGRSimpleCurve::addSubLineString
void addSubLineString(const OGRLineString *, int nStartVertex=0, int nEndVertex=-1)
Add a segment of another linestring to this one.
Definition: ogrlinestring.cpp:1428
OGRSimpleCurve::addPoint
void addPoint(const OGRPoint *)
Add a point to a line string.
Definition: ogrlinestring.cpp:793
OGRGeometry::assignSpatialReference
virtual void assignSpatialReference(OGRSpatialReference *poSR)
Assign spatial reference to this object.
Definition: ogrgeometry.cpp:416
OGRCurvePolygon::getGeometryType
virtual OGRwkbGeometryType getGeometryType() const override
Fetch geometry type.
Definition: ogrcurvepolygon.cpp:138
OGRCurve::toSimpleCurve
OGRSimpleCurve * toSimpleCurve()
Definition: ogr_geometry.h:1002
cpl_conv.h
OGRCircularString::getGeometryName
virtual const char * getGeometryName() const override
Fetch WKT name for geometry type.
Definition: ogrcircularstring.cpp:125
wkbNone
@ wkbNone
Definition: ogr_core.h:349
OGRCurvePolygon::CastToPolygon
static OGRPolygon * CastToPolygon(OGRCurvePolygon *poCP)
Convert to polygon.
Definition: ogrcurvepolygon.cpp:830
cpl_string.h
OGRGeometry::getSpatialReference
OGRSpatialReference * getSpatialReference(void) const
Returns spatial reference system for object.
Definition: ogr_geometry.h:435
OGRGeometry::toLineString
OGRLineString * toLineString()
Definition: ogr_geometry.h:566
OGRFeature::SetGeomFieldDirectly
OGRErr SetGeomFieldDirectly(int iField, OGRGeometry *)
Set feature geometry of a specified geometry field.
Definition: ogrfeature.cpp:802
OGRCurve::CastToCompoundCurve
static OGRCompoundCurve * CastToCompoundCurve(OGRCurve *puCurve)
Cast to compound curve.
Definition: ogrcurve.cpp:322
OGR_DS_CopyLayer
OGRLayerH OGR_DS_CopyLayer(OGRDataSourceH, OGRLayerH, const char *, char **)
Duplicate an existing layer.
Definition: ogrdatasource.cpp:157
OGRCurve::EndPoint
virtual void EndPoint(OGRPoint *) const =0
Return the curve end point.
OGRCurvePolygon::clone
virtual OGRGeometry * clone() const override
Make a copy of this object.
Definition: ogrcurvepolygon.cpp:103
OLCRandomWrite
#define OLCRandomWrite
Definition: ogr_core.h:754
OGRCompoundCurve::exportToWkb
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known binary format.
Definition: ogrcompoundcurve.cpp:174
VSI_CALLOC_VERBOSE
#define VSI_CALLOC_VERBOSE(nCount, nSize)
Definition: cpl_vsi.h:283
wkbCompoundCurveM
@ wkbCompoundCurveM
Definition: ogr_core.h:371
OCTDestroyCoordinateTransformationOptions
void OCTDestroyCoordinateTransformationOptions(OGRCoordinateTransformationOptionsH)
Destroy coordinate transformation options.
Definition: ogrct.cpp:121
OCTCoordinateTransformationOptionsSetOperation
int OCTCoordinateTransformationOptionsSetOperation(OGRCoordinateTransformationOptionsH hOptions, const char *pszCO, int bReverseCO)
Sets a coordinate operation.
Definition: ogrct.cpp:266
OGR_DS_GetLayer
OGRLayerH OGR_DS_GetLayer(OGRDataSourceH, int)
Fetch a layer by index.
Definition: ogrdatasource.cpp:285
OGRDataSource
Definition: ogrsf_frmts.h:318
OGRSimpleCurve
Definition: ogr_geometry.h:1036
OGRCompoundCurve::swapXY
virtual void swapXY() override
Swap x and y coordinates.
Definition: ogrcompoundcurve.cpp:653
OGRSpatialReference::GetAxis
const char * GetAxis(const char *pszTargetKey, int iAxis, OGRAxisOrientation *peOrientation) const
Fetch the orientation of one axis.
Definition: ogrspatialreference.cpp:9021
OGRAxisOrientation
OGRAxisOrientation
Definition: ogr_srs_api.h:48
OGRLayer::SetSpatialFilterRect
virtual void SetSpatialFilterRect(double dfMinX, double dfMinY, double dfMaxX, double dfMaxY)
Set a new rectangular spatial filter.
Definition: ogrlayer.cpp:1184
OGRGeometryH
void * OGRGeometryH
Definition: ogr_api.h:60
CPLError
void CPLError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt,...)
Definition: cpl_error.cpp:308
OGRGeomFieldDefn
Definition: ogr_feature.h:183
OGRSimpleCurve::exportToWkt
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known text format.
Definition: ogrlinestring.cpp:1870
OGRCompoundCurve::getNumCurves
int getNumCurves() const
Return the number of curves.
Definition: ogrcompoundcurve.cpp:432
OGRLayer::FromHandle
static OGRLayer * FromHandle(OGRLayerH hLayer)
Definition: ogrsf_frmts.h:260
VSIFree
void VSIFree(void *)
Definition: cpl_vsisimple.cpp:827
OGRCompoundCurve::getCurve
OGRCurve * getCurve(int)
Fetch reference to indicated internal ring.
Definition: ogrcompoundcurve.cpp:456
CPLE_NotSupported
#define CPLE_NotSupported
Definition: cpl_error.h:109
OGRERR_NOT_ENOUGH_DATA
#define OGRERR_NOT_ENOUGH_DATA
Definition: ogr_core.h:293
OGRProjCT
Definition: ogrct.cpp:278
OGRERR_CORRUPT_DATA
#define OGRERR_CORRUPT_DATA
Definition: ogr_core.h:297
OGRCoordinateTransformation
Definition: ogr_spatialref.h:685
OLCCreateField
#define OLCCreateField
Definition: ogr_core.h:758
OGRCompoundCurve::StartPoint
virtual void StartPoint(OGRPoint *) const override
Return the curve start point.
Definition: ogrcompoundcurve.cpp:290
OGRCurve::getPointIterator
virtual OGRPointIterator * getPointIterator() const =0
Returns a point iterator over the curve.
OGRCircularString::importFromWkb
virtual OGRErr importFromWkb(const unsigned char *, int, OGRwkbVariant, int &nBytesConsumedOut) override
Assign geometry from well known binary data.
Definition: ogrcircularstring.cpp:138
OGRFieldDefn::GetType
OGRFieldType GetType() const
Fetch type of this field.
Definition: ogr_feature.h:115
OGRCoordinateTransformation::FromHandle
static OGRCoordinateTransformation * FromHandle(OGRCoordinateTransformationH hCT)
Definition: ogr_spatialref.h:756
OGRSpatialReference::GetExtension
const char * GetExtension(const char *pszTargetKey, const char *pszName, const char *pszDefault=nullptr) const
Fetch extension value.
Definition: ogrspatialreference.cpp:8834
OGRSimpleCurve::getZ
double getZ(int i) const
Get Z at vertex.
Definition: ogrlinestring.cpp:381
OGRCurve::get_IsClosed
virtual int get_IsClosed() const
Return TRUE if curve is closed.
Definition: ogrcurve.cpp:95
OGRCoordinateTransformationOptions::SetCoordinateOperation
bool SetCoordinateOperation(const char *pszCT, bool bReverseCT)
Sets a coordinate operation.
Definition: ogrct.cpp:225
OGR_DS_SetStyleTableDirectly
void OGR_DS_SetStyleTableDirectly(OGRDataSourceH, OGRStyleTableH)
Definition: ogrdatasource.cpp:359
OGRGeometry::toLinearRing
OGRLinearRing * toLinearRing()
Definition: ogr_geometry.h:580
OGRSimpleCurve::begin
Iterator begin()
Definition: ogrcurve.cpp:515
OGRErr
int OGRErr
Definition: ogr_core.h:290
wkbCompoundCurveZ
@ wkbCompoundCurveZ
Definition: ogr_core.h:353
OGRGeometry::toCurvePolygon
OGRCurvePolygon * toCurvePolygon()
Definition: ogr_geometry.h:664
OGRGeometry::segmentize
virtual void segmentize(double dfMaxLength)
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrgeometry.cpp:784
M_PI
#define M_PI
Definition: cpl_port.h:417
GIntBig
long long GIntBig
Definition: cpl_port.h:248
OCTTransform
int CPL_STDCALL OCTTransform(OGRCoordinateTransformationH hCT, int nCount, double *x, double *y, double *z)
Definition: ogrct.cpp:1453
OGRFeature::GetFieldDefnRef
const OGRFieldDefn * GetFieldDefnRef(int iField) const
Fetch definition for this field.
Definition: ogr_feature.h:602
OGRCompoundCurve::getLinearGeometry
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const override
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrcompoundcurve.cpp:677
OGRGeometry::toGeometryCollection
OGRGeometryCollection * toGeometryCollection()
Definition: ogr_geometry.h:678
OGRCurvePolygon::getNumInteriorRings
int getNumInteriorRings() const
Fetch the number of internal rings.
Definition: ogrcurvepolygon.cpp:238
OLCTransactions
#define OLCTransactions
Definition: ogr_core.h:762
OGRGeometryFactory::GetCurveParmeters
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
VSI_MALLOC_VERBOSE
#define VSI_MALLOC_VERBOSE(size)
Definition: cpl_vsi.h:268
OGRCompoundCurve::empty
virtual void empty() override
Clear geometry information. This restores the geometry to its initial state after construction,...
Definition: ogrcompoundcurve.cpp:240
OGRSimpleCurve::EndPoint
virtual void EndPoint(OGRPoint *) const override
Return the curve end point.
Definition: ogrlinestring.cpp:1998
OGRwkbGeometryType
OGRwkbGeometryType
Definition: ogr_core.h:318
OGRCurvePolygon::Equals
virtual OGRBoolean Equals(const OGRGeometry *) const override
Returns TRUE if two geometries are equivalent.
Definition: ogrcurvepolygon.cpp:639
OGRGeometryFactory::createFromWkb
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
CPL_UNUSED
#define CPL_UNUSED
Definition: cpl_port.h:948
OLCDeleteField
#define OLCDeleteField
Definition: ogr_core.h:759
OGR_DS_GetStyleTable
OGRStyleTableH OGR_DS_GetStyleTable(OGRDataSourceH)
Definition: ogrdatasource.cpp:346
OGRCircularString::operator=
OGRCircularString & operator=(const OGRCircularString &other)
Assignment operator.
Definition: ogrcircularstring.cpp:95
OGRFeature
Definition: ogr_feature.h:355
cpl_port.h
OGRCurvePolygon::getGeometryName
virtual const char * getGeometryName() const override
Fetch WKT name for geometry type.
Definition: ogrcurvepolygon.cpp:175
OGRPoint::setY
void setY(double yIn)
Assign point Y coordinate.
Definition: ogr_geometry.h:870
OGRCompoundCurve::flattenTo2D
virtual void flattenTo2D() override
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrcompoundcurve.cpp:635
OGRCurvePolygon::removeRing
OGRErr removeRing(int iIndex, bool bDelete=true)
Remove a geometry from the container.
Definition: ogrcurvepolygon.cpp:339
OGRFeature::GetNativeMediaType
const char * GetNativeMediaType() const
Returns the native media type for the feature.
Definition: ogr_feature.h:746
OGRCompoundCurve::get_AreaOfCurveSegments
virtual double get_AreaOfCurveSegments() const override
Definition: ogrcompoundcurve.cpp:903
OGRSpatialReference::GetTOWGS84
OGRErr GetTOWGS84(double *padfCoef, int nCoeff=7) const
Fetch TOWGS84 parameters, if available.
Definition: ogrspatialreference.cpp:8692
ogr_api.h
OGRFeature::SetGeomField
OGRErr SetGeomField(int iField, const OGRGeometry *)
Set feature geometry of a specified geometry field.
Definition: ogrfeature.cpp:880
OGRCurve::ConstIterator::Private
Definition: ogrcurve.cpp:580
OGRPoint::getZ
double getZ() const
Fetch Z coordinate.
Definition: ogr_geometry.h:857
OGRPoint::setZ
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
OCTNewCoordinateTransformation
OGRCoordinateTransformationH CPL_STDCALL OCTNewCoordinateTransformation(OGRSpatialReferenceH hSourceSRS, OGRSpatialReferenceH hTargetSRS)
Definition: ogrct.cpp:570
OGRCurvePolygon::addRing
virtual OGRErr addRing(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:362
OGRGeometry::WkbSize
virtual int WkbSize() const =0
Returns size of related binary representation.
OGRCompoundCurve::assignSpatialReference
virtual void assignSpatialReference(OGRSpatialReference *poSR) override
Assign spatial reference to this object.
Definition: ogrcompoundcurve.cpp:413
OGRCompoundCurve::getPointIterator
virtual OGRPointIterator * getPointIterator() const override
Returns a point iterator over the curve.
Definition: ogrcompoundcurve.cpp:747
OGRGeometry::IsMeasured
OGRBoolean IsMeasured() const
Definition: ogr_geometry.h:365
OGRCompoundCurve::setCoordinateDimension
virtual void setCoordinateDimension(int nDimension) override
Set the coordinate dimension.
Definition: ogrcompoundcurve.cpp:394
OGRCurve
Definition: ogr_geometry.h:927
OGRCurvePolygon::assignSpatialReference
virtual void assignSpatialReference(OGRSpatialReference *poSR) override
Assign spatial reference to this object.
Definition: ogrcurvepolygon.cpp:708
OGRPoint::getY
double getY() const
Fetch Y coordinate.
Definition: ogr_geometry.h:855
OGRCompoundCurve::OGRCompoundCurve
OGRCompoundCurve()
Create an empty compound curve.
OGRCurvePolygon::segmentize
virtual void segmentize(double dfMaxLength) override
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrcurvepolygon.cpp:726
wkbGeometryCollection
@ wkbGeometryCollection
Definition: ogr_core.h:330
OGRFeatureDefn::GetGeomFieldCount
virtual int GetGeomFieldCount() const
Fetch number of geometry fields on this feature.
Definition: ogrfeaturedefn.cpp:632
OGRCircularString::getGeometryType
virtual OGRwkbGeometryType getGeometryType() const override
Fetch geometry type.
Definition: ogrcircularstring.cpp:108
OGRCircularString::getLinearGeometry
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const override
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrcircularstring.cpp:726
OGRCurvePolygon::Contains
virtual OGRBoolean Contains(const OGRGeometry *) const override
Test for containment.
Definition: ogrcurvepolygon.cpp:783
OGRProjCT::SetEmitErrors
void SetEmitErrors(bool bEmitErrors) override
Definition: ogrct.cpp:390
OGRProjCT::Transform
int Transform(int nCount, double *x, double *y, double *z, double *t, int *panSuccess) override
Definition: ogrct.cpp:1467
OGRLayer::SetNextByIndex
virtual OGRErr SetNextByIndex(GIntBig nIndex)
Move read cursor to the nIndex'th feature in the current resultset.
Definition: ogrlayer.cpp:499
OGRGeometry::transform
virtual OGRErr transform(OGRCoordinateTransformation *poCT)=0
Apply arbitrary coordinate transformation to geometry.
OGRSimpleCurve::ConstIterator::Private
Definition: ogrcurve.cpp:530
OGRCurvePolygon::importFromWkt
virtual OGRErr importFromWkt(const char **ppszInput)=0
Assign geometry from well known text data.
OGRFieldDefn::SetWidth
void SetWidth(int nWidthIn)
Set the formatting width for this field in characters.
Definition: ogr_feature.h:128
OGRLinearRing
Definition: ogr_geometry.h:1315
OGRProjCT::GetTargetCS
OGRSpatialReference * GetTargetCS() override
Definition: ogrct.cpp:1404
OGRERR_NONE
#define OGRERR_NONE
Definition: ogr_core.h:292
CPLStrdup
char * CPLStrdup(const char *)
Definition: cpl_conv.cpp:293
OGRFeatureDefn
Definition: ogr_feature.h:260
CPLAtof
double CPLAtof(const char *)
Definition: cpl_strtod.cpp:117
OGRCircularString::Value
virtual void Value(double, OGRPoint *) const override
Fetch point at given distance along curve.
Definition: ogrcircularstring.cpp:565
OGRLayer::GetGeomType
virtual OGRwkbGeometryType GetGeomType()
Return the layer geometry type.
Definition: ogrlayer.cpp:1755
OGRSpatialReference::GetDataAxisToSRSAxisMapping
const std::vector< int > & GetDataAxisToSRSAxisMapping() const
Return the data axis to SRS axis mapping.
Definition: ogrspatialreference.cpp:10672
OGRCircularString::getEnvelope
virtual void getEnvelope(OGREnvelope *psEnvelope) const override
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrcircularstring.cpp:329
CPLGetLastErrorType
CPLErr CPLGetLastErrorType(void)
Definition: cpl_error.cpp:842
OGRCurve::CastToLinearRing
static OGRLinearRing * CastToLinearRing(OGRCurve *poCurve)
Cast to linear ring.
Definition: ogrcurve.cpp:375
CPLE_IllegalArg
#define CPLE_IllegalArg
Definition: cpl_error.h:107
OGRLayer::SetAttributeFilter
virtual OGRErr SetAttributeFilter(const char *)
Set a new attribute query.
Definition: ogrlayer.cpp:338
OGR_DS_SetStyleTable
void OGR_DS_SetStyleTable(OGRDataSourceH, OGRStyleTableH)
Definition: ogrdatasource.cpp:373
wkbLineString
@ wkbLineString
Definition: ogr_core.h:322
OGRCurvePolygon::setMeasured
virtual void setMeasured(OGRBoolean bIsMeasured) override
Add or remove the M coordinate dimension.
Definition: ogrcurvepolygon.cpp:699
OGRCurve::IntersectsPoint
virtual int IntersectsPoint(const OGRPoint *p) const
Returns if a point intersects a (closed) curve.
Definition: ogrcurve.cpp:416
OGRFeature::GetGeomFieldRef
OGRGeometry * GetGeomFieldRef(int iField)
Fetch pointer to feature geometry.
Definition: ogrfeature.cpp:666
OGRPolygon
Definition: ogr_geometry.h:1914
wkbMultiLineString
@ wkbMultiLineString
Definition: ogr_core.h:328
OGRCurvePolygon
Definition: ogr_geometry.h:1764
OGRCompoundCurve::CurveToLine
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const override
Return a linestring from a curve geometry.
Definition: ogrcompoundcurve.cpp:369
OGRCurvePolygon::getInteriorRingCurve
OGRCurve * getInteriorRingCurve(int)
Fetch reference to indicated internal ring.
Definition: ogrcurvepolygon.cpp:266
OGRSpatialReference::exportToWkt
OGRErr exportToWkt(char **) const
Convert this SRS into WKT 1 format.
Definition: ogrspatialreference.cpp:1330
CPLQuietErrorHandler
void CPLQuietErrorHandler(CPLErr, CPLErrorNum, const char *)
Definition: cpl_error.cpp:967
ogr_core.h
OGRCircularString::CurveToLine
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const override
Return a linestring from a curve geometry.
Definition: ogrcircularstring.cpp:662
OGRERR_NON_EXISTING_FEATURE
#define OGRERR_NON_EXISTING_FEATURE
Definition: ogr_core.h:301
OGRLayerH
void * OGRLayerH
Definition: ogr_api.h:509
OGRERR_INVALID_HANDLE
#define OGRERR_INVALID_HANDLE
Definition: ogr_core.h:300
OGRCurvePolygon::getDimension
virtual int getDimension() const override
Get the dimension of this object.
Definition: ogrcurvepolygon.cpp:155
OGRCurvePolygon::getLinearGeometry
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=nullptr) const override
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrcurvepolygon.cpp:609
OGRSpatialReference::IsGeographic
int IsGeographic() const
Check if geographic coordinate system.
Definition: ogrspatialreference.cpp:7760
CPLFree
#define CPLFree
Definition: cpl_conv.h:81
wkbUnknown
@ wkbUnknown
Definition: ogr_core.h:319
OGRSimpleCurve::reversePoints
void reversePoints(void)
Reverse point order.
Definition: ogrlinestring.cpp:1392
OGRGeometry::setMeasured
virtual void setMeasured(OGRBoolean bIsMeasured)
Add or remove the M coordinate dimension.
Definition: ogrgeometry.cpp:1048
OGRCurvePolygon::exportToWkb
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const override
Convert a geometry into well known binary format.
Definition: ogrcurvepolygon.cpp:495
CPL_DISALLOW_COPY_ASSIGN
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Definition: cpl_port.h:997
OGRFeature::GetNativeData
const char * GetNativeData() const
Returns the native data for the feature.
Definition: ogr_feature.h:745
OGRwkbVariant
OGRwkbVariant
Definition: ogr_core.h:424
OCTCoordinateTransformationOptionsSetAreaOfInterest
int OCTCoordinateTransformationOptionsSetAreaOfInterest(OGRCoordinateTransformationOptionsH hOptions, double dfWestLongitudeDeg, double dfSouthLatitudeDeg, double dfEastLongitudeDeg, double dfNorthLatitudeDeg)
Sets an area of interest.
Definition: ogrct.cpp:192
OGRFeature::GetFID
GIntBig GetFID() const
Get feature identifier.
Definition: ogr_feature.h:712
OGRCurvePolygon::stealExteriorRingCurve
OGRCurve * stealExteriorRingCurve()
"Steal" reference to external ring.
Definition: ogrcurvepolygon.cpp:307
OGRGeometry::toCompoundCurve
OGRCompoundCurve * toCompoundCurve()
Definition: ogr_geometry.h:608
OCTNewCoordinateTransformationOptions
OGRCoordinateTransformationOptionsH OCTNewCoordinateTransformationOptions(void)
Create coordinate transformation options.
Definition: ogrct.cpp:108
OGRCurvePolygon::swapXY
virtual void swapXY() override
Swap x and y coordinates.
Definition: ogrcurvepolygon.cpp:740
OGRPoint::getX
double getX() const
Fetch X coordinate.
Definition: ogr_geometry.h:853
CPLGetConfigOption
const char * CPLGetConfigOption(const char *, const char *)
Definition: cpl_conv.cpp:1692
OGRGeometry::getIsoGeometryType
OGRwkbGeometryType getIsoGeometryType() const
Get the geometry type that conforms with ISO SQL/MM Part3.
Definition: ogrgeometry.cpp:756
OGR_DS_GetLayerByName
OGRLayerH OGR_DS_GetLayerByName(OGRDataSourceH, const char *)
Fetch a layer by name.
Definition: ogrdatasource.cpp:194
OGRCurve::get_Area
virtual double get_Area() const =0
Get the area of the (closed) curve.
OGR_DS_CreateLayer
OGRLayerH OGR_DS_CreateLayer(OGRDataSourceH, const char *, OGRSpatialReferenceH, OGRwkbGeometryType, char **)
This function attempts to create a new layer on the data source with the indicated name,...
Definition: ogrdatasource.cpp:127
STARTS_WITH_CI
#define STARTS_WITH_CI(a, b)
Definition: cpl_port.h:580
OGRCompoundCurve::getGeometryName
virtual const char * getGeometryName() const override
Fetch WKT name for geometry type.
Definition: ogrcompoundcurve.cpp:119
CPLE_AppDefined
#define CPLE_AppDefined
Definition: cpl_error.h:99
GUInt32
unsigned int GUInt32
Definition: cpl_port.h:207
OGRSpatialReference::SetFromUserInput
OGRErr SetFromUserInput(const char *)
Set spatial reference from various text formats.
Definition: ogrspatialreference.cpp:3216

Generated for GDAL by doxygen 1.8.20.