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

📄 ogr_geometry.h

📁 这是我已经编译好的GDAL1.4的所有文件
💻 H
📖 第 1 页 / 共 2 页
字号:
/************************************************************************//*                               OGRCurve                               *//************************************************************************//** * Abstract curve base class. */class CPL_DLL OGRCurve : public OGRGeometry{  public:            OGRCurve();    virtual ~OGRCurve();    // ICurve methods    virtual double get_Length() const = 0;    virtual void StartPoint(OGRPoint *) const = 0;    virtual void EndPoint(OGRPoint *) const = 0;    virtual int  get_IsClosed() const;    virtual void Value( double, OGRPoint * ) const = 0;};/************************************************************************//*                            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() const;    virtual OGRErr importFromWkb( unsigned char *, int = -1 );    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ppszDstText ) const;    // IGeometry interface    virtual int getDimension() const;    virtual OGRGeometry *clone() const;    virtual void empty();    virtual void getEnvelope( OGREnvelope * psEnvelope ) const;    // ICurve methods    virtual double get_Length() const;    virtual void StartPoint(OGRPoint *) const;    virtual void EndPoint(OGRPoint *) const;    virtual void Value( double, OGRPoint * ) const;        // ILineString methods    int         getNumPoints() const { return nPointCount; }    void        getPoint( int, OGRPoint * ) const;    double      getX( int i ) const { return paoPoints[i].x; }    double      getY( int i ) const { return paoPoints[i].y; }    double      getZ( int i ) const;    // ISpatialRelation    virtual OGRBoolean  Equals( OGRGeometry * ) const;        // non standard.    virtual void setCoordinateDimension( int nDimension );     void        setNumPoints( int );    void        setPoint( int, OGRPoint * );    void        setPoint( int, double, double );    void        setPoint( int, double, double, double );    void        setPoints( int, OGRRawPoint *, double * = NULL );    void        setPoints( int, double * padfX, double * padfY,                           double *padfZ = NULL );    void        addPoint( OGRPoint * );    void        addPoint( double, double );    void        addPoint( double, double, double );    void        getPoints( OGRRawPoint *, double * = NULL ) const;    void        addSubLineString( const OGRLineString *,                                   int nStartVertex = 0, int nEndVertex = -1 );    // non-standard from OGRGeometry    virtual OGRwkbGeometryType getGeometryType() const;    virtual const char *getGeometryName() const;    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 ) const;    virtual OGRErr _importFromWkb( OGRwkbByteOrder, int b3D,                                   unsigned char *, int=-1 );    virtual OGRErr _exportToWkb( OGRwkbByteOrder, int b3D,                                  unsigned char * ) const;      public:                        OGRLinearRing();                        OGRLinearRing( OGRLinearRing * );                        ~OGRLinearRing();    // Non standard.    virtual const char *getGeometryName() const;    virtual OGRGeometry *clone() const;    virtual int isClockwise() const;    virtual void closeRings();    virtual double get_Area() const;    OGRBoolean isPointInRing(const OGRPoint* pt) const;        // 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() const;    virtual OGRErr importFromWkb( unsigned char *, int=-1 );    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;};/************************************************************************//*                              OGRSurface                              *//************************************************************************//** * Abstract base class for 2 dimensional objects like polygons. */class CPL_DLL OGRSurface : public OGRGeometry{  public:    virtual double      get_Area() const = 0;    virtual OGRErr      Centroid( OGRPoint * poPoint ) const = 0;    virtual OGRErr      PointOnSurface( OGRPoint * poPoint ) const = 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() const;    virtual OGRwkbGeometryType getGeometryType() const;    virtual OGRGeometry *clone() const;    virtual void empty();    virtual OGRErr  transform( OGRCoordinateTransformation *poCT );    virtual void flattenTo2D();        // ISurface Interface    virtual double      get_Area() const;    virtual int         Centroid( OGRPoint * poPoint ) const;    virtual int         PointOnSurface( OGRPoint * poPoint ) const;        // IWks Interface    virtual int WkbSize() const;    virtual OGRErr importFromWkb( unsigned char *, int = -1 );    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ppszDstText ) const;    // IGeometry    virtual int getDimension() const;    virtual void getEnvelope( OGREnvelope * psEnvelope ) const;    // ISpatialRelation    virtual OGRBoolean  Equals( OGRGeometry * ) const;        // Non standard    virtual void setCoordinateDimension( int nDimension );     void        addRing( OGRLinearRing * );    void        addRingDirectly( OGRLinearRing * );    OGRLinearRing *getExteriorRing();    const OGRLinearRing *getExteriorRing() const;    int         getNumInteriorRings() const;    OGRLinearRing *getInteriorRing( int );    const OGRLinearRing *getInteriorRing( int ) const;    OGRBoolean IsPointOnSurface( const OGRPoint * ) const;    virtual void closeRings();};/************************************************************************//*                        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() const;    virtual OGRwkbGeometryType getGeometryType() const;    virtual OGRGeometry *clone() const;    virtual void empty();    virtual OGRErr  transform( OGRCoordinateTransformation *poCT );    virtual void flattenTo2D();        // IWks Interface    virtual int WkbSize() const;    virtual OGRErr importFromWkb( unsigned char *, int = -1 );    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const;    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ppszDstText ) const;    // IGeometry methods    virtual int getDimension() const;    virtual void getEnvelope( OGREnvelope * psEnvelope ) const;    // IGeometryCollection    int         getNumGeometries() const;    OGRGeometry *getGeometryRef( int );    const OGRGeometry *getGeometryRef( int ) const;    // ISpatialRelation    virtual OGRBoolean  Equals( OGRGeometry * ) const;        // Non standard    virtual void setCoordinateDimension( int nDimension );     virtual OGRErr addGeometry( const OGRGeometry * );    virtual OGRErr addGeometryDirectly( OGRGeometry * );    virtual OGRErr removeGeometry( int iIndex, int bDelete = TRUE );    void closeRings();};/************************************************************************//*                           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:            OGRMultiPolygon();    // Non standard (OGRGeometry).    virtual const char *getGeometryName() const;    virtual OGRwkbGeometryType getGeometryType() const;    virtual OGRGeometry *clone() const;    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ) const;        // Non standard    virtual OGRErr addGeometryDirectly( OGRGeometry * );    double  get_Area() const;};/************************************************************************//*                            OGRMultiPoint                             *//************************************************************************//** * A collection of OGRPoints. */class CPL_DLL OGRMultiPoint : public OGRGeometryCollection{  private:    OGRErr  importFromWkt_Bracketed( char ** );  public:            OGRMultiPoint();    // Non standard (OGRGeometry).    virtual const char *getGeometryName() const;    virtual OGRwkbGeometryType getGeometryType() const;    virtual OGRGeometry *clone() const;    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ) const;        // Non standard    virtual OGRErr addGeometryDirectly( OGRGeometry * );};/************************************************************************//*                          OGRMultiLineString                          *//************************************************************************//** * A collection of OGRLineStrings. */class CPL_DLL OGRMultiLineString : public OGRGeometryCollection{  public:            OGRMultiLineString();            ~OGRMultiLineString();    // Non standard (OGRGeometry).    virtual const char *getGeometryName() const;    virtual OGRwkbGeometryType getGeometryType() const;    virtual OGRGeometry *clone() const;    virtual OGRErr importFromWkt( char ** );    virtual OGRErr exportToWkt( char ** ) const;        // 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 OGRGeometry *createFromGEOS( GEOSGeom );    static void   destroyGeometry( OGRGeometry * );    static OGRGeometry *createGeometry( OGRwkbGeometryType );    static OGRGeometry * forceToPolygon( OGRGeometry * );    static OGRGeometry * forceToMultiPolygon( OGRGeometry * );    static OGRGeometry * forceToMultiPoint( OGRGeometry * );    static OGRGeometry * forceToMultiLineString( OGRGeometry * );    static void *getGEOSGeometryFactory();    static int haveGEOS();};#endif /* ndef _OGR_GEOMETRY_H_INCLUDED */

⌨️ 快捷键说明

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