亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ogr_geometry.h

?? mitab,讀取MapInfo的地圖文件
?? H
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
 * $Id: ogr_geometry.h 12517 2007-10-23 15:07:35Z mloskot $
 *
 * Project:  OpenGIS Simple Features Reference Implementation
 * Purpose:  Classes for manipulating simple features that is not specific
 *           to a particular interface technology.
 * Author:   Frank Warmerdam, warmerdam@pobox.com
 *
 ******************************************************************************
 * Copyright (c) 1999, Frank Warmerdam
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 ****************************************************************************/

#ifndef _OGR_GEOMETRY_H_INCLUDED
#define _OGR_GEOMETRY_H_INCLUDED

#include "ogr_core.h"
#include "ogr_spatialref.h"

/**
 * \file ogr_geometry.h
 *
 * Simple feature geometry classes.
 */

/**
 * Simple container for a position.
 */
class OGRRawPoint
{
  public:
          OGRRawPoint()
          {
                  x = y = 0.0;
          }
    double      x;
    double      y;
};

typedef struct GEOSGeom_t *GEOSGeom;

/************************************************************************/
/*                             OGRGeometry                              */
/************************************************************************/

/**
 * Abstract base class for all geometry classes.
 *
 * Note that the family of spatial analysis methods (Equal(), Disjoint(), ...,
 * ConvexHull(), Buffer(), ...) are not implemented at ths time.  Some other
 * required and optional geometry methods have also been omitted at this
 * time.
 */
 
class CPL_DLL OGRGeometry
{
  private:
    OGRSpatialReference * poSRS;                // may be NULL

  protected:
    int                   nCoordDimension;
    
  public:
                OGRGeometry();
    virtual     ~OGRGeometry();
                        
    // standard IGeometry
    virtual int getDimension() const = 0;
    virtual int getCoordinateDimension() const;
    virtual OGRBoolean  IsEmpty() const { return 0; } 
    virtual OGRBoolean  IsSimple() const { return 1; }
    virtual void        empty() = 0;
    virtual OGRGeometry *clone() const = 0;
    virtual void getEnvelope( OGREnvelope * psEnvelope ) const = 0;

    // IWks Interface
    virtual int WkbSize() const = 0;
    virtual OGRErr importFromWkb( unsigned char *, int=-1 )=0;
    virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char * ) const = 0;
    virtual OGRErr importFromWkt( char ** ppszInput ) = 0;
    virtual OGRErr exportToWkt( char ** ppszDstText ) const = 0;
    
    // non-standard
    virtual OGRwkbGeometryType getGeometryType() const = 0;
    virtual const char *getGeometryName() const = 0;
    virtual void   dumpReadable( FILE *, const char * = NULL ) const;
    virtual void   flattenTo2D() = 0;
    virtual char * exportToGML() const;
    virtual GEOSGeom exportToGEOS() const;
    virtual void closeRings();

    virtual void setCoordinateDimension( int nDimension ); 

    void    assignSpatialReference( OGRSpatialReference * poSR );
    OGRSpatialReference *getSpatialReference( void ) const { return poSRS; }

    virtual OGRErr  transform( OGRCoordinateTransformation *poCT ) = 0;
    OGRErr  transformTo( OGRSpatialReference *poSR );

    // ISpatialRelation
    virtual OGRBoolean  Intersects( OGRGeometry * ) const;
    virtual OGRBoolean  Equals( OGRGeometry * ) const = 0;
    virtual OGRBoolean  Disjoint( const OGRGeometry * ) const;
    virtual OGRBoolean  Touches( const OGRGeometry * ) const;
    virtual OGRBoolean  Crosses( const OGRGeometry * ) const;
    virtual OGRBoolean  Within( const OGRGeometry * ) const;
    virtual OGRBoolean  Contains( const OGRGeometry * ) const;
    virtual OGRBoolean  Overlaps( const OGRGeometry * ) const;
//    virtual OGRBoolean  Relate( const OGRGeometry *, const char * ) const;

    virtual OGRGeometry *getBoundary() const;
    virtual double  Distance( const OGRGeometry * ) const;
    virtual OGRGeometry *ConvexHull() const;
    virtual OGRGeometry *Buffer( double dfDist, int nQuadSegs = 30 ) const;
    virtual OGRGeometry *Intersection( const OGRGeometry *) const;
    virtual OGRGeometry *Union( const OGRGeometry * ) const;
    virtual OGRGeometry *Difference( const OGRGeometry * ) const;
    virtual OGRGeometry *SymmetricDifference( const OGRGeometry * ) const;

    // backward compatibility methods. 
    OGRBoolean  Intersect( OGRGeometry * ) const;
    OGRBoolean  Equal( OGRGeometry * ) const;

    // Special HACK for DB2 7.2 support
    static int bGenerate_DB2_V72_BYTE_ORDER;
};

/************************************************************************/
/*                               OGRPoint                               */
/************************************************************************/

/**
 * Point class.
 *
 * Implements SFCOM IPoint methods.
 */

class CPL_DLL OGRPoint : public OGRGeometry
{
    double      x;
    double      y;
    double      z;

  public:
                OGRPoint();
                OGRPoint( double x, double y );
                OGRPoint( double x, double y, double z );
    virtual     ~OGRPoint();

    // 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 OGRGeometry *clone() const;
    virtual void empty();
    virtual void getEnvelope( OGREnvelope * psEnvelope ) const;

    // IPoint
    double      getX() const { return x; } 
    double      getY() const { return y; }
    double      getZ() const { return z; }

    // Non standard
    virtual void setCoordinateDimension( int nDimension ); 
    void        setX( double xIn ) { x = xIn; }
    void        setY( double yIn ) { y = yIn; }
    void        setZ( double zIn ) { z = zIn; nCoordDimension=3; }

    // ISpatialRelation
    virtual OGRBoolean  Equals( OGRGeometry * ) const;
    
    // Non standard from OGRGeometry
    virtual const char *getGeometryName() const;
    virtual OGRwkbGeometryType getGeometryType() const;
    virtual OGRErr  transform( OGRCoordinateTransformation *poCT );
    virtual void flattenTo2D();

};

/************************************************************************/
/*                               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();

};

/************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线亚洲+欧美+日本专区| 亚洲自拍偷拍九九九| 欧美在线视频日韩| 国产一区二区三区免费看| 亚洲蜜桃精久久久久久久| 日韩女优制服丝袜电影| 91日韩精品一区| 精品一区二区日韩| 亚洲福利一区二区| 亚洲欧洲性图库| 精品久久人人做人人爰| 欧美日韩久久久久久| 99国产欧美另类久久久精品| 美女网站一区二区| 亚洲国产cao| 亚洲免费观看高清完整| 久久五月婷婷丁香社区| 69成人精品免费视频| 色94色欧美sute亚洲线路一ni| 国内成人免费视频| 青娱乐精品视频| 亚洲午夜精品在线| 亚洲欧美日韩国产另类专区| 欧美激情一区二区三区在线| 日韩精品一区二区三区老鸭窝| 欧美午夜一区二区三区 | 久久 天天综合| 亚洲一区二区黄色| 亚洲欧美偷拍卡通变态| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美天天综合网| 91日韩在线专区| 99精品黄色片免费大全| 9i在线看片成人免费| 国产精品亚洲一区二区三区在线| 久久爱www久久做| 看国产成人h片视频| 日本女人一区二区三区| 日日夜夜精品视频天天综合网| 亚洲一区二区三区在线播放| 亚洲日本青草视频在线怡红院| 国产精品你懂的在线| 中文欧美字幕免费| 欧美高清一级片在线观看| 国产视频亚洲色图| 国产欧美一区二区精品秋霞影院| 久久久久久久电影| 国产欧美在线观看一区| 国产网站一区二区| 日本一区二区成人在线| 国产精品素人一区二区| 中文字幕一区二区视频| 亚洲色大成网站www久久九九| 亚洲丝袜另类动漫二区| 亚洲色图都市小说| 亚洲一区二区av在线| 午夜电影久久久| 蜜臀av一区二区| 激情久久久久久久久久久久久久久久| 久久成人18免费观看| 国产99一区视频免费| 99在线精品观看| 欧美三区在线观看| 制服.丝袜.亚洲.另类.中文| 欧美mv日韩mv| 国产三级一区二区三区| 中文字幕欧美一| 亚洲福利视频三区| 蜜桃一区二区三区在线观看| 国产高清无密码一区二区三区| 成人永久免费视频| 在线视频国内自拍亚洲视频| 在线成人av网站| 26uuu色噜噜精品一区| 中文字幕av一区二区三区高 | 五月天国产精品| 国产在线看一区| 色欧美日韩亚洲| 欧美一区二区三区公司| 中文字幕第一区综合| 亚洲五码中文字幕| 精品午夜久久福利影院| 99久久99久久精品国产片果冻| 欧美疯狂做受xxxx富婆| 国产日韩影视精品| 亚洲一区二区三区视频在线| 韩日av一区二区| 91精品1区2区| 精品久久人人做人人爽| 亚洲欧美福利一区二区| 蜜桃一区二区三区在线观看| 成人污污视频在线观看| 宅男在线国产精品| 欧美激情一区二区三区在线| 日本不卡高清视频| 99精品久久只有精品| 精品毛片乱码1区2区3区| 亚洲欧洲色图综合| 九一九一国产精品| 国产日产欧美一区二区三区| 午夜欧美一区二区三区在线播放| 懂色av中文一区二区三区| 欧美日本一区二区三区四区| 国产精品国产三级国产普通话99 | 日韩欧美www| 亚洲一区在线观看免费| 国产白丝精品91爽爽久久| 欧美精品粉嫩高潮一区二区| 国产精品国产三级国产| 久久精品国产亚洲5555| 欧美亚洲自拍偷拍| 国产精品黄色在线观看| 精品在线一区二区| 欧美高清视频www夜色资源网| 一区二区三区精品在线观看| 国产成人午夜电影网| 日韩色在线观看| 午夜天堂影视香蕉久久| 色吊一区二区三区| 国产精品国产三级国产a| 国产成人精品一区二区三区四区| 91精品国产一区二区三区蜜臀| 亚洲一区在线看| 色综合久久久网| 国产精品久久午夜| 处破女av一区二区| 国产婷婷精品av在线| 国产乱国产乱300精品| 精品黑人一区二区三区久久| 免费av成人在线| 91精品国产综合久久久蜜臀粉嫩 | 午夜一区二区三区视频| 欧美自拍偷拍一区| 亚洲精品国产a| 色婷婷国产精品久久包臀| 亚洲欧洲三级电影| 91理论电影在线观看| 亚洲欧美日韩综合aⅴ视频| www.欧美精品一二区| 国产精品成人免费| 91丨国产丨九色丨pron| 18成人在线观看| 色妹子一区二区| 一区二区国产视频| 精品视频免费看| 免费人成在线不卡| 日韩免费看网站| 国产乱妇无码大片在线观看| 国产欧美精品区一区二区三区 | 欧美日韩成人高清| 亚洲国产wwwccc36天堂| 91精品国产欧美日韩| 麻豆国产精品777777在线| 欧美精品一区二区三区蜜桃| 韩国三级中文字幕hd久久精品| 国产亚洲欧美一区在线观看| 成人午夜精品一区二区三区| 亚洲欧美电影一区二区| 欧美巨大另类极品videosbest | 东方欧美亚洲色图在线| 国产精品免费网站在线观看| 色综合久久久久综合体 | 国产精一品亚洲二区在线视频| 国产亚洲一区二区三区在线观看| 成人av电影免费在线播放| 中文字幕一区二区三| 91国产免费观看| 日韩va欧美va亚洲va久久| 久久久一区二区| 99精品国产一区二区三区不卡| 亚洲一区二区三区免费视频| 日韩你懂的电影在线观看| 成人av资源在线| 亚洲午夜日本在线观看| 日韩美女在线视频| 国产成人av一区二区| 亚洲国产色一区| 久久久久久久久久看片| 色狠狠一区二区| 久久99国产精品尤物| 亚洲免费资源在线播放| 日韩免费成人网| 色婷婷久久久久swag精品| 黑人精品欧美一区二区蜜桃| 亚洲精品网站在线观看| 欧美电视剧免费全集观看| 93久久精品日日躁夜夜躁欧美| 日韩黄色免费电影| 国产精品久久久久久户外露出 | 中日韩av电影| 欧美精品vⅰdeose4hd| 不卡的电影网站| 美女一区二区视频| 中文字幕日韩一区二区| 欧美大片免费久久精品三p| 99r国产精品| 精品一区二区免费| 亚洲国产日产av| 中文字幕巨乱亚洲| 日韩欧美国产一区二区三区|