31 #ifndef OGR_PGEOGEOMETRY_H_INCLUDED
32 #define OGR_PGEOGEOMETRY_H_INCLUDED
40 #define SHPT_POINTM 21
41 #define SHPT_POINTZM 11
44 #define SHPT_MULTIPOINT 8
45 #define SHPT_MULTIPOINTM 28
46 #define SHPT_MULTIPOINTZM 18
47 #define SHPT_MULTIPOINTZ 20
54 #define SHPT_POLYGON 5
55 #define SHPT_POLYGONM 25
56 #define SHPT_POLYGONZM 15
57 #define SHPT_POLYGONZ 19
59 #define SHPT_MULTIPATCHM 31
60 #define SHPT_MULTIPATCH 32
63 #define SHPT_GENERALPOLYLINE 50
64 #define SHPT_GENERALPOLYGON 51
65 #define SHPT_GENERALPOINT 52
66 #define SHPT_GENERALMULTIPOINT 53
67 #define SHPT_GENERALMULTIPATCH 54
71 #define ESRI_LAYERGEOMTYPE_NULL 0
72 #define ESRI_LAYERGEOMTYPE_POINT 1
73 #define ESRI_LAYERGEOMTYPE_MULTIPOINT 2
74 #define ESRI_LAYERGEOMTYPE_POLYLINE 3
75 #define ESRI_LAYERGEOMTYPE_POLYGON 4
76 #define ESRI_LAYERGEOMTYPE_MULTIPATCH 9
79 const GInt32* panPartStart,
84 const double* padfZ );
86 OGRErr CPL_DLL OGRCreateFromShapeBin(
GByte *pabyShape,
95 int bAllowSHPTTriangle,
virtual OGRLinearRing * getInteriorRing(int)
Fetch reference to indicated internal ring.
Definition: ogrpolygon.cpp:217
void setPoint(int, OGRPoint *)
Set the location of a vertex in line string.
Definition: ogrlinestring.cpp:526
virtual void setMeasured(OGRBoolean bIsMeasured) override
Add or remove the M coordinate dimension.
Definition: ogrlinestring.cpp:191
#define CPL_LSBWORD32(x)
Definition: cpl_port.h:816
virtual OGRBoolean IsEmpty() const =0
Returns TRUE (non-zero) if the object has no points.
OGRMultiPolygon * toMultiPolygon()
Definition: ogr_geometry.h:719
virtual OGRErr addRingDirectly(OGRCurve *)
Add a ring to a polygon.
Definition: ogrcurvepolygon.cpp:422
Definition: ogr_geometry.h:2664
virtual OGRErr addGeometryDirectly(OGRGeometry *)
Add a geometry directly to the container.
Definition: ogrgeometrycollection.cpp:381
double getX(int i) const
Get X at vertex.
Definition: ogr_geometry.h:1160
Definition: ogr_geometry.h:1241
void setNumPoints(int nNewPointCount, int bZeroizeNewContent=TRUE)
Set number of points in geometry.
Definition: ogrlinestring.cpp:434
Definition: ogr_geometry.h:2307
unsigned char GByte
Definition: cpl_port.h:213
OGRErr addGeometryDirectly(OGRGeometry *poNewGeom)
Add a geometry directly to the container.
Definition: ogrpolyhedralsurface.cpp:882
virtual void closeRings()
Force rings to be closed.
Definition: ogrgeometry.cpp:4833
Definition: ogr_geometry.h:1579
virtual int getNumPoints() const override
Fetch vertex count.
Definition: ogr_geometry.h:1158
virtual OGRwkbGeometryType getGeometryType() const =0
Fetch geometry type.
static OGRGeometry * organizePolygons(OGRGeometry **papoPolygons, int nPolygonCount, int *pbResultValidGeometry, const char **papszOptions=nullptr)
Organize polygons based on geometries.
Definition: ogrgeometryfactory.cpp:1408
void getPoints(OGRRawPoint *, double *=nullptr) const
Returns all points of line string.
Definition: ogrlinestring.cpp:1224
@ wkbPoint
Definition: ogr_core.h:321
virtual OGRBoolean IsEmpty() const override
Returns TRUE (non-zero) if the object has no points.
Definition: ogrcurvepolygon.cpp:720
void setM(double mIn)
Definition: ogr_geometry.h:878
#define CPL_SWAPDOUBLE(p)
Definition: cpl_port.h:797
void * CPLZLibInflate(const void *ptr, size_t nBytes, void *outptr, size_t nOutAvailableBytes, size_t *pnOutBytes)
Uncompress a buffer compressed with ZLib DEFLATE compression.
Definition: cpl_conv.cpp:3106
int getNumGeometries() const
Fetch number of geometries in container.
Definition: ogrgeometrycollection.cpp:258
@ wkbMultiPolygon
Definition: ogr_core.h:329
OGRGeometryH OGR_G_ForceTo(OGRGeometryH hGeom, OGRwkbGeometryType eTargetType, char **papszOptions) CPL_WARN_UNUSED_RESULT
Convert to another geometry type.
Definition: ogrgeometryfactory.cpp:4528
@ wkbNDR
Definition: ogr_core.h:492
Definition: ogr_geometry.h:2091
OGRGeometry * getGeometryRef(int)
Fetch geometry from container.
Definition: ogrgeometrycollection.cpp:283
virtual OGRGeometry * clone() const override
Make a copy of this object.
Definition: ogrlinearring.cpp:414
Definition: ogr_geometry.h:286
double getM(int i) const
Get measure at vertex.
Definition: ogrlinestring.cpp:406
virtual void reverseWindingOrder()
Definition: ogrlinearring.cpp:548
Definition: ogr_geometry.h:2586
virtual OGRBoolean IsEmpty() const override
Returns TRUE (non-zero) if the object has no points.
Definition: ogrlinestring.cpp:2494
#define CPL_LSBPTR64(x)
Definition: cpl_port.h:828
Definition: ogr_geometry.h:809
static OGRGeometry * forceToMultiPolygon(OGRGeometry *)
Convert to multipolygon.
Definition: ogrgeometryfactory.cpp:814
double getY(int i) const
Get Y at vertex.
Definition: ogr_geometry.h:1161
virtual void closeRings() override
Force rings to be closed.
Definition: ogrlinearring.cpp:568
void * CPLRealloc(void *, size_t)
Definition: cpl_conv.cpp:225
double CPLAtofM(const char *)
Definition: cpl_strtod.cpp:142
#define wkbHasZ(x)
Definition: ogr_core.h:446
double x
Definition: ogr_geometry.h:73
void setX(double xIn)
Assign point X coordinate.
Definition: ogr_geometry.h:865
#define VSI_MALLOC2_VERBOSE(nSize1, nSize2)
Definition: cpl_vsi.h:270
#define wkbFlatten(x)
Definition: ogr_core.h:440
#define CPLAssert(expr)
Definition: cpl_error.h:182
Definition: ogr_geometry.h:63
Definition: ogr_geometry.h:2743
virtual OGRGeometry * clone() const CPL_WARN_UNUSED_RESULT=0
Make a copy of this object.
virtual void set3D(OGRBoolean bIs3D) override
Add or remove the Z coordinate dimension.
Definition: ogrgeometrycollection.cpp:1126
OGRLinearRing * getExteriorRing()
Fetch reference to external polygon ring.
Definition: ogrpolygon.cpp:147
Definition: ogr_geometry.h:1394
#define OGRERR_UNSUPPORTED_OPERATION
Definition: ogr_core.h:296
virtual OGRErr removeGeometry(int iIndex, int bDelete=TRUE)
Remove a geometry from the container.
Definition: ogrgeometrycollection.cpp:427
OGRErr addCurveDirectly(OGRCurve *, double dfToleranceEps=1e-14)
Add a curve directly to the container.
Definition: ogrcompoundcurve.cpp:558
OGRPoint * toPoint()
Definition: ogr_geometry.h:523
#define OGRERR_FAILURE
Definition: ogr_core.h:298
@ wkbMultiSurface
Definition: ogr_core.h:340
@ wkbPolyhedralSurface
Definition: ogr_core.h:343
void CPLDebug(const char *, const char *,...)
Definition: cpl_error.cpp:544
int CoordinateDimension() const
Get the dimension of the coordinates in this object.
Definition: ogrgeometry.cpp:883
void * CPLMalloc(size_t)
Definition: cpl_conv.cpp:168
#define CPL_LSBPTR32(x)
Definition: cpl_port.h:824
void addPoint(const OGRPoint *)
Add a point to a line string.
Definition: ogrlinestring.cpp:783
virtual void setMeasured(OGRBoolean bIsMeasured) override
Add or remove the M coordinate dimension.
Definition: ogrgeometrycollection.cpp:1136
@ wkbPolygon
Definition: ogr_core.h:324
OGRLineString * toLineString()
Definition: ogr_geometry.h:565
#define VSI_CALLOC_VERBOSE(nCount, nSize)
Definition: cpl_vsi.h:280
void * OGRGeometryH
Definition: ogr_api.h:60
void CPLError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt,...)
Definition: cpl_error.cpp:232
void VSIFree(void *)
Definition: cpl_vsisimple.cpp:823
virtual OGRBoolean IsEmpty() const override
Returns TRUE (non-zero) if the object has no points.
Definition: ogr_geometry.h:847
double getZ(int i) const
Get Z at vertex.
Definition: ogrlinestring.cpp:380
OGRLinearRing * toLinearRing()
Definition: ogr_geometry.h:579
int OGRErr
Definition: ogr_core.h:290
#define M_PI
Definition: cpl_port.h:407
OGRPolygon * toPolygon()
Definition: ogr_geometry.h:635
int getNumInteriorRings() const
Fetch the number of internal rings.
Definition: ogrcurvepolygon.cpp:241
#define VSI_MALLOC_VERBOSE(size)
Definition: cpl_vsi.h:265
OGRwkbGeometryType
Definition: ogr_core.h:317
Definition: ogr_geometry.h:2032
void setY(double yIn)
Assign point Y coordinate.
Definition: ogr_geometry.h:869
double getZ() const
Fetch Z coordinate.
Definition: ogr_geometry.h:856
void setZ(double zIn)
Assign point Z coordinate. Calling this method will force the geometry coordinate dimension to 3D (wk...
Definition: ogr_geometry.h:873
Definition: ogr_geometry.h:925
double getY() const
Fetch Y coordinate.
Definition: ogr_geometry.h:854
@ wkbGeometryCollection
Definition: ogr_core.h:330
void setPoints(int, const OGRRawPoint *, const double *=nullptr)
Assign all points in a line string.
Definition: ogrlinestring.cpp:1008
Definition: ogr_geometry.h:1312
#define OGRERR_NONE
Definition: ogr_core.h:292
OGRMultiPoint * toMultiPoint()
Definition: ogr_geometry.h:691
double y
Definition: ogr_geometry.h:75
@ wkbTriangle
Definition: ogr_core.h:347
@ wkbLineString
Definition: ogr_core.h:322
Definition: ogr_geometry.h:1909
Definition: ogr_geometry.h:2511
@ wkbMultiLineString
Definition: ogr_core.h:328
Definition: ogr_geometry.h:1759
double getM() const
Definition: ogr_geometry.h:858
virtual void getEnvelope(OGREnvelope *psEnvelope) const =0
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure.
#define wkbHasM(x)
Definition: ogr_core.h:456
OGRMultiLineString * toMultiLineString()
Definition: ogr_geometry.h:705
#define CPLFree
Definition: cpl_conv.h:81
static OGRGeometry * approximateArcAngles(double dfX, double dfY, double dfZ, double dfPrimaryRadius, double dfSecondaryAxis, double dfRotation, double dfStartAngle, double dfEndAngle, double dfMaxAngleStepSizeDegrees)
Definition: ogrgeometryfactory.cpp:3826
@ wkbTIN
Definition: ogr_core.h:345
int GInt32
Definition: cpl_port.h:203
virtual void set3D(OGRBoolean bIs3D) override
Add or remove the Z coordinate dimension.
Definition: ogrlinestring.cpp:182
@ wkbMultiPoint
Definition: ogr_core.h:327
double getX() const
Fetch X coordinate.
Definition: ogr_geometry.h:852
const char * CPLGetConfigOption(const char *, const char *)
Definition: cpl_conv.cpp:1690
#define CPLE_AppDefined
Definition: cpl_error.h:99
unsigned int GUInt32
Definition: cpl_port.h:205
Generated for GDAL by
1.8.17.