32 #ifndef _OGR_GEOMETRY_H_INCLUDED 33 #define _OGR_GEOMETRY_H_INCLUDED 60 typedef struct GEOSGeom_t *GEOSGeom;
61 typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
114 OGRErr importPreambuleFromWkt(
char ** ppszInput,
115 int* pbHasZ,
int* pbHasM );
116 OGRErr importCurveCollectionFromWkt(
char ** ppszInput,
117 int bAllowEmptyComponent,
118 int bAllowLineString,
120 int bAllowCompoundCurve,
122 OGRErr importPreambuleFromWkb(
unsigned char * pabyData,
124 OGRwkbByteOrder& eByteOrder,
127 OGRErr importPreambuleOfCollectionFromWkb(
128 unsigned char * pabyData,
131 OGRwkbByteOrder& eByteOrder,
140 virtual int getDimension()
const = 0;
141 virtual int getCoordinateDimension()
const;
142 virtual OGRBoolean IsEmpty()
const = 0;
143 virtual OGRBoolean IsValid()
const;
144 virtual OGRBoolean IsSimple()
const;
145 virtual OGRBoolean IsRing()
const;
146 virtual void empty() = 0;
148 virtual void getEnvelope(
OGREnvelope * psEnvelope )
const = 0;
149 virtual void getEnvelope(
OGREnvelope3D * psEnvelope )
const = 0;
152 virtual int WkbSize()
const = 0;
155 virtual OGRErr importFromWkt(
char ** ppszInput ) = 0;
161 virtual const char *getGeometryName()
const = 0;
162 virtual void dumpReadable( FILE *,
const char * = NULL,
char** papszOptions = NULL )
const;
163 virtual void flattenTo2D() = 0;
164 virtual char * exportToGML(
const char*
const * papszOptions = NULL )
const;
165 virtual char * exportToKML()
const;
166 virtual char * exportToJson()
const;
168 static GEOSContextHandle_t createGEOSContext();
169 static void freeGEOSContext(GEOSContextHandle_t hGEOSCtxt);
170 virtual GEOSGeom exportToGEOS(GEOSContextHandle_t hGEOSCtxt)
const;
171 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
172 virtual OGRGeometry* getCurveGeometry(
const char*
const* papszOptions = NULL)
const;
173 virtual OGRGeometry* getLinearGeometry(
double dfMaxAngleStepSizeDegrees = 0,
174 const char*
const* papszOptions = NULL)
const;
176 virtual void closeRings();
178 virtual void setCoordinateDimension(
int nDimension );
186 virtual void segmentize(
double dfMaxLength);
189 virtual OGRBoolean Intersects(
const OGRGeometry * )
const;
190 virtual OGRBoolean Equals(
OGRGeometry * )
const = 0;
191 virtual OGRBoolean Disjoint(
const OGRGeometry * )
const;
192 virtual OGRBoolean Touches(
const OGRGeometry * )
const;
193 virtual OGRBoolean Crosses(
const OGRGeometry * )
const;
194 virtual OGRBoolean Within(
const OGRGeometry * )
const;
195 virtual OGRBoolean Contains(
const OGRGeometry * )
const;
196 virtual OGRBoolean Overlaps(
const OGRGeometry * )
const;
200 virtual double Distance(
const OGRGeometry * )
const;
202 virtual OGRGeometry *Buffer(
double dfDist,
int nQuadSegs = 30 )
const;
208 virtual OGRErr Centroid(
OGRPoint * poPoint )
const;
209 virtual OGRGeometry *Simplify(
double dTolerance)
const;
210 OGRGeometry *SimplifyPreserveTopology(
double dTolerance)
const;
215 OGRBoolean Intersect(
OGRGeometry * )
const CPL_WARN_DEPRECATED(
"Non standard method. Use Intersects() instead");
216 OGRBoolean Equal(
OGRGeometry * )
const CPL_WARN_DEPRECATED(
"Non standard method. Use Equals() instead");
217 virtual OGRGeometry *SymmetricDifference(
const OGRGeometry * )
const CPL_WARN_DEPRECATED(
"Non standard method. Use SymDifference() instead");
218 virtual OGRGeometry *getBoundary()
const CPL_WARN_DEPRECATED(
"Non standard method. Use Boundary() instead");
221 static int bGenerate_DB2_V72_BYTE_ORDER;
223 virtual void swapXY();
248 OGRPoint(
double x,
double y,
double z );
252 virtual int WkbSize()
const;
255 virtual OGRErr importFromWkt(
char ** );
259 virtual int getDimension()
const;
260 virtual int getCoordinateDimension()
const;
262 virtual void empty();
263 virtual void getEnvelope(
OGREnvelope * psEnvelope )
const;
264 virtual void getEnvelope(
OGREnvelope3D * psEnvelope )
const;
265 virtual OGRBoolean IsEmpty()
const;
268 double getX()
const {
return x; }
269 double getY()
const {
return y; }
270 double getZ()
const {
return z; }
273 virtual void setCoordinateDimension(
int nDimension );
274 void setX(
double xIn ) { x = xIn;
if (nCoordDimension <= 0) nCoordDimension = 2; }
275 void setY(
double yIn ) { y = yIn;
if (nCoordDimension <= 0) nCoordDimension = 2; }
276 void setZ(
double zIn ) { z = zIn; nCoordDimension=3; }
280 virtual OGRBoolean Intersects(
const OGRGeometry * )
const;
281 virtual OGRBoolean Within(
const OGRGeometry * )
const;
284 virtual const char *getGeometryName()
const;
287 virtual void flattenTo2D();
289 virtual void swapXY();
306 virtual OGRBoolean getNextPoint(
OGRPoint* p) = 0;
325 virtual OGRCurveCasterToLineString GetCasterToLineString()
const = 0;
326 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
const = 0;
343 const char*
const* papszOptions = NULL)
const = 0;
349 virtual OGRBoolean
IsConvex()
const;
350 virtual double get_Area()
const = 0;
382 OGRErr importFromWKTListOnly(
char ** ppszInput,
int bHasZ,
int bHasM,
386 virtual double get_LinearArea()
const;
402 virtual void empty();
405 virtual OGRBoolean
IsEmpty()
const;
408 virtual double get_Length()
const;
409 virtual void StartPoint(
OGRPoint *)
const;
410 virtual void EndPoint(
OGRPoint *)
const;
411 virtual void Value(
double,
OGRPoint * )
const;
412 virtual double Project(
const OGRPoint *)
const;
413 virtual OGRLineString* getSubLine(
double,
double,
int)
const;
417 void getPoint(
int,
OGRPoint * )
const;
418 double getX(
int i )
const {
return paoPoints[i].x; }
419 double getY(
int i )
const {
return paoPoints[i].y; }
420 double getZ(
int i )
const;
427 void setNumPoints(
int nNewPointCount,
int bZeroizeNewContent = TRUE );
429 void setPoint(
int,
double,
double );
430 void setZ(
int,
double );
431 void setPoint(
int,
double,
double,
double );
432 void setPoints(
int,
OGRRawPoint *,
double * = NULL );
433 void setPoints(
int,
double * padfX,
double * padfY,
434 double *padfZIn = NULL );
436 void addPoint(
double,
double );
437 void addPoint(
double,
double,
double );
439 void getPoints(
OGRRawPoint *,
double * = NULL )
const;
440 void getPoints(
void* pabyX,
int nXStride,
441 void* pabyY,
int nYStride,
442 void* pabyZ = NULL,
int nZStride = 0 )
const;
445 int nStartVertex = 0,
int nEndVertex = -1 );
446 void reversePoints(
void );
477 virtual OGRCurveCasterToLineString GetCasterToLineString()
const;
478 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
const;
480 virtual double get_AreaOfCurveSegments()
const;
486 virtual OGRLineString* CurveToLine(
double dfMaxAngleStepSizeDegrees = 0,
487 const char*
const* papszOptions = NULL)
const;
488 virtual OGRGeometry* getCurveGeometry(
const char*
const* papszOptions = NULL)
const;
489 virtual double get_Area()
const;
493 virtual const char *getGeometryName()
const;
526 virtual int _WkbSize(
int b3D )
const;
527 virtual OGRErr _importFromWkb( OGRwkbByteOrder,
int b3D,
528 unsigned char *,
int=-1 );
529 virtual OGRErr _exportToWkb( OGRwkbByteOrder,
int b3D,
530 unsigned char * )
const;
534 virtual OGRCurveCasterToLineString GetCasterToLineString()
const;
535 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
const;
545 virtual int isClockwise()
const;
546 virtual void reverseWindingOrder();
548 OGRBoolean isPointInRing(
const OGRPoint* pt,
int bTestEnvelope = TRUE)
const;
549 OGRBoolean isPointOnRingBoundary(
const OGRPoint* pt,
int bTestEnvelope = TRUE)
const;
578 void ExtendEnvelopeWithCircular(
OGREnvelope * psEnvelope )
const;
579 OGRBoolean IsValidFast()
const;
580 int IsFullCircle(
double& cx,
double& cy,
double& square_R )
const;
583 virtual OGRCurveCasterToLineString GetCasterToLineString()
const;
584 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
const;
585 virtual int ContainsPoint(
const OGRPoint* p )
const;
586 virtual double get_AreaOfCurveSegments()
const;
595 virtual OGRErr importFromWkt(
char ** );
599 virtual OGRBoolean IsValid()
const;
600 virtual void getEnvelope(
OGREnvelope * psEnvelope )
const;
601 virtual void getEnvelope(
OGREnvelope3D * psEnvelope )
const;
604 virtual double get_Length()
const;
605 virtual OGRLineString* CurveToLine(
double dfMaxAngleStepSizeDegrees = 0,
606 const char*
const* papszOptions = NULL)
const;
607 virtual void Value(
double,
OGRPoint * )
const;
608 virtual double get_Area()
const;
612 virtual const char *getGeometryName()
const;
613 virtual void segmentize(
double dfMaxLength);
614 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
615 virtual OGRGeometry* getLinearGeometry(
double dfMaxAngleStepSizeDegrees = 0,
616 const char*
const* papszOptions = NULL)
const;
655 OGRErr importPreambuleFromWkb(
OGRGeometry* poGeom,
656 unsigned char * pabyData,
659 OGRwkbByteOrder& eByteOrder,
663 unsigned char * pabyData,
666 int bAcceptCompoundCurve,
674 int getNumCurves()
const;
676 const OGRCurve *getCurve(
int )
const;
705 OGRErr addCurveDirectlyInternal(
OGRCurve* poCurve,
706 double dfToleranceEps,
710 OGRLineString* CurveToLineInternal(
double dfMaxAngleStepSizeDegrees,
711 const char*
const* papszOptions,
712 int bIsLinearRing)
const;
718 virtual OGRCurveCasterToLineString GetCasterToLineString()
const;
719 virtual OGRCurveCasterToLinearRing GetCasterToLinearRing()
const;
726 virtual int WkbSize()
const;
729 virtual OGRErr importFromWkt(
char ** );
734 virtual void empty();
735 virtual void getEnvelope(
OGREnvelope * psEnvelope )
const;
736 virtual void getEnvelope(
OGREnvelope3D * psEnvelope )
const;
737 virtual OGRBoolean IsEmpty()
const;
740 virtual double get_Length()
const;
741 virtual void StartPoint(
OGRPoint *)
const;
742 virtual void EndPoint(
OGRPoint *)
const;
743 virtual void Value(
double,
OGRPoint * )
const;
744 virtual OGRLineString* CurveToLine(
double dfMaxAngleStepSizeDegrees = 0,
745 const char*
const* papszOptions = NULL)
const;
747 virtual int getNumPoints()
const;
748 virtual double get_AreaOfCurveSegments()
const;
749 virtual double get_Area()
const;
755 int getNumCurves()
const;
757 const OGRCurve *getCurve(
int )
const;
760 virtual void setCoordinateDimension(
int nDimension );
762 OGRErr addCurve(
OGRCurve*,
double dfToleranceEps = 1e-14 );
763 OGRErr addCurveDirectly(
OGRCurve*,
double dfToleranceEps = 1e-14 );
769 virtual const char *getGeometryName()
const;
771 virtual void flattenTo2D();
772 virtual void segmentize(
double dfMaxLength);
773 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
774 virtual OGRGeometry* getLinearGeometry(
double dfMaxAngleStepSizeDegrees = 0,
775 const char*
const* papszOptions = NULL)
const;
777 virtual void swapXY();
792 virtual OGRSurfaceCasterToPolygon GetCasterToPolygon()
const = 0;
793 virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon()
const = 0;
796 virtual double get_Area()
const = 0;
797 virtual OGRErr PointOnSurface(
OGRPoint * poPoint )
const = 0;
824 OGRBoolean ContainsPoint(
const OGRPoint* p )
const;
825 virtual int checkRing(
OGRCurve * poNewRing )
const;
826 OGRErr addRingDirectlyInternal(
OGRCurve* poCurve,
int bNeedRealloc );
836 virtual OGRSurfaceCasterToPolygon GetCasterToPolygon()
const;
837 virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon()
const;
847 virtual void empty();
850 virtual OGRBoolean
IsEmpty()
const;
854 const char*
const* papszOptions = NULL)
const;
874 const char*
const* papszOptions = NULL)
const;
916 virtual int checkRing(
OGRCurve * poNewRing )
const;
917 OGRErr importFromWKTListOnly(
char ** ppszInput,
int bHasZ,
int bHasM,
923 virtual OGRSurfaceCasterToPolygon GetCasterToPolygon()
const;
924 virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon()
const;
936 const char*
const* papszOptions = NULL)
const;
949 virtual OGRPolygon* CurvePolyToPoly(
double dfMaxAngleStepSizeDegrees = 0,
950 const char*
const* papszOptions = NULL)
const;
960 OGRBoolean IsPointOnSurface(
const OGRPoint * )
const;
978 OGRErr importFromWkbInternal(
unsigned char * pabyData,
int nSize,
int nRecLevel,
980 OGRErr importFromWktInternal(
char **ppszInput,
int nRecLevel );
986 OGRErr exportToWktInternal(
char ** ppszDstText,
988 const char* pszSkipPrefix )
const;
999 virtual const char *getGeometryName()
const;
1002 virtual void empty();
1004 virtual void flattenTo2D();
1005 virtual OGRBoolean IsEmpty()
const;
1006 virtual void segmentize(
double dfMaxLength);
1007 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
1008 virtual OGRGeometry* getCurveGeometry(
const char*
const* papszOptions = NULL)
const;
1009 virtual OGRGeometry* getLinearGeometry(
double dfMaxAngleStepSizeDegrees = 0,
const char*
const* papszOptions = NULL)
const;
1012 virtual int WkbSize()
const;
1015 virtual OGRErr importFromWkt(
char ** );
1018 virtual double get_Length()
const;
1019 virtual double get_Area()
const;
1022 virtual int getDimension()
const;
1023 virtual void getEnvelope(
OGREnvelope * psEnvelope )
const;
1024 virtual void getEnvelope(
OGREnvelope3D * psEnvelope )
const;
1027 int getNumGeometries()
const;
1035 virtual void setCoordinateDimension(
int nDimension );
1036 virtual OGRErr addGeometry(
const OGRGeometry * );
1037 virtual OGRErr addGeometryDirectly(
OGRGeometry * );
1038 virtual OGRErr removeGeometry(
int iIndex,
int bDelete = TRUE );
1042 virtual void swapXY();
1065 virtual const char *getGeometryName()
const;
1067 virtual OGRErr importFromWkt(
char ** );
1071 virtual OGRErr PointOnSurface(
OGRPoint * poPoint )
const;
1074 virtual int getDimension()
const;
1077 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
1100 virtual const char *getGeometryName()
const;
1105 virtual OGRErr PointOnSurface(
OGRPoint * poPoint )
const;
1108 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
1124 OGRErr importFromWkt_Bracketed(
char **,
int bHasM,
int bHasZ );
1134 virtual const char *getGeometryName()
const;
1136 virtual OGRErr importFromWkt(
char ** );
1140 virtual int getDimension()
const;
1143 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
1167 virtual const char *getGeometryName()
const;
1169 virtual OGRErr importFromWkt(
char ** );
1173 virtual int getDimension()
const;
1176 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
1199 virtual const char *getGeometryName()
const;
1204 virtual OGRBoolean hasCurveGeometry(
int bLookForNonLinear = FALSE)
const;
1220 static OGRErr createFromFgfInternal(
unsigned char *pabyData,
1224 int *pnBytesConsumed,
1233 static OGRGeometry *createFromGML(
const char * );
1234 static OGRGeometry *createFromGEOS( GEOSContextHandle_t hGEOSCtxt, GEOSGeom );
1247 const char*
const* papszOptions = NULL );
1251 int *pbResultValidGeometry,
1252 const char **papszOptions = NULL);
1253 static int haveGEOS();
1257 char** papszOptions );
1260 approximateArcAngles(
double dfX,
double dfY,
double dfZ,
1261 double dfPrimaryRadius,
double dfSecondaryAxis,
1263 double dfStartAngle,
double dfEndAngle,
1264 double dfMaxAngleStepSizeDegrees );
1266 static int GetCurveParmeters(
double x0,
double y0,
1267 double x1,
double y1,
1268 double x2,
double y2,
1269 double& R,
double& cx,
double& cy,
1270 double& alpha0,
double& alpha1,
double& alpha2 );
1271 static OGRLineString* curveToLineString(
double x0,
double y0,
double z0,
1272 double x1,
double y1,
double z1,
1273 double x2,
double y2,
double z2,
1275 double dfMaxAngleStepSizeDegrees,
1276 const char*
const* papszOptions = NULL );
1278 const char*
const* papszOptions = NULL);
1285 typedef struct _OGRPreparedGeometry OGRPreparedGeometry;
1286 int OGRHasPreparedGeometrySupport();
1287 OGRPreparedGeometry* OGRCreatePreparedGeometry(
const OGRGeometry* poGeom );
1288 void OGRDestroyPreparedGeometry( OGRPreparedGeometry* poPreparedGeom );
1289 int OGRPreparedGeometryIntersects(
const OGRPreparedGeometry* poPreparedGeom,
virtual double get_Area() const
Get the area of the (closed) curve.
Definition: ogrcompoundcurve.cpp:752
virtual OGRPointIterator * getPointIterator() const
Returns a point iterator over the curve.
Definition: ogrcompoundcurve.cpp:654
virtual void setCoordinateDimension(int nDimension)
Set the coordinate dimension.
Definition: ogrgeometry.cpp:764
virtual void closeRings()
Force rings to be closed.
Definition: ogrpolygon.cpp:647
Definition: ogr_geometry.h:468
virtual OGRErr importFromWkt(char **ppszInput)=0
Assign geometry from well known text data.
virtual OGRErr importFromWkt(char **)
Assign geometry from well known text data.
Definition: ogrpolygon.cpp:355
double getY() const
Fetch Y coordinate.
Definition: ogr_geometry.h:269
virtual void swapXY()
Swap x and y coordinates.
Definition: ogrgeometry.cpp:4508
virtual void segmentize(double dfMaxLength)
Modify the geometry such it has no segment longer then the given distance.
Definition: ogrcurvepolygon.cpp:600
virtual OGRBoolean Equals(OGRGeometry *) const =0
Returns TRUE if two geometries are equivalent.
Definition: ogr_geometry.h:1218
virtual void StartPoint(OGRPoint *) const
Return the curve start point.
Definition: ogrcompoundcurve.cpp:238
virtual int WkbSize() const =0
Returns size of related binary representation.
OGRCurve * stealExteriorRingCurve()
"Steal" reference to external ring.
Definition: ogrcurvepolygon.cpp:230
virtual OGRErr transform(OGRCoordinateTransformation *poCT)
Apply arbitrary coordinate transformation to geometry.
Definition: ogrcurvepolygon.cpp:546
OGRCurve * getExteriorRingCurve()
Fetch reference to external polygon ring.
Definition: ogrcurvepolygon.cpp:151
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const
Returns if this geometry is or has curve geometry.
Definition: ogrpolygon.cpp:668
static OGRPolygon * CastToPolygon(OGRCurvePolygon *poCP)
Convert to polygon.
Definition: ogrcurvepolygon.cpp:681
static OGRLinearRing * CastToLinearRing(OGRCompoundCurve *poCC)
Cast to linear ring.
Definition: ogrcompoundcurve.cpp:703
Definition: ogr_geometry.h:1090
virtual void Value(double, OGRPoint *) const
Fetch point at given distance along curve.
Definition: ogrcompoundcurve.cpp:258
virtual OGRGeometry * clone() const
Make a copy of this object.
Definition: ogrcurvepolygon.cpp:63
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc)=0
Assign geometry from well known binary data.
Definition: ogr_geometry.h:575
virtual void flattenTo2D()=0
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogr_geometry.h:320
Definition: ogr_geometry.h:976
virtual OGRBoolean Equals(OGRGeometry *) const
Returns TRUE if two geometries are equivalent.
Definition: ogrcurvepolygon.cpp:525
int getNumInteriorRings() const
Fetch the number of internal rings.
Definition: ogrcurvepolygon.cpp:176
Definition: ogr_geometry.h:520
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const =0
Convert a geometry into well known binary format.
virtual OGRErr PointOnSurface(OGRPoint *poPoint) const
This method relates to the SFCOM IMultiSurface::get_PointOnSurface() method.
Definition: ogrmultisurface.cpp:245
virtual int WkbSize() const
Returns size of related binary representation.
Definition: ogrpolygon.cpp:220
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const
Convert a geometry into well known binary format.
Definition: ogrgeometrycollection.cpp:496
virtual OGRLineString * CurveToLine(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const
Return a linestring from a curve geometry.
Definition: ogrcompoundcurve.cpp:316
virtual int WkbSize() const
Returns size of related binary representation.
Definition: ogrgeometrycollection.cpp:361
virtual int get_IsClosed() const
Return TRUE if curve is closed.
Definition: ogrcurve.cpp:76
virtual int getNumPoints() const
Return the number of points of a curve geometry.
Definition: ogrcompoundcurve.cpp:596
Definition: ogr_geometry.h:1055
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc)
Assign geometry from well known binary data.
Definition: ogrpolygon.cpp:241
Definition: ogr_geometry.h:700
Definition: ogr_geometry.h:47
OGRwkbGeometryType
Definition: ogr_core.h:309
virtual OGRErr exportToWkb(OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const
Convert a geometry into well known binary format.
Definition: ogrpolygon.cpp:288
virtual int ContainsPoint(const OGRPoint *p) const
Returns if a point is contained in a (closed) curve.
Definition: ogrcurve.cpp:353
Definition: ogr_geometry.h:302
Definition: ogr_geometry.h:1156
virtual OGRErr importFromWkt(char **)
Assign geometry from well known text data.
Definition: ogrmultisurface.cpp:104
Definition: ogr_geometry.h:788
Definition: ogr_geometry.h:1189
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const
Convert a geometry into well known text format.
Definition: ogrpolygon.cpp:497
virtual void getEnvelope(OGREnvelope *psEnvelope) const =0
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure...
virtual OGRErr importFromWkb(unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc)
Assign geometry from well known binary data.
Definition: ogrgeometrycollection.cpp:482
virtual OGRBoolean Contains(const OGRGeometry *) const
Test for containment.
Definition: ogrcurvepolygon.cpp:634
Definition: ogr_geometry.h:104
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:641
double getZ() const
Fetch Z coordinate.
Definition: ogr_geometry.h:270
virtual int PointOnSurface(OGRPoint *poPoint) const
This method relates to the SFCOM ISurface::get_PointOnSurface() method.
Definition: ogrpolygon.cpp:601
void setX(double xIn)
Assign point X coordinate.
Definition: ogr_geometry.h:274
virtual OGRwkbGeometryType getGeometryType() const
Fetch geometry type.
Definition: ogrpolygon.cpp:64
virtual OGRBoolean IsEmpty() const
Returns TRUE (non-zero) if the object has no points.
Definition: ogrcurvepolygon.cpp:591
virtual OGRErr exportToWkt(char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const =0
Convert a geometry into well known text format.
virtual int getDimension() const
Get the dimension of this object.
Definition: ogrcurvepolygon.cpp:107
void setZ(double zIn)
Assign point Z coordinate. Calling this method will force the geometry coordinate dimension to 3D (wk...
Definition: ogr_geometry.h:276
virtual void EndPoint(OGRPoint *) const
Return the curve end point.
Definition: ogrcompoundcurve.cpp:248
Definition: ogr_geometry.h:821
virtual OGRBoolean IsEmpty() const =0
Returns TRUE (non-zero) if the object has no points.
virtual double get_Area() const
Get the area of the surface object.
Definition: ogrcurvepolygon.cpp:556
virtual OGRGeometry * clone() const =0
Make a copy of this object.
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrgeometrycollection.cpp:1089
Definition: ogr_geometry.h:633
void setY(double yIn)
Assign point Y coordinate.
Definition: ogr_geometry.h:275
Definition: ogr_spatialref.h:129
virtual OGRBoolean Intersects(const OGRGeometry *) const
Do these features intersect?
Definition: ogrcurvepolygon.cpp:650
Definition: ogr_core.h:373
Definition: ogr_core.h:162
OGRCurvePolygon()
Create an empty curve polygon.
Definition: ogrcurvepolygon.cpp:45
virtual void empty()
Clear geometry information. This restores the geometry to it's initial state after construction...
Definition: ogrcurvepolygon.cpp:84
virtual double get_AreaOfCurveSegments() const
Get the area of the purely curve portions of a (closed) curve.
Definition: ogrcompoundcurve.cpp:791
OGRErr addRingDirectly(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:314
Definition: ogr_geometry.h:239
OGRwkbVariant
Definition: ogr_core.h:371
virtual int getDimension() const
Get the dimension of this object.
Definition: ogrcurve.cpp:55
double getX() const
Fetch X coordinate.
Definition: ogr_geometry.h:268
Definition: ogr_geometry.h:911
Definition: ogr_geometry.h:370
Definition: ogr_core.h:48
virtual void getEnvelope(OGREnvelope *psEnvelope) const
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure...
Definition: ogrcurvepolygon.cpp:505
virtual OGRErr exportToWkt(char **, OGRwkbVariant=wkbVariantOldOgc) const
Convert a geometry into well known text format.
Definition: ogrmultisurface.cpp:214
double getX(int i) const
Get X at vertex.
Definition: ogr_geometry.h:418
OGRSpatialReference * getSpatialReference(void) const
Returns spatial reference system for object.
Definition: ogr_geometry.h:181
virtual OGRwkbGeometryType getGeometryType() const
Fetch geometry type.
Definition: ogrmultisurface.cpp:60
virtual int getNumPoints() const
Fetch vertex count.
Definition: ogr_geometry.h:416
static OGRCompoundCurve * CastToCompoundCurve(OGRCurve *puCurve)
Cast to compound curve.
Definition: ogrcurve.cpp:279
OGRErr addRing(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:257
virtual const char * getGeometryName() const
Fetch WKT name for geometry type.
Definition: ogrpolygon.cpp:77
virtual OGRErr transform(OGRCoordinateTransformation *poCT)=0
Apply arbitrary coordinate transformation to geometry.
virtual OGRPolygon * CurvePolyToPoly(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const
Return a polygon from a curve polygon.
Definition: ogrpolygon.cpp:658
virtual void flattenTo2D()
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0.
Definition: ogrcurvepolygon.cpp:117
virtual double get_Length() const
Returns the length of the curve.
Definition: ogrcompoundcurve.cpp:226
Definition: ogr_geometry.h:1121
virtual void swapXY()
Swap x and y coordinates.
Definition: ogrcurvepolygon.cpp:609
virtual void setCoordinateDimension(int nDimension)
Set the coordinate dimension.
Definition: ogrcurvepolygon.cpp:580
virtual OGRGeometry * getCurveGeometry(const char *const *papszOptions=NULL) const
Return curve version of this geometry.
Definition: ogrgeometrycollection.cpp:1108
virtual OGRBoolean IsConvex() const
Returns if a (closed) curve forms a convex shape.
Definition: ogrcurve.cpp:236
virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear=FALSE) const
Returns if this geometry is or has curve geometry.
Definition: ogrmultisurface.cpp:225
void closeRings()
Force rings to be closed.
Definition: ogrgeometrycollection.cpp:925
OGRCurve * getInteriorRingCurve(int)
Fetch reference to indicated internal ring.
Definition: ogrcurvepolygon.cpp:205
virtual OGRGeometry * getLinearGeometry(double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const
Return, possibly approximate, non-curve version of this geometry.
Definition: ogrpolygon.cpp:677
virtual const char * getGeometryName() const
Fetch WKT name for geometry type.
Definition: ogrmultisurface.cpp:83
double getY(int i) const
Get Y at vertex.
Definition: ogr_geometry.h:419