- Main Page
- Related Pages
- Classes
- Files
- Directories

# ogr_geometry.h

Go to the documentation of this file.

    00001 /******************************************************************************
    00002  * $Id: ogr_geometry.h 21023 2010-10-30 19:48:23Z rouault $
    00003  *
    00004  * Project:  OpenGIS Simple Features Reference Implementation
    00005  * Purpose:  Classes for manipulating simple features that is not specific
    00006  *           to a particular interface technology.
    00007  * Author:   Frank Warmerdam, warmerdam@pobox.com
    00008  *
    00009  ******************************************************************************
    00010  * Copyright (c) 1999, Frank Warmerdam
    00011  *
    00012  * Permission is hereby granted, free of charge, to any person obtaining a
    00013  * copy of this software and associated documentation files (the "Software"),
    00014  * to deal in the Software without restriction, including without limitation
    00015  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
    00016  * and/or sell copies of the Software, and to permit persons to whom the
    00017  * Software is furnished to do so, subject to the following conditions:
    00018  *
    00019  * The above copyright notice and this permission notice shall be included
    00020  * in all copies or substantial portions of the Software.
    00021  *
    00022  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    00023  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    00024  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    00025  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    00026  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    00027  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    00028  * DEALINGS IN THE SOFTWARE.
    00029  ****************************************************************************/
    00030
    00031 #ifndef _OGR_GEOMETRY_H_INCLUDED
    00032 #define _OGR_GEOMETRY_H_INCLUDED
    00033
    00034 #include "ogr_core.h"
    00035 #include "ogr_spatialref.h"
    00036
    00046 class OGRRawPoint
    00047 {
    00048   public:
    00049           OGRRawPoint()
    00050           {
    00051                   x = y = 0.0;
    00052           }
    00053     double      x;
    00054     double      y;
    00055 };
    00056
    00057 typedef struct GEOSGeom_t *GEOSGeom;
    00058
    00059 /************************************************************************/
    00060 /*                             OGRGeometry                              */
    00061 /************************************************************************/
    00062
    00063 class OGRPoint;
    00064
    00077 class CPL_DLL OGRGeometry
    00078 {
    00079   private:
    00080     OGRSpatialReference * poSRS;                // may be NULL
    00081
    00082   protected:
    00083     int                   nCoordDimension;
    00084
    00085   public:
    00086                 OGRGeometry();
    00087     virtual     ~OGRGeometry();
    00088
    00089     // standard IGeometry
    00090     virtual int getDimension() const = 0;
    00091     virtual int getCoordinateDimension() const;
    00092     virtual OGRBoolean  IsEmpty() const = 0;
    00093     virtual OGRBoolean  IsValid() const;
    00094     virtual OGRBoolean  IsSimple() const;
    00095     virtual OGRBoolean  IsRing() const;
    00096     virtual void        empty() = 0;
    00097     virtual OGRGeometry *clone() const = 0;
    00098     virtual void getEnvelope( OGREnvelope * psEnvelope ) const = 0;
    00099
    00100     // IWks Interface
    00101     virtual int WkbSize() const = 0;
    00102     virtual OGRErr importFromWkb( unsigned char *, int=-1 )=0;
    00103     virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const = 0;
    00104     virtual OGRErr importFromWkt( char ** ppszInput ) = 0;
    00105     virtual OGRErr exportToWkt( char ** ppszDstText ) const = 0;
    00106
    00107     // non-standard
    00108     virtual OGRwkbGeometryType getGeometryType() const = 0;
    00109     virtual const char *getGeometryName() const = 0;
    00110     virtual void   dumpReadable( FILE *, const char * = NULL, char** papszOptions = NULL ) const;
    00111     virtual void   flattenTo2D() = 0;
    00112     virtual char * exportToGML( const char* const * papszOptions = NULL ) const;
    00113         virtual char * exportToKML() const;
    00114     virtual char * exportToJson() const;
    00115     virtual GEOSGeom exportToGEOS() const;
    00116     virtual void closeRings();
    00117
    00118     virtual void setCoordinateDimension( int nDimension );
    00119
    00120     void    assignSpatialReference( OGRSpatialReference * poSR );
    00121     OGRSpatialReference *getSpatialReference( void ) const { return poSRS; }
    00122
    00123     virtual OGRErr  transform( OGRCoordinateTransformation *poCT ) = 0;
    00124     OGRErr  transformTo( OGRSpatialReference *poSR );
    00125
    00126     virtual void segmentize(double dfMaxLength);
    00127
    00128     // ISpatialRelation
    00129     virtual OGRBoolean  Intersects( OGRGeometry * ) const;
    00130     virtual OGRBoolean  Equals( OGRGeometry * ) const = 0;
    00131     virtual OGRBoolean  Disjoint( const OGRGeometry * ) const;
    00132     virtual OGRBoolean  Touches( const OGRGeometry * ) const;
    00133     virtual OGRBoolean  Crosses( const OGRGeometry * ) const;
    00134     virtual OGRBoolean  Within( const OGRGeometry * ) const;
    00135     virtual OGRBoolean  Contains( const OGRGeometry * ) const;
    00136     virtual OGRBoolean  Overlaps( const OGRGeometry * ) const;
    00137 //    virtual OGRBoolean  Relate( const OGRGeometry *, const char * ) const;
    00138
    00139     virtual OGRGeometry *Boundary() const;
    00140     virtual double  Distance( const OGRGeometry * ) const;
    00141     virtual OGRGeometry *ConvexHull() const;
    00142     virtual OGRGeometry *Buffer( double dfDist, int nQuadSegs = 30 ) const;
    00143     virtual OGRGeometry *Intersection( const OGRGeometry *) const;
    00144     virtual OGRGeometry *Union( const OGRGeometry * ) const;
    00145     virtual OGRGeometry *UnionCascaded() const;
    00146     virtual OGRGeometry *Difference( const OGRGeometry * ) const;
    00147     virtual OGRGeometry *SymDifference( const OGRGeometry * ) const;
    00148     virtual OGRErr       Centroid( OGRPoint * poPoint ) const;
    00149     virtual OGRGeometry *Simplify(double dTolerance) const;
    00150
    00151     // backward compatibility to non-standard method names.
    00152     OGRBoolean  Intersect( OGRGeometry * ) const;
    00153     OGRBoolean  Equal( OGRGeometry * ) const;
    00154     virtual OGRGeometry *SymmetricDifference( const OGRGeometry * ) const;
    00155     virtual OGRGeometry *getBoundary() const;
    00156
    00157     // Special HACK for DB2 7.2 support
    00158     static int bGenerate_DB2_V72_BYTE_ORDER;
    00159
    00160     virtual void        swapXY();
    00161 };
    00162
    00163 /************************************************************************/
    00164 /*                               OGRPoint                               */
    00165 /************************************************************************/
    00166
    00173 class CPL_DLL OGRPoint : public OGRGeometry
    00174 {
    00175     double      x;
    00176     double      y;
    00177     double      z;
    00178
    00179   public:
    00180                 OGRPoint();
    00181                 OGRPoint( double x, double y );
    00182                 OGRPoint( double x, double y, double z );
    00183     virtual     ~OGRPoint();
    00184
    00185     // IWks Interface
    00186     virtual int WkbSize() const;
    00187     virtual OGRErr importFromWkb( unsigned char *, int=-1 );
    00188     virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;
    00189     virtual OGRErr importFromWkt( char ** );
    00190     virtual OGRErr exportToWkt( char ** ppszDstText ) const;
    00191
    00192     // IGeometry
    00193     virtual int getDimension() const;
    00194     virtual OGRGeometry *clone() const;
    00195     virtual void empty();
    00196     virtual void getEnvelope( OGREnvelope * psEnvelope ) const;
    00197     virtual OGRBoolean  IsEmpty() const;
    00198
    00199     // IPoint
    00200     double      getX() const { return x; }
    00201     double      getY() const { return y; }
    00202     double      getZ() const { return z; }
    00203
    00204     // Non standard
    00205     virtual void setCoordinateDimension( int nDimension );
    00206     void        setX( double xIn ) { x = xIn; if (nCoordDimension == 0) nCoordDimension = 2; }
    00207     void        setY( double yIn ) { y = yIn; if (nCoordDimension == 0) nCoordDimension = 2; }
    00208     void        setZ( double zIn ) { z = zIn; nCoordDimension=3; }
    00209
    00210     // ISpatialRelation
    00211     virtual OGRBoolean  Equals( OGRGeometry * ) const;
    00212
    00213     // Non standard from OGRGeometry
    00214     virtual const char *getGeometryName() const;
    00215     virtual OGRwkbGeometryType getGeometryType() const;
    00216     virtual OGRErr  transform( OGRCoordinateTransformation *poCT );
    00217     virtual void flattenTo2D();
    00218
    00219     virtual void        swapXY();
    00220 };
    00221
    00222 /************************************************************************/
    00223 /*                               OGRCurve                               */
    00224 /************************************************************************/
    00225
    00230 class CPL_DLL OGRCurve : public OGRGeometry
    00231 {
    00232   public:
    00233             OGRCurve();
    00234     virtual ~OGRCurve();
    00235     // ICurve methods
    00236     virtual double get_Length() const = 0;
    00237     virtual void StartPoint(OGRPoint *) const = 0;
    00238     virtual void EndPoint(OGRPoint *) const = 0;
    00239     virtual int  get_IsClosed() const;
    00240     virtual void Value( double, OGRPoint * ) const = 0;
    00241
    00242 };
    00243
    00244 /************************************************************************/
    00245 /*                            OGRLineString                             */
    00246 /************************************************************************/
    00247
    00252 class CPL_DLL OGRLineString : public OGRCurve
    00253 {
    00254   protected:
    00255     int         nPointCount;
    00256     OGRRawPoint *paoPoints;
    00257     double      *padfZ;
    00258
    00259     void        Make3D();
    00260     void        Make2D();
    00261
    00262   public:
    00263                 OGRLineString();
    00264     virtual     ~OGRLineString();
    00265
    00266     // IWks Interface
    00267     virtual int WkbSize() const;
    00268     virtual OGRErr importFromWkb( unsigned char *, int = -1 );
    00269     virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;
    00270     virtual OGRErr importFromWkt( char ** );
    00271     virtual OGRErr exportToWkt( char ** ppszDstText ) const;
    00272
    00273     // IGeometry interface
    00274     virtual int getDimension() const;
    00275     virtual OGRGeometry *clone() const;
    00276     virtual void empty();
    00277     virtual void getEnvelope( OGREnvelope * psEnvelope ) const;
    00278     virtual OGRBoolean  IsEmpty() const;
    00279
    00280     // ICurve methods
    00281     virtual double get_Length() const;
    00282     virtual void StartPoint(OGRPoint *) const;
    00283     virtual void EndPoint(OGRPoint *) const;
    00284     virtual void Value( double, OGRPoint * ) const;
    00285
    00286     // ILineString methods
    00287     int         getNumPoints() const { return nPointCount; }
    00288     void        getPoint( int, OGRPoint * ) const;
    00289     double      getX( int i ) const { return paoPoints[i].x; }
    00290     double      getY( int i ) const { return paoPoints[i].y; }
    00291     double      getZ( int i ) const;
    00292
    00293     // ISpatialRelation
    00294     virtual OGRBoolean  Equals( OGRGeometry * ) const;
    00295
    00296     // non standard.
    00297     virtual void setCoordinateDimension( int nDimension );
    00298     void        setNumPoints( int );
    00299     void        setPoint( int, OGRPoint * );
    00300     void        setPoint( int, double, double );
    00301     void        setPoint( int, double, double, double );
    00302     void        setPoints( int, OGRRawPoint *, double * = NULL );
    00303     void        setPoints( int, double * padfX, double * padfY,
    00304                            double *padfZ = NULL );
    00305     void        addPoint( OGRPoint * );
    00306     void        addPoint( double, double );
    00307     void        addPoint( double, double, double );
    00308
    00309     void        getPoints( OGRRawPoint *, double * = NULL ) const;
    00310
    00311     void        addSubLineString( const OGRLineString *,
    00312                                   int nStartVertex = 0, int nEndVertex = -1 );
    00313
    00314     // non-standard from OGRGeometry
    00315     virtual OGRwkbGeometryType getGeometryType() const;
    00316     virtual const char *getGeometryName() const;
    00317     virtual OGRErr  transform( OGRCoordinateTransformation *poCT );
    00318     virtual void flattenTo2D();
    00319     virtual void segmentize(double dfMaxLength);
    00320
    00321     virtual void        swapXY();
    00322 };
    00323
    00324 /************************************************************************/
    00325 /*                            OGRLinearRing                             */
    00326 /************************************************************************/
    00327
    00346 class CPL_DLL OGRLinearRing : public OGRLineString
    00347 {
    00348   private:
    00349     friend class OGRPolygon;
    00350
    00351     // These are not IWks compatible ... just a convenience for OGRPolygon.
    00352     virtual int _WkbSize( int b3D ) const;
    00353     virtual OGRErr _importFromWkb( OGRwkbByteOrder, int b3D,
    00354                                    unsigned char *, int=-1 );
    00355     virtual OGRErr _exportToWkb( OGRwkbByteOrder, int b3D,
    00356                                  unsigned char * ) const;
    00357
    00358   public:
    00359                         OGRLinearRing();
    00360                         OGRLinearRing( OGRLinearRing * );
    00361                         ~OGRLinearRing();
    00362
    00363     // Non standard.
    00364     virtual const char *getGeometryName() const;
    00365     virtual OGRGeometry *clone() const;
    00366     virtual int isClockwise() const;
    00367     virtual void reverseWindingOrder();
    00368     virtual void closeRings();
    00369     virtual double get_Area() const;
    00370     OGRBoolean isPointInRing(const OGRPoint* pt, int bTestEnvelope = TRUE) const;
    00371     OGRBoolean isPointOnRingBoundary(const OGRPoint* pt, int bTestEnvelope = TRUE) const;
    00372
    00373     // IWks Interface - Note this isnt really a first class object
    00374     // for the purposes of WKB form.  These methods always fail since this
    00375     // object cant be serialized on its own.
    00376     virtual int WkbSize() const;
    00377     virtual OGRErr importFromWkb( unsigned char *, int=-1 );
    00378     virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;
    00379 };
    00380
    00381 /************************************************************************/
    00382 /*                              OGRSurface                              */
    00383 /************************************************************************/
    00384
    00389 class CPL_DLL OGRSurface : public OGRGeometry
    00390 {
    00391   public:
    00392     virtual double      get_Area() const = 0;
    00393     virtual OGRErr      PointOnSurface( OGRPoint * poPoint ) const = 0;
    00394 };
    00395
    00396 /************************************************************************/
    00397 /*                              OGRPolygon                              */
    00398 /************************************************************************/
    00399
    00409 class CPL_DLL OGRPolygon : public OGRSurface
    00410 {
    00411     int         nRingCount;
    00412     OGRLinearRing **papoRings;
    00413
    00414   public:
    00415                 OGRPolygon();
    00416     virtual     ~OGRPolygon();
    00417
    00418     // Non standard (OGRGeometry).
    00419     virtual const char *getGeometryName() const;
    00420     virtual OGRwkbGeometryType getGeometryType() const;
    00421     virtual OGRGeometry *clone() const;
    00422     virtual void empty();
    00423     virtual OGRErr  transform( OGRCoordinateTransformation *poCT );
    00424     virtual void flattenTo2D();
    00425     virtual OGRBoolean  IsEmpty() const;
    00426     virtual void segmentize(double dfMaxLength);
    00427
    00428     // ISurface Interface
    00429     virtual double      get_Area() const;
    00430     virtual int         PointOnSurface( OGRPoint * poPoint ) const;
    00431
    00432     // IWks Interface
    00433     virtual int WkbSize() const;
    00434     virtual OGRErr importFromWkb( unsigned char *, int = -1 );
    00435     virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;
    00436     virtual OGRErr importFromWkt( char ** );
    00437     virtual OGRErr exportToWkt( char ** ppszDstText ) const;
    00438
    00439     // IGeometry
    00440     virtual int getDimension() const;
    00441     virtual void getEnvelope( OGREnvelope * psEnvelope ) const;
    00442
    00443     // ISpatialRelation
    00444     virtual OGRBoolean  Equals( OGRGeometry * ) const;
    00445
    00446     // Non standard
    00447     virtual void setCoordinateDimension( int nDimension );
    00448
    00449     void        addRing( OGRLinearRing * );
    00450     void        addRingDirectly( OGRLinearRing * );
    00451
    00452     OGRLinearRing *getExteriorRing();
    00453     const OGRLinearRing *getExteriorRing() const;
    00454     int         getNumInteriorRings() const;
    00455     OGRLinearRing *getInteriorRing( int );
    00456     const OGRLinearRing *getInteriorRing( int ) const;
    00457
    00458     OGRBoolean IsPointOnSurface( const OGRPoint * ) const;
    00459
    00460     virtual void closeRings();
    00461
    00462     virtual void        swapXY();
    00463 };
    00464
    00465 /************************************************************************/
    00466 /*                        OGRGeometryCollection                         */
    00467 /************************************************************************/
    00468
    00476 class CPL_DLL OGRGeometryCollection : public OGRGeometry
    00477 {
    00478     int         nGeomCount;
    00479     OGRGeometry **papoGeoms;
    00480
    00481   public:
    00482                 OGRGeometryCollection();
    00483     virtual     ~OGRGeometryCollection();
    00484
    00485     // Non standard (OGRGeometry).
    00486     virtual const char *getGeometryName() const;
    00487     virtual OGRwkbGeometryType getGeometryType() const;
    00488     virtual OGRGeometry *clone() const;
    00489     virtual void empty();
    00490     virtual OGRErr  transform( OGRCoordinateTransformation *poCT );
    00491     virtual void flattenTo2D();
    00492     virtual OGRBoolean  IsEmpty() const;
    00493     virtual void segmentize(double dfMaxLength);
    00494
    00495     // IWks Interface
    00496     virtual int WkbSize() const;
    00497     virtual OGRErr importFromWkb( unsigned char *, int = -1 );
    00498     virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;
    00499     virtual OGRErr importFromWkt( char ** );
    00500     virtual OGRErr exportToWkt( char ** ppszDstText ) const;
    00501
    00502     virtual double get_Length() const;
    00503     virtual double get_Area() const;
    00504
    00505     // IGeometry methods
    00506     virtual int getDimension() const;
    00507     virtual void getEnvelope( OGREnvelope * psEnvelope ) const;
    00508
    00509     // IGeometryCollection
    00510     int         getNumGeometries() const;
    00511     OGRGeometry *getGeometryRef( int );
    00512     const OGRGeometry *getGeometryRef( int ) const;
    00513
    00514     // ISpatialRelation
    00515     virtual OGRBoolean  Equals( OGRGeometry * ) const;
    00516
    00517     // Non standard
    00518     virtual void setCoordinateDimension( int nDimension );
    00519     virtual OGRErr addGeometry( const OGRGeometry * );
    00520     virtual OGRErr addGeometryDirectly( OGRGeometry * );
    00521     virtual OGRErr removeGeometry( int iIndex, int bDelete = TRUE );
    00522
    00523     void closeRings();
    00524
    00525     virtual void        swapXY();
    00526 };
    00527
    00528 /************************************************************************/
    00529 /*                           OGRMultiPolygon                            */
    00530 /************************************************************************/
    00531
    00539 class CPL_DLL OGRMultiPolygon : public OGRGeometryCollection
    00540 {
    00541   public:
    00542             OGRMultiPolygon();
    00543     // Non standard (OGRGeometry).
    00544     virtual const char *getGeometryName() const;
    00545     virtual OGRwkbGeometryType getGeometryType() const;
    00546     virtual OGRGeometry *clone() const;
    00547     virtual OGRErr importFromWkt( char ** );
    00548     virtual OGRErr exportToWkt( char ** ) const;
    00549
    00550     // Non standard
    00551     virtual OGRErr addGeometryDirectly( OGRGeometry * );
    00552
    00553     virtual double  get_Area() const;
    00554 };
    00555
    00556 /************************************************************************/
    00557 /*                            OGRMultiPoint                             */
    00558 /************************************************************************/
    00559
    00564 class CPL_DLL OGRMultiPoint : public OGRGeometryCollection
    00565 {
    00566   private:
    00567     OGRErr  importFromWkt_Bracketed( char **, int bHasM, int bHasZ );
    00568
    00569   public:
    00570             OGRMultiPoint();
    00571     // Non standard (OGRGeometry).
    00572     virtual const char *getGeometryName() const;
    00573     virtual OGRwkbGeometryType getGeometryType() const;
    00574     virtual OGRGeometry *clone() const;
    00575     virtual OGRErr importFromWkt( char ** );
    00576     virtual OGRErr exportToWkt( char ** ) const;
    00577
    00578     // Non standard
    00579     virtual OGRErr addGeometryDirectly( OGRGeometry * );
    00580 };
    00581
    00582 /************************************************************************/
    00583 /*                          OGRMultiLineString                          */
    00584 /************************************************************************/
    00585
    00590 class CPL_DLL OGRMultiLineString : public OGRGeometryCollection
    00591 {
    00592   public:
    00593             OGRMultiLineString();
    00594             ~OGRMultiLineString();
    00595     // Non standard (OGRGeometry).
    00596     virtual const char *getGeometryName() const;
    00597     virtual OGRwkbGeometryType getGeometryType() const;
    00598     virtual OGRGeometry *clone() const;
    00599     virtual OGRErr importFromWkt( char ** );
    00600     virtual OGRErr exportToWkt( char ** ) const;
    00601
    00602     // Non standard
    00603     virtual OGRErr addGeometryDirectly( OGRGeometry * );
    00604 };
    00605
    00606
    00607 /************************************************************************/
    00608 /*                          OGRGeometryFactory                          */
    00609 /************************************************************************/
    00610
    00615 class CPL_DLL OGRGeometryFactory
    00616 {
    00617   public:
    00618     static OGRErr createFromWkb( unsigned char *, OGRSpatialReference *,
    00619                                  OGRGeometry **, int = -1 );
    00620     static OGRErr createFromWkt( char **, OGRSpatialReference *,
    00621                                  OGRGeometry ** );
    00622     static OGRErr createFromFgf( unsigned char *, OGRSpatialReference *,
    00623                                  OGRGeometry **, int = -1, int * = NULL );
    00624     static OGRGeometry *createFromGML( const char * );
    00625     static OGRGeometry *createFromGEOS( GEOSGeom );
    00626
    00627     static void   destroyGeometry( OGRGeometry * );
    00628     static OGRGeometry *createGeometry( OGRwkbGeometryType );
    00629
    00630     static OGRGeometry * forceToPolygon( OGRGeometry * );
    00631     static OGRGeometry * forceToMultiPolygon( OGRGeometry * );
    00632     static OGRGeometry * forceToMultiPoint( OGRGeometry * );
    00633     static OGRGeometry * forceToMultiLineString( OGRGeometry * );
    00634
    00635     static OGRGeometry * organizePolygons( OGRGeometry **papoPolygons,
    00636                                            int nPolygonCount,
    00637                                            int *pbResultValidGeometry,
    00638                                            const char **papszOptions = NULL);
    00639
    00640     static void *getGEOSGeometryFactory();
    00641
    00642     static int haveGEOS();
    00643
    00644     static OGRGeometry* transformWithOptions( const OGRGeometry* poSrcGeom,
    00645                                               OGRCoordinateTransformation *poCT,
    00646                                               char** papszOptions );
    00647
    00648     static OGRGeometry*
    00649         approximateArcAngles( double dfX, double dfY, double dfZ,
    00650                               double dfPrimaryRadius, double dfSecondaryAxis,
    00651                               double dfRotation,
    00652                               double dfStartAngle, double dfEndAngle,
    00653                               double dfMaxAngleStepSizeDegrees );
    00654 };
    00655
    00656 OGRwkbGeometryType CPL_DLL OGRFromOGCGeomType( const char *pszGeomType );
    00657 const char CPL_DLL * OGRToOGCGeomType( OGRwkbGeometryType eGeomType );
    00658
    00659 #endif /* ndef _OGR_GEOMETRY_H_INCLUDED */

Generated for GDAL by 1.5.6.