32 #ifndef OGR_GEOMETRY_H_INCLUDED 33 #define OGR_GEOMETRY_H_INCLUDED 125 friend class OGRCurveCollection;
129 OGRErr importPreambuleFromWkt(
char ** ppszInput,
130 int* pbHasZ,
int* pbHasM,
132 OGRErr importCurveCollectionFromWkt(
134 int bAllowEmptyComponent,
135 int bAllowLineString,
137 int bAllowCompoundCurve,
140 OGRErr importPreambuleFromWkb(
unsigned char * pabyData,
144 OGRErr importPreambuleOfCollectionFromWkb(
145 unsigned char * pabyData,
166 static const unsigned int OGR_G_NOT_EMPTY_POINT = 0x1;
167 static const unsigned int OGR_G_3D = 0x2;
168 static const unsigned int OGR_G_MEASURED = 0x4;
178 virtual int getDimension()
const = 0;
179 virtual int getCoordinateDimension()
const;
180 int CoordinateDimension()
const;
189 virtual void empty() = 0;
191 virtual
void getEnvelope( OGREnvelope * psEnvelope ) const = 0;
192 virtual
void getEnvelope( OGREnvelope3D * psEnvelope ) const = 0;
195 virtual
int WkbSize() const = 0;
196 virtual
OGRErr importFromWkb(
unsigned char *,
int=-1,
200 virtual
OGRErr importFromWkt(
char ** ppszInput ) = 0;
201 virtual
OGRErr exportToWkt(
char ** ppszDstText,
207 virtual const
char *getGeometryName() const = 0;
208 virtual
void dumpReadable( FILE *, const
char * = NULL
209 ,
char** papszOptions = NULL ) const;
210 virtual
void flattenTo2D() = 0;
211 virtual
char * exportToGML( const
char* const * papszOptions = NULL ) const;
212 virtual
char * exportToKML() const;
213 virtual
char * exportToJson() const;
219 virtual
OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE) const;
223 double dfMaxAngleStepSizeDegrees = 0,
231 virtual
void closeRings();
233 virtual
void setCoordinateDimension(
int nDimension );
235 virtual
void setMeasured(
OGRBoolean bIsMeasured );
243 virtual void segmentize(
double dfMaxLength);
259 virtual
double Distance( const
OGRGeometry * ) const ;
261 virtual
OGRGeometry *Buffer(
double dfDist,
int nQuadSegs = 30 )
275 OGRGeometry *SimplifyPreserveTopology(
double dTolerance)
282 virtual
double Distance3D( const
OGRGeometry *poOtherGeom ) const;
287 const CPL_WARN_DEPRECATED("Non standard method. "
288 "Use Intersects() instead");
290 const CPL_WARN_DEPRECATED("Non standard method. "
291 "Use Equals() instead");
293 const CPL_WARN_DEPRECATED("Non standard method. "
294 "Use SymDifference() instead");
296 const CPL_WARN_DEPRECATED("Non standard method. "
297 "Use Boundary() instead");
302 static
int bGenerate_DB2_V72_BYTE_ORDER;
305 virtual
void swapXY();
332 OGRPoint(
double x,
double y,
double z );
333 OGRPoint(
double x,
double y,
double z,
double m );
358 {
return !(flags & OGR_G_NOT_EMPTY_POINT); }
362 double getX()
const {
return x; }
364 double getY()
const {
return y; }
366 double getZ()
const {
return z; }
368 double getM()
const {
return m; }
375 void setX(
double xIn ) { x = xIn; flags |= OGR_G_NOT_EMPTY_POINT; }
379 void setY(
double yIn ) { y = yIn; flags |= OGR_G_NOT_EMPTY_POINT; }
384 { z = zIn; flags |= (OGR_G_NOT_EMPTY_POINT | OGR_G_3D); }
389 { m = mIn; flags |= (OGR_G_NOT_EMPTY_POINT | OGR_G_MEASURED); }
440 virtual OGRCurveCasterToLineString GetCasterToLineString()
const = 0;
441 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
const = 0;
463 const char*
const* papszOptions = NULL)
471 virtual double get_Area()
const = 0;
507 OGRErr importFromWKTListOnly(
char ** ppszInput,
int bHasZ,
int bHasM,
514 virtual double get_LinearArea()
const;
548 virtual double Project(
const OGRPoint * )
const;
549 virtual OGRLineString* getSubLine(
double,
double,
int )
const;
553 void getPoint(
int,
OGRPoint * )
const;
554 double getX(
int i )
const {
return paoPoints[i].
x; }
555 double getY(
int i )
const {
return paoPoints[i].
y; }
556 double getZ(
int i )
const;
557 double getM(
int i )
const;
566 void setNumPoints(
int nNewPointCount,
567 int bZeroizeNewContent = TRUE );
569 void setPoint(
int,
double,
double );
570 void setZ(
int,
double );
571 void setM(
int,
double );
572 void setPoint(
int,
double,
double,
double );
573 void setPointM(
int,
double,
double,
double );
574 void setPoint(
int,
double,
double,
double,
double );
575 void setPoints(
int,
OGRRawPoint *,
double * = NULL );
577 void setPoints(
int,
OGRRawPoint *,
double *,
double * );
578 void setPoints(
int,
double * padfX,
double * padfY,
579 double *padfZIn = NULL );
580 void setPointsM(
int,
double * padfX,
double * padfY,
581 double *padfMIn = NULL );
582 void setPoints(
int,
double * padfX,
double * padfY,
583 double *padfZIn,
double *padfMIn );
585 void addPoint(
double,
double );
586 void addPoint(
double,
double,
double );
587 void addPointM(
double,
double,
double );
588 void addPoint(
double,
double,
double,
double );
590 void getPoints(
OGRRawPoint *,
double * = NULL )
const;
591 void getPoints(
void* pabyX,
int nXStride,
592 void* pabyY,
int nYStride,
593 void* pabyZ = NULL,
int nZStride = 0 )
const;
594 void getPoints(
void* pabyX,
int nXStride,
595 void* pabyY,
int nYStride,
596 void* pabyZ,
int nZStride,
597 void* pabyM,
int nMStride )
const;
600 int nStartVertex = 0,
int nEndVertex = -1 );
601 void reversePoints(
void );
631 virtual OGRCurveCasterToLineString GetCasterToLineString()
633 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
649 const char*
const* papszOptions = NULL )
652 const char*
const* papszOptions = NULL )
const CPL_OVERRIDE;
692 virtual int _WkbSize(
int _flags )
const;
694 unsigned char *,
int=-1 );
696 unsigned char * )
const;
698 virtual OGRCurveCasterToLineString GetCasterToLineString()
700 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
717 virtual int isClockwise()
const;
718 virtual void reverseWindingOrder();
721 int bTestEnvelope = TRUE )
const;
723 int bTestEnvelope = TRUE )
const;
756 void ExtendEnvelopeWithCircular( OGREnvelope * psEnvelope )
const;
758 int IsFullCircle(
double& cx,
double& cy,
double& square_R )
const;
762 virtual OGRCurveCasterToLineString GetCasterToLineString()
764 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
770 int IntersectsPoint(
const OGRPoint* p )
const;
799 const char*
const* papszOptions = NULL )
811 double dfMaxAngleStepSizeDegrees = 0,
812 const char*
const* papszOptions = NULL)
const CPL_OVERRIDE;
829 class CPL_DLL OGRCurveCollection
842 OGRCurveCollection();
843 OGRCurveCollection(
const OGRCurveCollection& other);
844 ~OGRCurveCollection();
846 OGRCurveCollection&
operator=(
const OGRCurveCollection& other);
850 void getEnvelope( OGREnvelope * psEnvelope )
const;
851 void getEnvelope( OGREnvelope3D * psEnvelope )
const;
857 unsigned char * pabyData,
865 unsigned char * pabyData,
868 int bAcceptCompoundCurve,
873 char ** ppszDstText )
const;
882 int getNumCurves()
const;
884 const OGRCurve *getCurve(
int )
const;
912 OGRCurveCollection oCC;
915 double dfToleranceEps,
921 OGRLineString* CurveToLineInternal(
double dfMaxAngleStepSizeDegrees,
922 const char*
const* papszOptions,
923 int bIsLinearRing )
const;
930 virtual OGRCurveCasterToLineString GetCasterToLineString()
932 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
968 const char*
const* papszOptions = NULL )
979 int getNumCurves()
const;
981 const OGRCurve *getCurve(
int )
const;
989 OGRErr addCurveDirectly(
OGRCurve*,
double dfToleranceEps = 1e-14 );
1002 double dfMaxAngleStepSizeDegrees = 0,
1003 const char*
const* papszOptions = NULL)
const CPL_OVERRIDE;
1021 virtual OGRSurfaceCasterToPolygon GetCasterToPolygon()
const = 0;
1022 virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon()
const = 0;
1026 virtual double get_Area()
const = 0;
1055 virtual int checkRing(
OGRCurve * poNewRing )
const;
1067 OGRCurveCollection oCC;
1069 virtual OGRSurfaceCasterToPolygon GetCasterToPolygon()
1071 virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon()
1096 double dfMaxAngleStepSizeDegrees = 0,
1097 const char*
const* papszOptions = NULL )
const CPL_OVERRIDE;
1122 double dfMaxAngleStepSizeDegrees = 0,
1123 const char*
const* papszOptions = NULL )
const;
1171 virtual OGRErr importFromWKTListOnly(
char ** ppszInput,
1172 int bHasZ,
int bHasM,
1179 virtual OGRSurfaceCasterToPolygon GetCasterToPolygon()
1181 virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon()
1198 const char*
const* papszOptions = NULL )
const CPL_OVERRIDE;
1200 double dfMaxAngleStepSizeDegrees = 0,
1201 const char*
const* papszOptions = NULL)
const CPL_OVERRIDE;
1221 double dfMaxAngleStepSizeDegrees = 0,
1222 const char*
const* papszOptions = NULL )
const CPL_OVERRIDE;
1250 bool quickValidityCheck()
const;
1254 virtual OGRSurfaceCasterToPolygon GetCasterToPolygon()
const CPL_OVERRIDE;
1255 virtual OGRErr importFromWKTListOnly(
char ** ppszInput,
1256 int bHasZ,
int bHasM,
1297 OGRErr importFromWkbInternal(
unsigned char * pabyData,
int nSize,
1300 OGRErr importFromWktInternal(
char **ppszInput,
int nRecLevel );
1307 OGRErr exportToWktInternal(
char ** ppszDstText,
1309 const char* pszSkipPrefix )
const;
1335 const char*
const* papszOptions = NULL )
const CPL_OVERRIDE;
1337 double dfMaxAngleStepSizeDegrees = 0,
1338 const char*
const* papszOptions = NULL )
const CPL_OVERRIDE;
1352 virtual double get_Length()
const;
1353 virtual double get_Area()
const;
1361 int getNumGeometries()
const;
1374 virtual OGRErr removeGeometry(
int iIndex,
int bDelete = TRUE );
1445 OGRErr _addGeometryWithExpectedSubGeometryType(
1448 OGRErr _addGeometryDirectlyWithExpectedSubGeometryType(
1493 virtual OGRSurfaceCasterToPolygon GetCasterToPolygon()
1495 virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon()
1498 virtual const char* getSubGeometryName()
const;
1501 const char* pszSkipPrefix )
const;
1503 virtual OGRPolyhedralSurfaceCastToMultiPolygon GetCasterToMultiPolygon()
1576 virtual const char* getSubGeometryName()
const CPL_OVERRIDE;
1579 virtual OGRPolyhedralSurfaceCastToMultiPolygon GetCasterToMultiPolygon()
1612 OGRErr importFromWkt_Bracketed(
char **,
int bHasM,
int bHasZ );
1728 static OGRErr createFromFgfInternal(
unsigned char *pabyData,
1732 int *pnBytesConsumed,
1742 static OGRGeometry *createFromGML(
const char * );
1751 bool bOnlyInOrder =
true );
1758 const char*
const* papszOptions = NULL );
1762 int *pbResultValidGeometry,
1763 const char **papszOptions = NULL);
1764 static bool haveGEOS();
1768 char** papszOptions );
1771 approximateArcAngles(
double dfX,
double dfY,
double dfZ,
1772 double dfPrimaryRadius,
double dfSecondaryAxis,
1774 double dfStartAngle,
double dfEndAngle,
1775 double dfMaxAngleStepSizeDegrees );
1777 static int GetCurveParmeters(
double x0,
double y0,
1778 double x1,
double y1,
1779 double x2,
double y2,
1780 double& R,
double& cx,
double& cy,
1781 double& alpha0,
double& alpha1,
1784 double x0,
double y0,
double z0,
1785 double x1,
double y1,
double z1,
1786 double x2,
double y2,
double z2,
1788 double dfMaxAngleStepSizeDegrees,
1789 const char*
const * papszOptions = NULL );
1790 static OGRCurve* curveFromLineString(
1792 const char*
const * papszOptions = NULL);
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrcurvepolygon.cpp:507
virtual void Value(double, OGRPoint *) const CPL_OVERRIDE
Fetch point at given distance along curve.
Definition: ogrlinestring.cpp:1937
virtual void Value(double, OGRPoint *) const =0
Fetch point at given distance along curve.
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrpolygon.cpp:364
virtual void closeRings()
Force rings to be closed.
Definition: ogrgeometry.cpp:4970
virtual int WkbSize() const CPL_OVERRIDE
Returns size of related binary representation.
Definition: ogrcurvepolygon.cpp:418
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrmulticurve.cpp:100
virtual OGRwkbGeometryType getGeometryType() const =0
Fetch geometry type.
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrpolygon.cpp:319
virtual void setCoordinateDimension(int nDimension)
Set the coordinate dimension.
Definition: ogrgeometry.cpp:1022
virtual OGRBoolean IsValid() const
Test if the geometry is valid.
Definition: ogrgeometry.cpp:2028
virtual void set3D(OGRBoolean bIs3D)
Add or remove the Z coordinate dimension.
Definition: ogrgeometry.cpp:1045
virtual OGRBoolean Within(const OGRGeometry *) const
Test for containment.
Definition: ogrgeometry.cpp:4729
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrmultisurface.cpp:101
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrmulticurve.cpp:193
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrgeometrycollection.cpp:801
virtual void setMeasured(OGRBoolean bIsMeasured)
Add or remove the M coordinate dimension.
Definition: ogrgeometry.cpp:1068
double y
Definition: ogr_geometry.h:59
Definition: ogr_geometry.h:623
virtual OGRErr importFromWkt(char **ppszInput)=0
Assign geometry from well known text data.
virtual OGRBoolean isCompatibleSubType(OGRwkbGeometryType) const
Definition: ogrgeometrycollection.cpp:1288
#define CPL_OVERRIDE
Definition: cpl_port.h:1055
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrcurvepolygon.cpp:473
virtual void swapXY()
Swap x and y coordinates.
Definition: ogrgeometry.cpp:5708
double getX() const
Fetch X coordinate.
Definition: ogr_geometry.h:362
virtual void StartPoint(OGRPoint *) const CPL_OVERRIDE
Return the curve start point.
Definition: ogrcompoundcurve.cpp:288
virtual double get_Length() const CPL_OVERRIDE
Returns the length of the curve.
Definition: ogrlinestring.cpp:1895
Definition: ogr_geometry.h:1726
double x
Definition: ogr_geometry.h:57
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant eWkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrcurvepolygon.cpp:523
virtual const char * getGeometryName() const =0
Fetch WKT name for geometry type.
virtual double get_Length() const CPL_OVERRIDE
Returns the length of the curve.
Definition: ogrcompoundcurve.cpp:276
virtual OGRBoolean isCompatibleSubType(OGRwkbGeometryType) const CPL_OVERRIDE
Definition: ogrmultisurface.cpp:139
OGRPolyhedralSurface()
Create an empty PolyhedralSurface.
Definition: ogrpolyhedralsurface.cpp:47
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const =0
Convert a geometry into well known binary format.
OGRMultiCurve & operator=(const OGRMultiCurve &other)
Assignment operator.
Definition: ogrmulticurve.cpp:87
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrgeometrycollection.cpp:231
virtual OGRGeometry * clone() const CPL_WARN_UNUSED_RESULT=0
Make a copy of this object.
OGRCurve * stealExteriorRingCurve()
"Steal" reference to external ring.
Definition: ogrcurvepolygon.cpp:311
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const
Returns if this geometry is or has curve geometry.
Definition: ogrgeometry.cpp:3048
int OGRBoolean
Definition: ogr_core.h:301
virtual void Value(double, OGRPoint *) const CPL_OVERRIDE
Fetch point at given distance along curve.
Definition: ogrcompoundcurve.cpp:308
OGRCurve * getExteriorRingCurve()
Fetch reference to external polygon ring.
Definition: ogrcurvepolygon.cpp:205
virtual OGRErr addRingDirectly(OGRCurve *poNewRing) CPL_OVERRIDE
Add a ring to a polygon.
Definition: ogrtriangle.cpp:249
virtual OGRBoolean IsEmpty() const CPL_OVERRIDE
Returns TRUE (non-zero) if the object has no points.
Definition: ogr_geometry.h:357
static OGRPolygon * CastToPolygon(OGRCurvePolygon *poCP)
Convert to polygon.
Definition: ogrcurvepolygon.cpp:821
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrgeometrycollection.cpp:177
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrlinestring.cpp:2684
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrpolygon.cpp:123
OGRRawPoint()
Definition: ogr_geometry.h:51
virtual void EndPoint(OGRPoint *) const =0
Return the curve end point.
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrgeometrycollection.cpp:1299
Definition: ogr_geometry.h:1435
int OGRHasPreparedGeometrySupport()
Definition: ogrgeometry.cpp:5738
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrcurvepolygon.cpp:179
virtual OGRBoolean Equals(OGRGeometry *) const =0
Returns TRUE if two geometries are equivalent.
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc)=0
Assign geometry from well known binary data.
OGRwkbByteOrder
Definition: ogr_core.h:479
Definition: ogr_geometry.h:753
virtual void flattenTo2D()=0
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogr_geometry.h:433
Definition: ogr_geometry.h:1295
Definition: ogr_geometry.h:684
void setM(double mIn)
Definition: ogr_geometry.h:388
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrpolygon.cpp:614
OGRGeometry & operator=(const OGRGeometry &other)
Assignment operator.
Definition: ogrgeometry.cpp:141
virtual int getNumPoints() const CPL_OVERRIDE
Fetch vertex count.
Definition: ogr_geometry.h:552
virtual OGRBoolean isCompatibleSubType(OGRwkbGeometryType) const CPL_OVERRIDE
Definition: ogrmulticurve.cpp:137
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrlinestring.cpp:1678
virtual OGRGeometry * getCurveGeometry(const char *const *papszOptions=NULL) const CPL_WARN_UNUSED_RESULT
Return curve version of this geometry.
Definition: ogrgeometry.cpp:3116
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrmulticurve.cpp:127
Definition: ogr_geometry.h:1394
virtual double get_Length() const =0
Returns the length of the curve.
virtual int WkbSize() const CPL_OVERRIDE
Returns size of related binary representation.
Definition: ogrlinestring.cpp:195
virtual OGRPolygon * CurvePolyToPoly(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const
Return a polygon from a curve polygon.
Definition: ogrcurvepolygon.cpp:553
virtual void StartPoint(OGRPoint *) const =0
Return the curve start point.
OGRwkbGeometryType OGRFromOGCGeomType(const char *pszGeomType)
Definition: ogrgeometry.cpp:2257
double getX(int i) const
Get X at vertex.
Definition: ogr_geometry.h:554
OGRSimpleCurve & operator=(const OGRSimpleCurve &other)
Assignment operator.
Definition: ogrlinestring.cpp:99
virtual void segmentize(double dfMaxLength) CPL_OVERRIDE
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrcurvepolygon.cpp:712
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrmultisurface.cpp:278
virtual double get_Area() const =0
Get the area of the (closed) curve.
OGRErr addGeometryDirectly(OGRGeometry *poNewGeom)
Add a geometry directly to the container.
Definition: ogrpolyhedralsurface.cpp:872
Definition: ogr_geometry.h:909
Definition: ogr_geometry.h:47
OGRwkbGeometryType
Definition: ogr_core.h:312
virtual void swapXY() CPL_OVERRIDE
Swap x and y coordinates.
Definition: ogrcurvepolygon.cpp:726
virtual int get_IsClosed() const
Return TRUE if curve is closed.
Definition: ogrcurve.cpp:97
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrcurvepolygon.cpp:142
virtual OGRErr addGeometry(const OGRGeometry *) CPL_OVERRIDE
Add a new geometry to a collection.
Definition: ogrtriangulatedsurface.cpp:184
virtual OGRBoolean Intersects(const OGRGeometry *) const
Do these features intersect?
Definition: ogrgeometry.cpp:515
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE
Assign geometry from well known binary data.
Definition: ogrcurvepolygon.cpp:448
virtual ~OGRPolyhedralSurface()
Destructor.
Definition: ogrpolyhedralsurface.cpp:74
OGRMultiSurface & operator=(const OGRMultiSurface &other)
Assignment operator.
Definition: ogrmultisurface.cpp:88
Definition: ogr_geometry.h:415
Definition: ogr_geometry.h:1570
Definition: ogr_geometry.h:1650
virtual OGRErr PointOnSurface(OGRPoint *poPoint) const =0
This method relates to the SFCOM ISurface::get_PointOnSurface() method.
Definition: ogr_geometry.h:1017
Definition: ogr_geometry.h:1692
virtual double get_AreaOfCurveSegments() const CPL_OVERRIDE
Definition: ogrcompoundcurve.cpp:879
Definition: ogr_geometry.h:118
virtual void empty()=0
Clear geometry information. This restores the geometry to it's initial state after construction...
virtual void segmentize(double dfMaxLength)
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrgeometry.cpp:804
virtual OGRErr PointOnSurface(OGRPoint *poPoint) const
This method relates to the SFCOM IMultiSurface::get_PointOnSurface() method.
Definition: ogrmultisurface.cpp:299
void setX(double xIn)
Assign point X coordinate.
Definition: ogr_geometry.h:375
void sfcgal_geometry_t
Definition: ogr_geometry.h:67
static OGRLinearRing * CastToLinearRing(OGRCurve *poCurve)
Cast to linear ring.
Definition: ogrcurve.cpp:377
virtual double get_Area() const =0
Get the area of the surface object.
OGRTriangle & operator=(const OGRTriangle &other)
Assignment operator.
Definition: ogrtriangle.cpp:143
double getM() const
Definition: ogr_geometry.h:368
OGRPolyhedralSurface & operator=(const OGRPolyhedralSurface &other)
Assignment operator.
Definition: ogrpolyhedralsurface.cpp:87
virtual int ContainsPoint(const OGRPoint *p) const
Returns if a point is contained in a (closed) curve.
Definition: ogrcurve.cpp:398
virtual OGRBoolean IsConvex() const
Returns if a (closed) curve forms a convex shape.
Definition: ogrcurve.cpp:278
struct GEOSGeom_t * GEOSGeom
Definition: ogr_geometry.h:63
virtual OGRErr transform(OGRCoordinateTransformation *poCT) CPL_OVERRIDE
Apply arbitrary coordinate transformation to geometry.
Definition: ogrlinestring.cpp:2341
OGRLineString & operator=(const OGRLineString &other)
Assignment operator.
Definition: ogrlinestring.cpp:2654
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Fetch geometry type.
Definition: ogrpolygon.cpp:106
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 setZ(double zIn)
Assign point Z coordinate. Calling this method will force the geometry coordinate dimension to 3D (wk...
Definition: ogr_geometry.h:383
OGRErr removeGeometry(int iIndex, int bDelete=TRUE)
Remove a geometry from the container.
Definition: ogrpolyhedralsurface.cpp:1073
virtual OGRErr exportToWkt(char **, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrmulticurve.cpp:182
virtual OGRGeometry * clone() const CPL_OVERRIDE
Make a copy of this object.
Definition: ogrlinestring.cpp:126
virtual double get_Area() const CPL_OVERRIDE
Get the area of the (closed) curve.
Definition: ogrcompoundcurve.cpp:839
double getY() const
Fetch Y coordinate.
Definition: ogr_geometry.h:364
virtual int getDimension() const =0
Get the dimension of this object.
Definition: ogr_geometry.h:1051
OGRBoolean IsMeasured() const
Definition: ogr_geometry.h:187
int getNumInteriorRings() const
Fetch the number of internal rings.
Definition: ogrcurvepolygon.cpp:242
virtual OGRErr transform(OGRCoordinateTransformation *poCT) CPL_OVERRIDE
Apply arbitrary coordinate transformation to geometry.
Definition: ogrcurvepolygon.cpp:653
Definition: ogr_geometry.h:1487
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known binary format.
Definition: ogrlinestring.cpp:1584
virtual OGRPolygon * CurvePolyToPoly(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE
Return a polygon from a curve polygon.
Definition: ogrpolygon.cpp:802
virtual OGRErr importFromWkt(char **) CPL_OVERRIDE
Assign geometry from well known text data.
Definition: ogrgeometrycollection.cpp:788
void setY(double yIn)
Assign point Y coordinate.
Definition: ogr_geometry.h:379
virtual OGRBoolean IsEmpty() const CPL_OVERRIDE
Returns TRUE (non-zero) if the object has no points.
Definition: ogrcurvepolygon.cpp:703
Definition: ogr_spatialref.h:132
virtual double get_AreaOfCurveSegments() const =0
Get the area of the purely curve portions of a (closed) curve.
struct _OGRPreparedGeometry OGRPreparedGeometry
Definition: ogr_geometry.h:1799
virtual int getDimension() const CPL_OVERRIDE
Get the dimension of this object.
Definition: ogrgeometrycollection.cpp:194
Definition: ogr_core.h:420
double getY(int i) const
Get Y at vertex.
Definition: ogr_geometry.h:555
OGRCurvePolygon()
Create an empty curve polygon.
Definition: ogrcurvepolygon.cpp:52
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const =0
Return a linestring from a curve geometry.
virtual OGRErr addGeometry(const OGRGeometry *)
Add a new geometry to a collection.
Definition: ogrpolyhedralsurface.cpp:836
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrcurvepolygon.cpp:572
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
virtual OGRErr addRingDirectly(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:397
Definition: ogr_geometry.h:322
virtual OGRErr PointOnSurface(OGRPoint *poPoint) const CPL_OVERRIDE
This method relates to the SFCOM ISurface::get_PointOnSurface() method.
Definition: ogrcurvepolygon.cpp:597
OGRwkbVariant
Definition: ogr_core.h:418
virtual int WkbSize() const =0
Returns size of related binary representation.
virtual void getEnvelope(OGREnvelope *psEnvelope) const =0
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure...
OGRGeometryCollection & operator=(const OGRGeometryCollection &other)
Assignment operator.
Definition: ogrgeometrycollection.cpp:110
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: ogrlinestring.cpp:1474
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_WARN_UNUSED_RESULT
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrgeometry.cpp:3081
Definition: ogr_geometry.h:1162
Definition: ogr_geometry.h:491
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const =0
Convert a geometry into well known text format.
struct GEOSContextHandle_HS * GEOSContextHandle_t
Definition: ogr_geometry.h:65
virtual int getNumPoints() const =0
Return the number of points of a curve geometry.
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrpolyhedralsurface.cpp:102
virtual void segmentize(double dfMaxLength) CPL_OVERRIDE
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrlinestring.cpp:2462
virtual OGRBoolean Equals(OGRGeometry *) const CPL_OVERRIDE
Returns TRUE if two geometries are equivalent.
Definition: ogrcurvepolygon.cpp:627
OGRRawPoint(double xIn, double yIn)
Definition: ogr_geometry.h:54
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
virtual int getNumPoints() const CPL_OVERRIDE
Return the number of points of a curve geometry.
Definition: ogrcompoundcurve.cpp:677
static OGRMultiPolygon * CastToMultiPolygon(OGRPolyhedralSurface *poPS)
Casts the OGRPolyhedralSurface to an OGRMultiPolygon.
Definition: ogrpolyhedralsurface.cpp:815
virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE
Returns the WKB Type of PolyhedralSurface.
Definition: ogrpolyhedralsurface.cpp:116
static OGRCompoundCurve * CastToCompoundCurve(OGRCurve *puCurve)
Cast to compound curve.
Definition: ogrcurve.cpp:324
virtual OGRErr addRing(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:338
virtual OGRPointIterator * getPointIterator() const =0
Returns a point iterator over the curve.
OGRCurvePolygon & operator=(const OGRCurvePolygon &other)
Assignment operator.
Definition: ogrcurvepolygon.cpp:91
Definition: ogr_geometry.h:1247
OGRPolygon & operator=(const OGRPolygon &other)
Assignment operator.
Definition: ogrpolygon.cpp:93
static OGRLineString * CastToLineString(OGRCurve *poCurve)
Cast to linestring.
Definition: ogrcurve.cpp:355
virtual OGRErr transform(OGRCoordinateTransformation *poCT)=0
Apply arbitrary coordinate transformation to geometry.
virtual OGRPointIterator * getPointIterator() const CPL_OVERRIDE
Returns a point iterator over the curve.
Definition: ogrcompoundcurve.cpp:735
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrlinestring.cpp:1797
int OGRErr
Definition: ogr_core.h:285
virtual int WkbSize() const CPL_OVERRIDE
Returns size of related binary representation.
Definition: ogrpolygon.cpp:299
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
virtual OGRBoolean Contains(const OGRGeometry *) const
Test for containment.
Definition: ogrgeometry.cpp:4812
virtual void setMeasured(OGRBoolean bIsMeasured) CPL_OVERRIDE
Add or remove the M coordinate dimension.
Definition: ogrcurvepolygon.cpp:694
int getNumGeometries() const
Fetch number of geometries in PolyhedralSurface.
Definition: ogrpolyhedralsurface.cpp:914
virtual OGRErr exportToWkt(char **, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE
Convert a geometry into well known text format.
Definition: ogrmultisurface.cpp:267
const char * OGRToOGCGeomType(OGRwkbGeometryType eGeomType)
Definition: ogrgeometry.cpp:2330
Definition: ogr_geometry.h:1609
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const CPL_OVERRIDE
Returns if this geometry is or has curve geometry.
Definition: ogrpolygon.cpp:813
virtual const char * getGeometryName() const CPL_OVERRIDE
Fetch WKT name for geometry type.
Definition: ogrmultisurface.cpp:128
virtual void EndPoint(OGRPoint *) const CPL_OVERRIDE
Return the curve end point.
Definition: ogrcompoundcurve.cpp:298
double getZ() const
Fetch Z coordinate.
Definition: ogr_geometry.h:366
OGRBoolean Is3D() const
Definition: ogr_geometry.h:185
OGRCurve * getInteriorRingCurve(int)
Fetch reference to indicated internal ring.
Definition: ogrcurvepolygon.cpp:270
virtual OGRBoolean IsEmpty() const =0
Returns TRUE (non-zero) if the object has no points.
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
#define CPL_WARN_UNUSED_RESULT
Definition: cpl_port.h:999
virtual void empty() CPL_OVERRIDE
Clear geometry information. This restores the geometry to it's initial state after construction...
Definition: ogrcurvepolygon.cpp:132
OGRGeometry * getGeometryRef(int i)
Fetch geometry from container.
Definition: ogrpolyhedralsurface.cpp:936