30 #ifndef OGREDITABLELAYER_H_INCLUDED
31 #define OGREDITABLELAYER_H_INCLUDED
34 #include "ogrlayerdecorator.h"
37 class CPL_DLL IOGREditableLayerSynchronizer
40 virtual ~IOGREditableLayerSynchronizer();
46 class CPL_DLL OGREditableLayer :
public OGRLayerDecorator
50 IOGREditableLayerSynchronizer *m_poSynchronizer;
51 bool m_bTakeOwnershipSynchronizer;
54 std::set<GIntBig> m_oSetCreated;
55 std::set<GIntBig> m_oSetEdited;
56 std::set<GIntBig> m_oSetDeleted;
57 std::set<GIntBig>::iterator m_oIter;
58 std::set<CPLString> m_oSetDeletedFields;
60 bool m_bStructureModified;
61 bool m_bSupportsCreateGeomField;
62 bool m_bSupportsCurveGeometries;
66 bool bCanStealSrcFeature,
67 bool bHideDeletedFields);
69 int GetSrcGeomFieldIndex(
int iGeomField);
73 OGREditableLayer(
OGRLayer* poDecoratedLayer,
74 bool bTakeOwnershipDecoratedLayer,
75 IOGREditableLayerSynchronizer* poSynchronizer,
76 bool bTakeOwnershipSynchronizer);
77 virtual ~OGREditableLayer();
79 void SetNextFID(
GIntBig nNextFID);
80 void SetSupportsCreateGeomField(
bool SupportsCreateGeomField);
81 void SetSupportsCurveGeometries(
bool bSupportsCurveGeometries);
84 virtual void SetSpatialFilter(
OGRGeometry * )
override;
85 virtual void SetSpatialFilterRect(
double dfMinX,
double dfMinY,
86 double dfMaxX,
double dfMaxY )
override;
87 virtual void SetSpatialFilter(
int iGeomField,
OGRGeometry * )
override;
88 virtual void SetSpatialFilterRect(
int iGeomField,
double dfMinX,
double dfMinY,
89 double dfMaxX,
double dfMaxY )
override;
91 virtual OGRErr SetAttributeFilter(
const char * )
override;
93 virtual void ResetReading()
override;
106 virtual GIntBig GetFeatureCount(
int bForce = TRUE )
override;
107 virtual OGRErr GetExtent(
int iGeomField, OGREnvelope *psExtent,
int bForce = TRUE)
override;
108 virtual OGRErr GetExtent(OGREnvelope *psExtent,
int bForce = TRUE)
override;
110 virtual int TestCapability(
const char * )
override;
113 int bApproxOK = TRUE )
override;
114 virtual OGRErr DeleteField(
int iField )
override;
115 virtual OGRErr ReorderFields(
int* panMap )
override;
116 virtual OGRErr AlterFieldDefn(
int iField,
OGRFieldDefn* poNewFieldDefn,
int nFlags )
override;
119 int bApproxOK = TRUE )
override;
121 virtual OGRErr SyncToDisk()
override;
123 virtual OGRErr StartTransaction()
override;
124 virtual OGRErr CommitTransaction()
override;
125 virtual OGRErr RollbackTransaction()
override;
127 virtual const char *GetGeometryColumn()
override;
131 #endif // OGREDITABLELAYER_H_INCLUDED
#define OLCReorderFields
Definition: ogr_core.h:730
virtual void setCoordinateDimension(int nDimension) CPL_OVERRIDE
Set the coordinate dimension.
Definition: ogrcurvepolygon.cpp:683
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrcircularstring.cpp:140
void setPoint(int, OGRPoint *)
Set the location of a vertex in line string.
Definition: ogrlinestring.cpp:506
int GetChildCount() const
Definition: ogr_spatialref.h:81
OGRBoolean Is3D() const
Definition: ogr_geometry.h:185
virtual OGRBoolean IsEmpty() const =0
Returns TRUE (non-zero) if the object has no points.
virtual OGRErr transform(OGRCoordinateTransformation *poCT) CPL_OVERRIDE
Apply arbitrary coordinate transformation to geometry.
Definition: ogrcompoundcurve.cpp:616
void OGR_DS_Destroy(OGRDataSourceH)
Closes opened datasource and releases allocated resources.
Definition: ogrdatasource.cpp:58
virtual void setCoordinateDimension(int nDimension)
Set the coordinate dimension.
Definition: ogrgeometry.cpp:1022
virtual OGRErr addRingDirectly(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:397
static OGRLineString * CastToLineString(OGRCurve *poCurve)
Cast to linestring.
Definition: ogrcurve.cpp:355
OGRErr addCurve(OGRCurve *, double dfToleranceEps=1e-14)
Add a curve to the container.
Definition: ogrcompoundcurve.cpp:514
double getX(int i) const
Get X at vertex.
Definition: ogr_geometry.h:554
virtual double get_AreaOfCurveSegments() const =0
Get the area of the purely curve portions of a (closed) curve.
#define CPL_SWAP32(x)
Definition: cpl_port.h:772
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrcompoundcurve.cpp:122
@ wkbCurvePolygonZM
Definition: ogr_core.h:385
Definition: ogr_geometry.h:623
void setNumPoints(int nNewPointCount, int bZeroizeNewContent=TRUE)
Set number of points in geometry.
Definition: ogrlinestring.cpp:422
virtual OGRBoolean Contains(const OGRGeometry *) const
Test for containment.
Definition: ogrgeometry.cpp:4812
#define OLCCreateGeomField
Definition: ogr_core.h:737
const char * OGR_DS_GetName(OGRDataSourceH)
Returns the name of the data source.
Definition: ogrdatasource.cpp:303
int OGR_DS_GetLayerCount(OGRDataSourceH)
Get the number of layers in this data source.
Definition: ogrdatasource.cpp:267
virtual OGRErr SetFID(GIntBig nFIDIn)
Set the feature identifier.
Definition: ogrfeature.cpp:5214
virtual void flattenTo2D() CPL_OVERRIDE
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrcurvepolygon.cpp:169
OGRCircularString()
Create an empty circular string.
Definition: ogrcircularstring.cpp:58
void * CPLGetSymbol(const char *, const char *)
Definition: cplgetsymbol.cpp:89
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Definition: ogr_core.h:290
OGRGeometry * StealGeometry() CPL_WARN_UNUSED_RESULT
Take away ownership of geometry.
Definition: ogrfeature.cpp:485
virtual int getCoordinateDimension() const
Get the dimension of the coordinates in this object.
Definition: ogrgeometry.cpp:879
virtual double get_LinearArea() const
Compute area of ring / closed linestring.
Definition: ogrlinestring.cpp:2723
#define VALIDATE_POINTER0(ptr, func)
Definition: cpl_error.h:199
virtual void getEnvelope(OGREnvelope *psEnvelope) const CPL_OVERRIDE
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrcircularstring.cpp:323
virtual OGRBoolean getNextPoint(OGRPoint *p)=0
Returns the next point followed by the iterator.
Definition: ogr_geometry.h:415
virtual OGRGeometry * clone() const CPL_OVERRIDE
Make a copy of this object.
Definition: ogrcurvepolygon.cpp:106
Definition: ogr_geometry.h:909
virtual OGRwkbGeometryType getGeometryType() const =0
Fetch geometry type.
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrcurvepolygon.cpp:587
void SetNativeMediaType(const char *pszNativeMediaType)
Sets the native media type for the feature.
Definition: ogrfeature.cpp:6665
@ wkbPoint
Definition: ogr_core.h:316
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant eWkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrcurvepolygon.cpp:523
virtual void segmentize(double dfMaxLength) CPL_OVERRIDE
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrcompoundcurve.cpp:634
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrcircularstring.cpp:127
virtual const char * GetStyleString()
Fetch style string for this feature.
Definition: ogrfeature.cpp:5907
CPLString & Printf(const char *pszFormat,...)
Definition: cplstring.cpp:59
virtual int GetGeomFieldCount()
Fetch number of geometry fields on this feature.
Definition: ogrfeaturedefn.cpp:583
void SetName(const char *)
Reset the name of this field.
Definition: ogrfielddefn.cpp:157
@ wkbCurvePolygonZ
Definition: ogr_core.h:349
virtual int getDimension() const CPL_OVERRIDE
Get the dimension of this object.
Definition: ogrcurvepolygon.cpp:159
#define VSI_REALLOC_VERBOSE(pOldPtr, nNewSize)
Definition: cpl_vsi.h:274
OGRSFDriverH OGR_DS_GetDriver(OGRDataSourceH)
Returns the driver that the dataset was opened with.
Definition: ogrdatasource.cpp:331
Definition: ogr_featurestyle.h:83
virtual void set3D(OGRBoolean bIs3D)
Add or remove the Z coordinate dimension.
Definition: ogrgeometry.cpp:1045
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrcompoundcurve.cpp:652
@ wkbCompoundCurveZM
Definition: ogr_core.h:384
int getNumGeometries() const
Fetch number of geometries in container.
Definition: ogrgeometrycollection.cpp:250
virtual void set3D(OGRBoolean bIs3D) CPL_OVERRIDE
Add or remove the Z coordinate dimension.
Definition: ogrcurvepolygon.cpp:689
virtual void getEnvelope(OGREnvelope *psEnvelope) const CPL_OVERRIDE
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrcurvepolygon.cpp:607
void * CPLCalloc(size_t, size_t)
Definition: cpl_conv.cpp:128
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
virtual OGRSpatialReference * GetSpatialRef()
Fetch the spatial reference system for this layer.
Definition: ogrlayer.cpp:1032
@ wkbNDR
Definition: ogr_core.h:482
Definition: ogrcompoundcurve.cpp:693
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrcircularstring.cpp:110
virtual void swapXY() CPL_OVERRIDE
Swap x and y coordinates.
Definition: ogrcurvepolygon.cpp:726
virtual int getNumPoints() const CPL_OVERRIDE
Return the number of points of a curve geometry.
Definition: ogrcompoundcurve.cpp:677
virtual void getEnvelope(OGREnvelope *psEnvelope) const CPL_OVERRIDE
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrcompoundcurve.cpp:247
Definition: ogr_geometry.h:1295
void CPLPopErrorHandler(void)
Definition: cpl_error.cpp:1141
@ wkbVariantOldOgc
Definition: ogr_core.h:420
int GetWidth() const
Get the formatting width for this field.
Definition: ogr_feature.h:97
virtual void segmentize(double dfMaxLength) CPL_OVERRIDE
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrcurvepolygon.cpp:712
Definition: ogr_spatialref.h:132
@ wkbCompoundCurve
Definition: ogr_core.h:330
virtual OGRSpatialReference * GetTargetCS() override
Definition: ogrct.cpp:919
OGRGeometry * getGeometryRef(int)
Fetch geometry from container.
Definition: ogrgeometrycollection.cpp:275
virtual double get_Length() const CPL_OVERRIDE
Returns the length of the curve.
Definition: ogrcircularstring.cpp:224
OGRCoordinateTransformation * OGRCreateCoordinateTransformation(OGRSpatialReference *poSource, OGRSpatialReference *poTarget)
Definition: ogrct.cpp:433
virtual GIntBig GetFeatureCount(int bForce=TRUE)
Fetch the feature count in this layer.
Definition: ogrlayer.cpp:166
OGRErr exportToProj4(char **) const
Export coordinate system in PROJ.4 format.
Definition: ogr_srs_proj4.cpp:1472
virtual OGRBoolean getNextPoint(OGRPoint *p) override
Returns the next point followed by the iterator.
Definition: ogrcompoundcurve.cpp:711
OGRSpatialReference * Clone() const
Make a duplicate of this OGRSpatialReference.
Definition: ogrspatialreference.cpp:563
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:326
virtual void EndPoint(OGRPoint *) const CPL_OVERRIDE
Return the curve end point.
Definition: ogrcompoundcurve.cpp:298
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrcurvepolygon.cpp:473
@ wkbVariantPostGIS1
Definition: ogr_core.h:422
#define OLCSequentialWrite
Definition: ogr_core.h:723
virtual OGRBoolean IsConvex() const
Returns if a (closed) curve forms a convex shape.
Definition: ogrcurve.cpp:278
Definition: ogr_geometry.h:118
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrcurvepolygon.cpp:448
virtual OGRBoolean IsValid() const
Test if the geometry is valid.
Definition: ogrgeometry.cpp:2028
virtual void empty() CPL_OVERRIDE
Clear geometry information. This restores the geometry to it's initial state after construction,...
Definition: ogrlinestring.cpp:150
virtual OGRBoolean IsEmpty() const CPL_OVERRIDE
Returns TRUE (non-zero) if the object has no points.
Definition: ogrlinestring.cpp:2453
virtual const char * getGeometryName() const =0
Fetch WKT name for geometry type.
OGRLayerH OGR_DS_ExecuteSQL(OGRDataSourceH, const char *, OGRGeometryH, const char *)
Execute an SQL statement against the data store.
Definition: ogrdatasource.cpp:212
void * OGRSFDriverH
Definition: ogr_api.h:501
@ wkbCircularString
Definition: ogr_core.h:328
OGRErr OGR_DS_DeleteLayer(OGRDataSourceH, int)
Delete the indicated layer from the datasource.
Definition: ogrdatasource.cpp:174
Definition: ogrsf_frmts.h:68
virtual void set3D(OGRBoolean bIs3D) CPL_OVERRIDE
Add or remove the Z coordinate dimension.
Definition: ogrcompoundcurve.cpp:398
Convenient string class based on std::string.
Definition: cpl_string.h:338
virtual void setMeasured(OGRBoolean bIsMeasured) CPL_OVERRIDE
Add or remove the M coordinate dimension.
Definition: ogrcompoundcurve.cpp:403
Definition: ogr_geometry.h:322
static void destroy(OGRPointIterator *)
Destroys a point iterator.
Definition: ogrcurve.cpp:430
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:100
OGRCurve * stealCurve(int)
"Steal" reference to curve.
Definition: ogrcompoundcurve.cpp:487
double getY(int i) const
Get Y at vertex.
Definition: ogr_geometry.h:555
virtual const char * GetGeometryColumn()
This method returns the name of the underlying database column being used as the geometry column,...
Definition: ogrlayer.cpp:1615
virtual OGRGeometry * GetSpatialFilter()
This method returns the current spatial filter for this layer.
Definition: ogrlayer.cpp:1079
virtual double get_Area() const CPL_OVERRIDE
Get the area of the (closed) curve.
Definition: ogrcircularstring.cpp:808
virtual OGRBoolean Equals(OGRGeometry *) const CPL_OVERRIDE
Returns TRUE if two geometries are equivalent.
Definition: ogrcurvepolygon.cpp:627
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrlinestring.cpp:1678
void SetNativeData(const char *pszNativeData)
Sets the native data for the feature.
Definition: ogrfeature.cpp:6609
OGRGeometry & operator=(const OGRGeometry &other)
Assignment operator.
Definition: ogrgeometry.cpp:141
void * CPLRealloc(void *, size_t)
Definition: cpl_conv.cpp:215
virtual OGRBoolean IsEmpty() const CPL_OVERRIDE
Returns TRUE (non-zero) if the object has no points.
Definition: ogrcompoundcurve.cpp:265
virtual int getDimension() const CPL_OVERRIDE
Get the dimension of this object.
Definition: ogrcurve.cpp:74
Definition: ogrct.cpp:125
@ wkbCircularStringZM
Definition: ogr_core.h:383
virtual void empty() CPL_OVERRIDE
Clear geometry information. This restores the geometry to it's initial state after construction,...
Definition: ogrcompoundcurve.cpp:238
OGRErr SetFieldsFrom(OGRFeature *, int *, int=TRUE)
Set fields from another feature.
Definition: ogrfeature.cpp:5755
#define EQUAL(a, b)
Definition: cpl_port.h:622
OGRErr OGR_DS_SyncToDisk(OGRDataSourceH)
Definition: ogrdatasource.cpp:315
void * OGRStyleTableH
Definition: ogr_api.h:293
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrlinestring.cpp:1584
#define wkbHasZ(x)
Definition: ogr_core.h:436
virtual void SetEmitErrors(bool bEmitErrors) override
Definition: ogrct.cpp:183
@ wkbCircularStringZ
Definition: ogr_core.h:347
int OGRBoolean
Definition: ogr_core.h:301
virtual OGRBoolean Equals(OGRGeometry *) const CPL_OVERRIDE
Returns TRUE if two geometries are equivalent.
Definition: ogrcompoundcurve.cpp:377
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrcircularstring.cpp:685
const char * GetValue() const
Definition: ogr_spatialref.h:95
int OGR_DS_TestCapability(OGRDataSourceH, const char *)
Test if capability is available.
Definition: ogrdatasource.cpp:254
void SetPrecision(int nPrecisionIn)
Set the formatting precision for this field in characters.
Definition: ogr_feature.h:101
static OGRErr createFromWkb(unsigned char *, OGRSpatialReference *, OGRGeometry **, int=-1, OGRwkbVariant=wkbVariantOldOgc)
Create a geometry object of the appropriate type from it's well known binary representation.
Definition: ogrgeometryfactory.cpp:103
void setX(double xIn)
Assign point X coordinate.
Definition: ogr_geometry.h:375
virtual OGRErr StartTransaction() CPL_WARN_UNUSED_RESULT
For datasources which support transactions, StartTransaction creates a transaction.
Definition: ogrlayer.cpp:908
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrcompoundcurve.cpp:172
virtual int Transform(int nCount, double *x, double *y, double *z=NULL) override
Definition: ogrct.cpp:931
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return a linestring from a curve geometry.
Definition: ogrlinestring.cpp:2694
#define VSI_MALLOC2_VERBOSE(nSize1, nSize2)
Definition: cpl_vsi.h:259
#define OLCCurveGeometries
Definition: ogr_core.h:738
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrcircularstring.cpp:675
#define wkbFlatten(x)
Definition: ogr_core.h:431
void OGR_DS_ReleaseResultSet(OGRDataSourceH, OGRLayerH)
Release results of OGR_DS_ExecuteSQL().
Definition: ogrdatasource.cpp:237
virtual void swapXY() CPL_OVERRIDE
Swap x and y coordinates.
Definition: ogrcompoundcurve.cpp:643
void CPLPushErrorHandler(CPLErrorHandler)
Definition: cpl_error.cpp:1084
#define OLCAlterFieldDefn
Definition: ogr_core.h:731
#define CPLAssert(expr)
Definition: cpl_error.h:182
virtual double get_Area() const CPL_OVERRIDE
Get the area of the (closed) curve.
Definition: ogrcompoundcurve.cpp:839
Definition: ogr_geometry.h:47
virtual void EndPoint(OGRPoint *) const CPL_OVERRIDE
Return the curve end point.
Definition: ogrlinestring.cpp:1925
virtual OGRGeometry * clone() const CPL_WARN_UNUSED_RESULT=0
Make a copy of this object.
virtual void StartPoint(OGRPoint *) const =0
Return the curve start point.
void * OGRSpatialReferenceH
Definition: ogr_api.h:69
virtual OGRErr transform(OGRCoordinateTransformation *poCT) CPL_OVERRIDE
Apply arbitrary coordinate transformation to geometry.
Definition: ogrcurvepolygon.cpp:653
virtual OGRErr RollbackTransaction()
For datasources which support transactions, RollbackTransaction will roll back a datasource to its st...
Definition: ogrlayer.cpp:962
virtual int TransformEx(int nCount, double *x, double *y, double *z=NULL, int *panSuccess=NULL) override
Definition: ogrct.cpp:989
int CPL_STDCALL OCTTransformEx(OGRCoordinateTransformationH hCT, int nCount, double *x, double *y, double *z, int *pabSuccess)
Definition: ogrct.cpp:1302
OGRFieldDefn * GetFieldDefnRef(int iField) const
Fetch definition for this field.
Definition: ogr_feature.h:328
virtual void setMeasured(OGRBoolean bIsMeasured) CPL_OVERRIDE
Add or remove the M coordinate dimension.
Definition: ogrcurvepolygon.cpp:694
Definition: ogr_geometry.h:1017
bool CPLTestBool(const char *pszValue)
Definition: cpl_string.cpp:1522
OGRSimpleCurve & operator=(const OGRSimpleCurve &other)
Assignment operator.
Definition: ogrlinestring.cpp:99
virtual int getNumPoints() const =0
Return the number of points of a curve geometry.
OGRwkbByteOrder
Definition: ogr_core.h:479
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrcurvepolygon.cpp:572
virtual OGRGeometry * clone() const CPL_OVERRIDE
Make a copy of this object.
Definition: ogrcompoundcurve.cpp:220
void * OGRCoordinateTransformationH
Definition: ogr_api.h:71
void CPL_STDCALL OCTDestroyCoordinateTransformation(OGRCoordinateTransformationH)
OGRCoordinateTransformation destructor.
Definition: ogrct.cpp:378
virtual OGRGeomFieldDefn * GetGeomFieldDefn(int i)
Fetch geometry field definition.
Definition: ogrfeaturedefn.cpp:632
Definition: ogr_geometry.h:753
virtual void StartPoint(OGRPoint *) const CPL_OVERRIDE
Return the curve start point.
Definition: ogrcompoundcurve.cpp:288
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return a linestring from a curve geometry.
Definition: ogrcircularstring.cpp:621
OGRCurvePolygon()
Create an empty curve polygon.
Definition: ogrcurvepolygon.cpp:52
#define OLCDeleteFeature
Definition: ogr_core.h:733
static OGRGeometry * createGeometry(OGRwkbGeometryType)
Create an empty geometry of desired type.
Definition: ogrgeometryfactory.cpp:442
@ wkbCurvePolygon
Definition: ogr_core.h:331
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrcompoundcurve.cpp:209
virtual OGRBoolean Intersects(const OGRGeometry *) const
Do these features intersect?
Definition: ogrgeometry.cpp:515
#define CPLE_ObjectNull
Definition: cpl_error.h:118
OGRErr addCurveDirectly(OGRCurve *, double dfToleranceEps=1e-14)
Add a curve directly to the container.
Definition: ogrcompoundcurve.cpp:545
#define VALIDATE_POINTER1(ptr, func, rc)
Definition: cpl_error.h:208
virtual OGRErr CommitTransaction() CPL_WARN_UNUSED_RESULT
For datasources which support transactions, CommitTransaction commits a transaction.
Definition: ogrlayer.cpp:935
#define OGRERR_FAILURE
Definition: ogr_core.h:293
OGR_SRSNode * GetChild(int)
Definition: ogr_srsnode.cpp:122
@ wkbCircularStringM
Definition: ogr_core.h:365
virtual void Value(double, OGRPoint *) const CPL_OVERRIDE
Fetch point at given distance along curve.
Definition: ogrcircularstring.cpp:524
#define OGRERR_NOT_ENOUGH_MEMORY
Definition: ogr_core.h:289
@ wkbCurvePolygonM
Definition: ogr_core.h:367
int Dereference()
Decrements the reference count by one.
Definition: ogrspatialreference.cpp:328
void CPLDebug(const char *, const char *,...)
Definition: cpl_error.cpp:492
virtual int ContainsPoint(const OGRPoint *p) const
Returns if a point is contained in a (closed) curve.
Definition: ogrcurve.cpp:398
virtual double get_Area() const CPL_OVERRIDE
Get the area of the surface object.
Definition: ogrcurvepolygon.cpp:663
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrcompoundcurve.cpp:151
void * OGRDataSourceH
Definition: ogr_api.h:499
Definition: ogr_feature.h:62
virtual void SetStyleString(const char *)
Set feature style string.
Definition: ogrfeature.cpp:5959
void * CPLMalloc(size_t)
Definition: cpl_conv.cpp:158
@ wkbVariantIso
Definition: ogr_core.h:421
virtual int getNumPoints() const CPL_OVERRIDE
Fetch vertex count.
Definition: ogr_geometry.h:552
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6661
void addSubLineString(const OGRLineString *, int nStartVertex=0, int nEndVertex=-1)
Add a segment of another linestring to this one.
Definition: ogrlinestring.cpp:1385
void addPoint(const OGRPoint *)
Add a point to a line string.
Definition: ogrlinestring.cpp:763
void assignSpatialReference(OGRSpatialReference *poSR)
Assign spatial reference to this object.
Definition: ogrgeometry.cpp:450
virtual int GetGeomFieldIndex(const char *)
Find geometry field by name.
Definition: ogrfeaturedefn.cpp:842
@ wkbNone
Definition: ogr_core.h:344
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrcircularstring.cpp:206
static OGRPolygon * CastToPolygon(OGRCurvePolygon *poCP)
Convert to polygon.
Definition: ogrcurvepolygon.cpp:821
OGRSpatialReference * getSpatialReference(void) const
Returns spatial reference system for object.
Definition: ogr_geometry.h:238
OGRErr SetGeomFieldDirectly(int iField, OGRGeometry *)
Set feature geometry of a specified geometry field.
Definition: ogrfeature.cpp:727
static OGRCompoundCurve * CastToCompoundCurve(OGRCurve *puCurve)
Cast to compound curve.
Definition: ogrcurve.cpp:324
OGRLayerH OGR_DS_CopyLayer(OGRDataSourceH, OGRLayerH, const char *, char **)
Duplicate an existing layer.
Definition: ogrdatasource.cpp:156
virtual void EndPoint(OGRPoint *) const =0
Return the curve end point.
#define OLCRandomWrite
Definition: ogr_core.h:724
#define VSI_CALLOC_VERBOSE(nCount, nSize)
Definition: cpl_vsi.h:269
void CPLErrorReset(void)
Definition: cpl_error.cpp:653
virtual void setCoordinateDimension(int nDimension) CPL_OVERRIDE
Set the coordinate dimension.
Definition: ogrcompoundcurve.cpp:393
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrcircularstring.cpp:186
@ wkbCompoundCurveM
Definition: ogr_core.h:366
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrcompoundcurve.cpp:105
OGRLayerH OGR_DS_GetLayer(OGRDataSourceH, int)
Fetch a layer by index.
Definition: ogrdatasource.cpp:284
Definition: ogrsf_frmts.h:247
Definition: ogr_geometry.h:491
virtual OGRBoolean IsValid() const CPL_OVERRIDE
Test if the geometry is valid.
Definition: ogrcircularstring.cpp:664
virtual void SetSpatialFilterRect(double dfMinX, double dfMinY, double dfMaxX, double dfMaxY)
Set a new rectangular spatial filter.
Definition: ogrlayer.cpp:1175
void * OGRGeometryH
Definition: ogr_api.h:56
void CPLError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt,...)
Definition: cpl_error.cpp:215
Definition: ogr_feature.h:141
virtual OGRPointIterator * getPointIterator() const CPL_OVERRIDE
Returns a point iterator over the curve.
Definition: ogrcompoundcurve.cpp:735
int getNumCurves() const
Return the number of curves.
Definition: ogrcompoundcurve.cpp:422
const char * GetNameRef()
Fetch name of this field.
Definition: ogr_feature.h:83
void VSIFree(void *)
Definition: cpl_vsisimple.cpp:817
OGRCurve * getCurve(int)
Fetch reference to indicated internal ring.
Definition: ogrcompoundcurve.cpp:446
#define CPLE_NotSupported
Definition: cpl_error.h:110
#define OGRERR_NOT_ENOUGH_DATA
Definition: ogr_core.h:288
virtual void segmentize(double dfMaxLength) CPL_OVERRIDE
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrcircularstring.cpp:345
#define OGRERR_CORRUPT_DATA
Definition: ogr_core.h:292
#define OLCCreateField
Definition: ogr_core.h:728
virtual OGRPointIterator * getPointIterator() const =0
Returns a point iterator over the curve.
OGRFieldType GetType() const
Fetch type of this field.
Definition: ogr_feature.h:85
double getZ(int i) const
Get Z at vertex.
Definition: ogrlinestring.cpp:368
virtual int get_IsClosed() const
Return TRUE if curve is closed.
Definition: ogrcurve.cpp:97
virtual void flattenTo2D() CPL_OVERRIDE
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrcompoundcurve.cpp:625
void OGR_DS_SetStyleTableDirectly(OGRDataSourceH, OGRStyleTableH)
Definition: ogrdatasource.cpp:355
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrlinestring.cpp:1474
const char * GetNameRef()
Fetch name of this field.
Definition: ogr_feature.h:162
int OGRErr
Definition: ogr_core.h:285
@ wkbCompoundCurveZ
Definition: ogr_core.h:348
virtual bool GetEmitErrors() override
Definition: ogrct.cpp:182
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrcurvepolygon.cpp:507
int GetFieldIndex(const char *pszName)
Fetch the field index given field name.
Definition: ogr_feature.h:330
#define M_PI
Definition: cpl_port.h:470
long long GIntBig
Definition: cpl_port.h:250
int CPL_STDCALL OCTTransform(OGRCoordinateTransformationH hCT, int nCount, double *x, double *y, double *z)
Definition: ogrct.cpp:966
OGRCurve * getExteriorRingCurve()
Fetch reference to external polygon ring.
Definition: ogrcurvepolygon.cpp:205
int getNumInteriorRings() const
Fetch the number of internal rings.
Definition: ogrcurvepolygon.cpp:242
#define OLCTransactions
Definition: ogr_core.h:732
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:4501
#define VSI_MALLOC_VERBOSE(size)
Definition: cpl_vsi.h:254
OGRwkbGeometryType
Definition: ogr_core.h:312
#define CPL_UNUSED
Definition: cpl_port.h:1008
#define OLCDeleteField
Definition: ogr_core.h:729
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return a linestring from a curve geometry.
Definition: ogrcompoundcurve.cpp:367
OGRStyleTableH OGR_DS_GetStyleTable(OGRDataSourceH)
Definition: ogrdatasource.cpp:343
OGRCircularString & operator=(const OGRCircularString &other)
Assignment operator.
Definition: ogrcircularstring.cpp:97
Definition: ogr_feature.h:279
void setY(double yIn)
Assign point Y coordinate.
Definition: ogr_geometry.h:379
const char * GetNativeMediaType() const
Returns the native media type for the feature.
Definition: ogr_feature.h:468
virtual double get_Area() const CPL_OVERRIDE
Get the area of the (closed) curve.
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=NULL)
Converts an arc circle into an approximate line string.
Definition: ogrgeometryfactory.cpp:4741
OGRErr SetGeomField(int iField, const OGRGeometry *)
Set feature geometry of a specified geometry field.
Definition: ogrfeature.cpp:805
virtual OGRBoolean Intersects(const OGRGeometry *) const CPL_OVERRIDE
Do these features intersect?
Definition: ogrcurvepolygon.cpp:775
virtual void getEnvelope(OGREnvelope *psEnvelope) const CPL_OVERRIDE
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
Definition: ogrlinestring.cpp:2238
double getZ() const
Fetch Z coordinate.
Definition: ogr_geometry.h:366
void setZ(double zIn)
Assign point Z coordinate. Calling this method will force the geometry coordinate dimension to 3D (wk...
Definition: ogr_geometry.h:383
virtual int WkbSize() const CPL_OVERRIDE
Returns size of related binary representation.
Definition: ogrcurvepolygon.cpp:418
OGRCoordinateTransformationH CPL_STDCALL OCTNewCoordinateTransformation(OGRSpatialReferenceH hSourceSRS, OGRSpatialReferenceH hTargetSRS)
Definition: ogrct.cpp:480
virtual OGRErr addRing(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:338
virtual int WkbSize() const =0
Returns size of related binary representation.
OGRBoolean IsMeasured() const
Definition: ogr_geometry.h:187
OGRCurvePolygon & operator=(const OGRCurvePolygon &other)
Assignment operator.
Definition: ogrcurvepolygon.cpp:91
Definition: ogr_geometry.h:433
double getY() const
Fetch Y coordinate.
Definition: ogr_geometry.h:364
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrcompoundcurve.cpp:667
OGRCompoundCurve()
Create an empty compound curve.
Definition: ogrcompoundcurve.cpp:51
@ wkbGeometryCollection
Definition: ogr_core.h:325
virtual double get_AreaOfCurveSegments() const CPL_OVERRIDE
Definition: ogrcompoundcurve.cpp:879
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrcurvepolygon.cpp:179
virtual OGRErr SetNextByIndex(GIntBig nIndex)
Move read cursor to the nIndex'th feature in the current resultset.
Definition: ogrlayer.cpp:497
virtual OGRErr transform(OGRCoordinateTransformation *poCT)=0
Apply arbitrary coordinate transformation to geometry.
OGR_SRSNode * GetAttrNode(const char *)
Find named node in tree.
Definition: ogrspatialreference.cpp:447
virtual OGRSpatialReference * GetSourceCS() override
Definition: ogrct.cpp:909
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrcircularstring.cpp:163
void SetWidth(int nWidthIn)
Set the formatting width for this field in characters.
Definition: ogr_feature.h:98
Definition: ogr_geometry.h:684
#define OGRERR_NONE
Definition: ogr_core.h:287
char * CPLStrdup(const char *)
Definition: cpl_conv.cpp:284
virtual OGRSpatialReference * GetSpatialRef()
Fetch spatial reference system of this field.
Definition: ogrgeomfielddefn.cpp:435
Definition: ogr_feature.h:207
double CPLAtof(const char *)
Definition: cpl_strtod.cpp:117
virtual OGRwkbGeometryType GetGeomType()
Return the layer geometry type.
Definition: ogrlayer.cpp:1743
virtual double get_Length() const CPL_OVERRIDE
Returns the length of the curve.
Definition: ogrcompoundcurve.cpp:276
CPLErr CPLGetLastErrorType(void)
Definition: cpl_error.cpp:764
static OGRLinearRing * CastToLinearRing(OGRCurve *poCurve)
Cast to linear ring.
Definition: ogrcurve.cpp:377
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrcompoundcurve.cpp:196
Definition: ogr_spatialref.h:60
virtual OGRErr SetAttributeFilter(const char *)
Set a new attribute query.
Definition: ogrlayer.cpp:337
void OGR_DS_SetStyleTable(OGRDataSourceH, OGRStyleTableH)
Definition: ogrdatasource.cpp:368
@ wkbLineString
Definition: ogr_core.h:317
virtual void StartPoint(OGRPoint *) const CPL_OVERRIDE
Return the curve start point.
Definition: ogrlinestring.cpp:1915
OGRGeometry * GetGeomFieldRef(int iField)
Fetch pointer to feature geometry.
Definition: ogrfeature.cpp:630
Definition: ogr_geometry.h:1162
@ wkbMultiLineString
Definition: ogr_core.h:323
Definition: ogr_geometry.h:1051
virtual OGRBoolean Contains(const OGRGeometry *) const CPL_OVERRIDE
Test for containment.
Definition: ogrcurvepolygon.cpp:752
OGRCurve * getInteriorRingCurve(int)
Fetch reference to indicated internal ring.
Definition: ogrcurvepolygon.cpp:270
void CPLQuietErrorHandler(CPLErr, CPLErrorNum, const char *)
Definition: cpl_error.cpp:866
virtual void empty() CPL_OVERRIDE
Clear geometry information. This restores the geometry to it's initial state after construction,...
Definition: ogrcurvepolygon.cpp:132
OGRCompoundCurve & operator=(const OGRCompoundCurve &other)
Assignment operator.
Definition: ogrcompoundcurve.cpp:90
#define OGRERR_NON_EXISTING_FEATURE
Definition: ogr_core.h:296
void * OGRLayerH
Definition: ogr_api.h:497
#define OGRERR_INVALID_HANDLE
Definition: ogr_core.h:295
virtual OGRPolygon * CurvePolyToPoly(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const
Return a polygon from a curve polygon.
Definition: ogrcurvepolygon.cpp:553
int IsGeographic() const
Check if geographic coordinate system.
Definition: ogrspatialreference.cpp:6265
#define CPLFree
Definition: cpl_conv.h:81
@ wkbUnknown
Definition: ogr_core.h:314
void reversePoints(void)
Reverse point order.
Definition: ogrlinestring.cpp:1347
virtual OGRBoolean IsEmpty() const CPL_OVERRIDE
Returns TRUE (non-zero) if the object has no points.
Definition: ogrcurvepolygon.cpp:703
virtual void setMeasured(OGRBoolean bIsMeasured)
Add or remove the M coordinate dimension.
Definition: ogrgeometry.cpp:1068
const char * GetNativeData() const
Returns the native data for the feature.
Definition: ogr_feature.h:467
OGRwkbVariant
Definition: ogr_core.h:418
GIntBig GetFID() const
Get feature identifier.
Definition: ogr_feature.h:435
OGRCurve * stealExteriorRingCurve()
"Steal" reference to external ring.
Definition: ogrcurvepolygon.cpp:311
virtual int WkbSize() const CPL_OVERRIDE
Returns size of related binary representation.
Definition: ogrcompoundcurve.cpp:131
virtual void Value(double, OGRPoint *) const CPL_OVERRIDE
Fetch point at given distance along curve.
Definition: ogrcompoundcurve.cpp:308
double getX() const
Fetch X coordinate.
Definition: ogr_geometry.h:362
const char * CPLGetConfigOption(const char *, const char *)
Definition: cpl_conv.cpp:1625
OGRwkbGeometryType getIsoGeometryType() const
Get the geometry type that conforms with ISO SQL/MM Part3.
Definition: ogrgeometry.cpp:776
OGRLayerH OGR_DS_GetLayerByName(OGRDataSourceH, const char *)
Fetch a layer by name.
Definition: ogrdatasource.cpp:193
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrcurvepolygon.cpp:142
virtual double get_Area() const =0
Get the area of the (closed) curve.
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrlinestring.cpp:1797
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
virtual OGRErr PointOnSurface(OGRPoint *poPoint) const CPL_OVERRIDE
This method relates to the SFCOM ISurface::get_PointOnSurface() method.
Definition: ogrcurvepolygon.cpp:597
#define STARTS_WITH_CI(a, b)
Definition: cpl_port.h:633
#define CPLE_AppDefined
Definition: cpl_error.h:100
unsigned int GUInt32
Definition: cpl_port.h:199
const char * GetExtension(const char *pszTargetKey, const char *pszName, const char *pszDefault=NULL) const
Fetch extension value.
Definition: ogrspatialreference.cpp:7114
Generated for GDAL by
1.8.17.