⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ogr_geometry.h

📁 在linux环境下
💻 H
📖 第 1 页 / 共 2 页
字号:
};/************************************************************************//*                            OGRLineString                             *//************************************************************************//** * Concrete representation of a multi-vertex line. */class CPL_DLL OGRLineString : public OGRCurve{  protected:    int         nPointCount;    OGRRawPoint *paoPoints;    double      *padfZ;    void        Make3D();    void        Make2D();  public:                OGRLineString();    virtual     ~OGRLineString();    // IWks Interface    virtual int WkbSize();    virtual OGRErr importFromWkb( unsigned char *, int = -1 );    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * );    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ppszDstText );    // IGeometry interface    virtual int getDimension();    virtual int getCoordinateDimension();    virtual OGRGeometry *clone();    virtual void empty();    virtual void getEnvelope( OGREnvelope * psEnvelope );    // ICurve methods    virtual double get_Length();    virtual void StartPoint(OGRPoint *);    virtual void EndPoint(OGRPoint *);    virtual void Value( double, OGRPoint * );        // ILineString methods    int         getNumPoints() { return nPointCount; }    void        getPoint( int, OGRPoint * );    double      getX( int i ) { return paoPoints[i].x; }    double      getY( int i ) { return paoPoints[i].y; }    double      getZ( int i );    // ISpatialRelation    virtual OGRBoolean  Equal( OGRGeometry * );        // non standard.    void        setNumPoints( int );    void        setPoint( int, OGRPoint * );    void        setPoint( int, double, double, double = 0.0 );    void        setPoints( int, OGRRawPoint *, double * = NULL );    void        setPoints( int, double * padfX, double * padfY,                           double *padfZ = NULL );    void        addPoint( OGRPoint * );    void        addPoint( double, double, double = 0.0 );    // non-standard from OGRGeometry    virtual OGRwkbGeometryType getGeometryType();    virtual const char *getGeometryName();    virtual OGRErr  transform( OGRCoordinateTransformation *poCT );    virtual void flattenTo2D();};/************************************************************************//*                            OGRLinearRing                             *//*                                                                      *//*      This is an alias for OGRLineString for now.                     *//************************************************************************//** * Concrete representation of a closed ring. * * This class is functionally equivelent to an OGRLineString, but has a * separate identity to maintain alignment with the OpenGIS simple feature * data model.  It exists to serve as a component of an OGRPolygon. */class CPL_DLL OGRLinearRing : public OGRLineString{  private:    friend class OGRPolygon;         // These are not IWks compatible ... just a convenience for OGRPolygon.    virtual int _WkbSize( int b3D );    virtual OGRErr _importFromWkb( OGRwkbByteOrder, int b3D,                                   unsigned char *, int=-1 );    virtual OGRErr _exportToWkb( OGRwkbByteOrder, int b3D, unsigned char * );      public:                        OGRLinearRing();                        OGRLinearRing( OGRLinearRing * );    // Non standard.    virtual const char *getGeometryName();    virtual OGRGeometry *clone();    virtual int isClockwise();        // IWks Interface - Note this isnt really a first class object    // for the purposes of WKB form.  These methods always fail since this    // object cant be serialized on its own.     virtual int WkbSize();    virtual OGRErr importFromWkb( unsigned char *, int=-1 );    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * );};/************************************************************************//*                              OGRSurface                              *//************************************************************************//** * Abstract base class for 2 dimensional objects like polygons. */class CPL_DLL OGRSurface : public OGRGeometry{  public:    virtual double      get_Area() = 0;    virtual OGRErr      Centroid( OGRPoint * poPoint ) = 0;    virtual OGRErr      PointOnSurface( OGRPoint * poPoint ) = 0;};/************************************************************************//*                              OGRPolygon                              *//************************************************************************//** * Concrete class representing polygons. * * Note that the OpenGIS simple features polygons consist of one outer * ring, and zero or more inner rings.  A polygon cannot represent disconnected * regions (such as multiple islands in a political body).  The * OGRMultiPolygon must be used for this. */class CPL_DLL OGRPolygon : public OGRSurface{    int         nRingCount;    OGRLinearRing **papoRings;      public:                OGRPolygon();    virtual     ~OGRPolygon();    // Non standard (OGRGeometry).    virtual const char *getGeometryName();    virtual OGRwkbGeometryType getGeometryType();    virtual OGRGeometry *clone();    virtual void empty();    virtual OGRErr  transform( OGRCoordinateTransformation *poCT );    virtual void flattenTo2D();        // ISurface Interface    virtual double      get_Area();    virtual int         Centroid( OGRPoint * poPoint );    virtual int         PointOnSurface( OGRPoint * poPoint );        // IWks Interface    virtual int WkbSize();    virtual OGRErr importFromWkb( unsigned char *, int = -1 );    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * );    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ppszDstText );    // IGeometry    virtual int getDimension();    virtual int getCoordinateDimension();    virtual void getEnvelope( OGREnvelope * psEnvelope );    // ISpatialRelation    virtual OGRBoolean  Equal( OGRGeometry * );        // Non standard    void        addRing( OGRLinearRing * );    void        addRingDirectly( OGRLinearRing * );    OGRLinearRing *getExteriorRing();    int         getNumInteriorRings();    OGRLinearRing *getInteriorRing( int );        };/************************************************************************//*                        OGRGeometryCollection                         *//************************************************************************//** * A collection of 1 or more geometry objects. * * All geometries must share a common spatial reference system, and * Subclasses may impose additional restrictions on the contents. */class CPL_DLL OGRGeometryCollection : public OGRGeometry{    int         nGeomCount;    OGRGeometry **papoGeoms;    int         nCoordinateDimension;      public:                OGRGeometryCollection();    virtual     ~OGRGeometryCollection();    // Non standard (OGRGeometry).    virtual const char *getGeometryName();    virtual OGRwkbGeometryType getGeometryType();    virtual OGRGeometry *clone();    virtual void empty();    virtual OGRErr  transform( OGRCoordinateTransformation *poCT );    virtual void flattenTo2D();        // IWks Interface    virtual int WkbSize();    virtual OGRErr importFromWkb( unsigned char *, int = -1 );    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * );    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ppszDstText );    // IGeometry methods    virtual int getDimension();    virtual int getCoordinateDimension();    virtual void getEnvelope( OGREnvelope * psEnvelope );    // IGeometryCollection    int         getNumGeometries();    OGRGeometry *getGeometryRef( int );    // ISpatialRelation    virtual OGRBoolean  Equal( OGRGeometry * );        // Non standard    virtual OGRErr addGeometry( OGRGeometry * );    virtual OGRErr addGeometryDirectly( OGRGeometry * );    virtual OGRErr removeGeometry( int iIndex, int bDelete = TRUE );};/************************************************************************//*                           OGRMultiPolygon                            *//************************************************************************//** * A collection of non-overlapping OGRPolygons. * * Note that the IMultiSurface class hasn't been modelled, nor have any * of it's methods.  */class CPL_DLL OGRMultiPolygon : public OGRGeometryCollection{  public:    // Non standard (OGRGeometry).    virtual const char *getGeometryName();    virtual OGRwkbGeometryType getGeometryType();    virtual OGRGeometry *clone();    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** );        // Non standard    virtual OGRErr addGeometryDirectly( OGRGeometry * );};/************************************************************************//*                            OGRMultiPoint                             *//************************************************************************//** * A collection of OGRPoints. */class CPL_DLL OGRMultiPoint : public OGRGeometryCollection{  private:    OGRErr  importFromWkt_Bracketed( char ** );  public:    // Non standard (OGRGeometry).    virtual const char *getGeometryName();    virtual OGRwkbGeometryType getGeometryType();    virtual OGRGeometry *clone();    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** );        // Non standard    virtual OGRErr addGeometryDirectly( OGRGeometry * );};/************************************************************************//*                          OGRMultiLineString                          *//************************************************************************//** * A collection of OGRLineStrings. */class CPL_DLL OGRMultiLineString : public OGRGeometryCollection{  public:    // Non standard (OGRGeometry).    virtual const char *getGeometryName();    virtual OGRwkbGeometryType getGeometryType();    virtual OGRGeometry *clone();    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** );        // Non standard    virtual OGRErr addGeometryDirectly( OGRGeometry * );};/************************************************************************//*                          OGRGeometryFactory                          *//************************************************************************//** * Create geometry objects from well known text/binary. */class CPL_DLL OGRGeometryFactory{  public:    static OGRErr createFromWkb( unsigned char *, OGRSpatialReference *,                                 OGRGeometry **, int = -1 );    static OGRErr createFromWkt( char **, OGRSpatialReference *,                                 OGRGeometry ** );    static OGRGeometry *createFromGML( const char * );    static void   destroyGeometry( OGRGeometry * );    static OGRGeometry *createGeometry( OGRwkbGeometryType );    static OGRGeometry * forceToPolygon( OGRGeometry * );    static OGRGeometry * forceToMultiPolygon( OGRGeometry * );    static OGRGeometry * forceToMultiPoint( OGRGeometry * );    static OGRGeometry * forceToMultiLineString( OGRGeometry * );};#endif /* ndef _OGR_GEOMETRY_H_INCLUDED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -