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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ogrfielddefn.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
 * $Id: ogrfielddefn.cpp 10646 2007-01-18 02:38:10Z warmerdam $
 *
 * Project:  OpenGIS Simple Features Reference Implementation
 * Purpose:  The OGRFieldDefn class implementation.
 * Author:   Frank Warmerdam, warmerda@home.com
 *
 ******************************************************************************
 * Copyright (c) 1999,  Les Technologies SoftMap Inc.
 *
 * 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.
 ****************************************************************************/

#include "ogr_feature.h"
#include "ogr_api.h"
#include "ogr_p.h"

CPL_CVSID("$Id: ogrfielddefn.cpp 10646 2007-01-18 02:38:10Z warmerdam $");

/************************************************************************/
/*                            OGRFieldDefn()                            */
/************************************************************************/

/**
 * Constructor.
 *
 * @param pszNameIn the name of the new field.
 * @param eTypeIn the type of the new field.
 */

OGRFieldDefn::OGRFieldDefn( const char * pszNameIn, OGRFieldType eTypeIn )

{
    Initialize( pszNameIn, eTypeIn );
}

/************************************************************************/
/*                            OGRFieldDefn()                            */
/************************************************************************/

/**
 * Constructor.
 *
 * Create by cloning an existing field definition.
 *
 * @param poPrototype the field definition to clone.
 */

OGRFieldDefn::OGRFieldDefn( OGRFieldDefn *poPrototype )

{
    Initialize( poPrototype->GetNameRef(), poPrototype->GetType() );

    SetJustify( poPrototype->GetJustify() );
    SetWidth( poPrototype->GetWidth() );
    SetPrecision( poPrototype->GetPrecision() );
//    SetDefault( poPrototype->GetDefaultRef() );
}

/************************************************************************/
/*                           OGR_Fld_Create()                           */
/************************************************************************/
/**
 * Create a new field definition.
 *
 * This function is the same as the CPP method OGRFieldDefn::OGRFieldDefn().
 *
 * @param pszName the name of the new field definition.
 * @param eType the type of the new field definition.
 * @return handle to the new field definition.
 */

OGRFieldDefnH OGR_Fld_Create( const char *pszName, OGRFieldType eType )

{
    return (OGRFieldDefnH) (new OGRFieldDefn(pszName,eType));
}

/************************************************************************/
/*                             Initialize()                             */
/************************************************************************/

void OGRFieldDefn::Initialize( const char * pszNameIn, OGRFieldType eTypeIn )

{
    pszName = CPLStrdup( pszNameIn );
    eType = eTypeIn;
    eJustify = OJUndefined;

    nWidth = 0;         // should these be defined in some particular way
    nPrecision = 0;     // for numbers?

    memset( &uDefault, 0, sizeof(OGRField) );
}

/************************************************************************/
/*                           ~OGRFieldDefn()                            */
/************************************************************************/

OGRFieldDefn::~OGRFieldDefn()

{
    CPLFree( pszName );
}

/************************************************************************/
/*                          OGR_Fld_Destroy()                           */
/************************************************************************/
/**
 * Destroy a field definition.
 *
 * @param hDefn handle to the field definition to destroy.
 */

void OGR_Fld_Destroy( OGRFieldDefnH hDefn )

{
    delete (OGRFieldDefn *) hDefn;
}

/************************************************************************/
/*                              SetName()                               */
/************************************************************************/

/**
 * Reset the name of this field.
 *
 * This method is the same as the C function OGR_Fld_SetName().
 *
 * @param pszNameIn the new name to apply.
 */

void OGRFieldDefn::SetName( const char * pszNameIn )

{
    CPLFree( pszName );
    pszName = CPLStrdup( pszNameIn );
}

/************************************************************************/
/*                          OGR_Fld_SetName()                           */
/************************************************************************/
/**
 * Reset the name of this field.
 *
 * This function is the same as the CPP method OGRFieldDefn::SetName().
 *
 * @param hDefn handle to the field definition to apply the new name to.
 * @param pszName the new name to apply.
 */

void OGR_Fld_SetName( OGRFieldDefnH hDefn, const char *pszName )

{
    ((OGRFieldDefn *) hDefn)->SetName( pszName );
}

/************************************************************************/
/*                             GetNameRef()                             */
/************************************************************************/

/**
 * \fn const char *OGRFieldDefn::GetNameRef();
 *
 * Fetch name of this field.
 *
 * This method is the same as the C function OGR_Fld_GetNameRef().
 *
 * @return pointer to an internal name string that should not be freed or
 * modified.
 */

/************************************************************************/
/*                         OGR_Fld_GetNameRef()                         */
/************************************************************************/
/**
 * Fetch name of this field.
 *
 * This function is the same as the CPP method OGRFieldDefn::GetNameRef().
 *
 * @param hDefn handle to the field definition.
 * @return the name of the field definition.
 * 
 */

const char *OGR_Fld_GetNameRef( OGRFieldDefnH hDefn )

{
    return ((OGRFieldDefn *) hDefn)->GetNameRef();
}

/************************************************************************/
/*                              GetType()                               */
/************************************************************************/

/**
 * \fn OGRFieldType OGRFieldDefn::GetType();
 *
 * Fetch type of this field.
 *
 * This method is the same as the C function OGR_Fld_GetType().
 *
 * @return field type.
 */

/************************************************************************/
/*                          OGR_Fld_GetType()                           */
/************************************************************************/
/**
 * Fetch type of this field.
 *
 * This function is the same as the CPP method OGRFieldDefn::GetType().
 *
 * @param hDefn handle to the field definition to get type from.
 * @return field type.
 */

OGRFieldType OGR_Fld_GetType( OGRFieldDefnH hDefn )

{
    return ((OGRFieldDefn *) hDefn)->GetType();
}

/************************************************************************/
/*                              SetType()                               */
/************************************************************************/

/**
 * \fn void OGRFieldDefn::SetType( OGRFieldType eType );
 *
 * Set the type of this field.  This should never be done to an OGRFieldDefn
 * that is already part of an OGRFeatureDefn.
 *
 * This method is the same as the C function OGR_Fld_SetType().
 *
 * @param eType the new field type.
 */

/************************************************************************/
/*                          OGR_Fld_SetType()                           */
/************************************************************************/
/**
 * Set the type of this field.  This should never be done to an OGRFieldDefn
 * that is already part of an OGRFeatureDefn.
 *
 * This function is the same as the CPP method OGRFieldDefn::SetType().
 *
 * @param hDefn handle to the field definition to set type to.
 * @param eType the new field type.
 */

void OGR_Fld_SetType( OGRFieldDefnH hDefn, OGRFieldType eType )

{
    ((OGRFieldDefn *) hDefn)->SetType( eType );
}

/************************************************************************/
/*                             SetDefault()                             */
/************************************************************************/

/**
 * Set default field value.
 *
 * Currently use of OGRFieldDefn "defaults" is discouraged.  This feature
 * may be fleshed out in the future.
 *
 */

void OGRFieldDefn::SetDefault( const OGRField * puDefaultIn )

{
    switch( eType )
    {
      case OFTInteger:
      case OFTReal:
        uDefault = *puDefaultIn;
        break;

      case OFTString:
//        CPLFree( uDefault.String );
//        uDefault.String = CPLStrdup( puDefaultIn->String );
        break;

      default:
        // add handling for other complex types.
        CPLAssert( FALSE );
        break;
    }
}

/************************************************************************/
/*                          GetFieldTypeName()                          */
/************************************************************************/

/**
 * Fetch human readable name for a field type.
 *
 * This static method is the same as the C function OGR_GetFieldTypeName().
 *
 * @param eType the field type to get name for.
 *
 * @return pointer to an internal static name string. It should not be
 * modified or freed.
 */

const char * OGRFieldDefn::GetFieldTypeName( OGRFieldType eType )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本va在线观看| 在线观看视频91| 国产精品视频九色porn| 93久久精品日日躁夜夜躁欧美| 精品第一国产综合精品aⅴ| 久久超碰97人人做人人爱| 日韩一区二区在线观看视频播放| 国产99精品国产| 久久综合久色欧美综合狠狠| 在线一区二区三区做爰视频网站| 日本成人在线一区| 国产成人免费9x9x人网站视频| 亚洲日本va在线观看| 中文欧美字幕免费| 欧美精品一区二区三区在线播放| 欧美日韩一区二区在线观看| 91亚洲精品一区二区乱码| 毛片av一区二区三区| 亚洲福中文字幕伊人影院| 国产欧美一区二区精品性色超碰 | 91精品国产欧美一区二区成人| 国产成人亚洲综合色影视| 亚洲综合视频在线观看| 中文字幕在线观看一区| 中文字幕+乱码+中文字幕一区| 色94色欧美sute亚洲线路二 | 一二三四区精品视频| 国产精品每日更新| 欧美一区二区三区四区久久| 91欧美一区二区| 亚洲大片免费看| 亚洲视频中文字幕| 中文字幕精品一区二区精品绿巨人 | 91国偷自产一区二区使用方法| 麻豆精品在线看| 美腿丝袜亚洲色图| 日本成人在线电影网| 日本中文字幕一区| 蜜臀久久99精品久久久画质超高清| 久久精品一区蜜桃臀影院| 精品剧情在线观看| 日韩一区二区电影| 欧美日韩不卡一区| 日韩三级在线免费观看| 亚洲精品一区二区三区99| 国产色爱av资源综合区| 日韩欧美视频一区| 久久亚洲综合色| 欧美激情艳妇裸体舞| 亚洲欧洲日本在线| 午夜电影一区二区| 丝袜脚交一区二区| 激情综合网激情| 蜜桃视频在线一区| 欧美三级欧美一级| 亚洲免费av在线| 大白屁股一区二区视频| 久久久亚洲精品石原莉奈| 蜜桃av一区二区三区电影| 欧美在线不卡一区| 亚洲人成网站在线| 不卡视频免费播放| 久久亚洲私人国产精品va媚药| 日本视频一区二区三区| 欧美在线一二三| 亚洲精品写真福利| 91网站在线观看视频| 国产精品久久久久久久久免费相片| 精品一区二区三区影院在线午夜| 欧美日韩精品专区| 五月婷婷久久综合| 欧美久久婷婷综合色| 一区二区三区成人| 欧美系列在线观看| 亚洲国产精品综合小说图片区| 在线观看一区二区视频| 亚洲一区精品在线| 欧美男男青年gay1069videost| 亚洲小说春色综合另类电影| 欧美日韩亚州综合| 日韩有码一区二区三区| 日韩精品中文字幕一区二区三区 | 欧美群妇大交群中文字幕| **欧美大码日韩| 成人免费毛片嘿嘿连载视频| 亚洲国产精品成人综合色在线婷婷| 国产91精品一区二区| 中文字幕一区二区三区在线播放| av福利精品导航| 日韩毛片精品高清免费| 欧美亚州韩日在线看免费版国语版 | 国产欧美一区二区精品婷婷| 国产成人自拍高清视频在线免费播放| 久久精品免视看| 成人小视频在线| 亚洲三级在线播放| 制服.丝袜.亚洲.中文.综合| 加勒比av一区二区| √…a在线天堂一区| 欧美伦理影视网| 国产在线播放一区三区四| 国产精品狼人久久影院观看方式| 在线看国产一区| 久久69国产一区二区蜜臀| 国产精品毛片a∨一区二区三区| 色综合一个色综合| 日韩av一二三| 国产精品传媒视频| 91精品欧美久久久久久动漫 | 婷婷综合另类小说色区| 久久先锋资源网| 欧美图片一区二区三区| 国产美女视频91| 亚洲最大的成人av| 久久免费电影网| 欧美日韩国产一级片| 成人国产在线观看| 性感美女极品91精品| 日本一二三四高清不卡| 7777精品伊人久久久大香线蕉最新版| 蜜桃视频在线观看一区二区| 中文字幕制服丝袜成人av| 91精品国产免费久久综合| 奇米精品一区二区三区在线观看一| 欧美精品一区二区在线观看| 精品视频色一区| av色综合久久天堂av综合| 激情综合网av| 日本亚洲最大的色成网站www| 成人免费在线观看入口| 精品国产三级电影在线观看| 欧美日韩一区二区在线视频| aaa欧美日韩| 国产91精品精华液一区二区三区| 久久av中文字幕片| 日韩电影一二三区| 亚洲一区二区三区四区在线观看| 中文字幕精品三区| 久久午夜老司机| 日韩午夜电影在线观看| 欧美日韩精品一区二区三区| 欧美专区在线观看一区| 国产成人免费视频| 国产成人一级电影| 国产ts人妖一区二区| 国产尤物一区二区| 国产精品一区专区| 国产自产2019最新不卡| 国产一区日韩二区欧美三区| 日韩专区中文字幕一区二区| 国产精品灌醉下药二区| 国产日产欧美一区| 国产女人18毛片水真多成人如厕 | 欧美一卡二卡在线| 欧美精品久久一区二区三区| 欧美色图片你懂的| 欧美日韩综合在线| 在线成人午夜影院| 欧美一区日韩一区| 日韩精品一区二区三区在线播放 | 欧美日韩成人高清| 欧美日高清视频| 日韩午夜电影在线观看| 精品久久久久久综合日本欧美| 日韩欧美激情在线| 久久久www成人免费无遮挡大片 | 亚洲综合视频在线观看| 亚洲国产精品天堂| 日韩精品一二三| 黄色精品一二区| 波多野结衣在线一区| 91免费国产在线观看| 欧美日韩亚洲丝袜制服| 欧美大胆一级视频| 国产精品狼人久久影院观看方式| 亚洲欧美激情在线| 日av在线不卡| 国产激情一区二区三区四区| 91欧美一区二区| 欧美一区二区三区喷汁尤物| 国产香蕉久久精品综合网| 国产精品网站一区| 自拍偷自拍亚洲精品播放| 亚洲.国产.中文慕字在线| 青青草原综合久久大伊人精品 | 欧美中文字幕一区二区三区亚洲| 91麻豆精品国产91久久久久久 | 美女视频一区二区三区| 国产成a人无v码亚洲福利| 欧美在线色视频| 国产亚洲欧美色| 日韩国产精品久久久久久亚洲| 国产乱理伦片在线观看夜一区 | 精品女同一区二区| 亚洲视频在线一区观看| 国产自产高清不卡| 欧美精品久久99| 国产精品久久久久久久久图文区 | 国产午夜一区二区三区| 日韩电影一二三区|