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

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

?? typemaps_ruby.i

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? I
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************** * $Id: typemaps_ruby.i 9021 2006-01-17 04:41:26Z cfis $ * * Name:     typemaps_ruby.i * Project:  GDAL Ruby Interface * Purpose:  GDAL Core SWIG Interface declarations. * Author:   Charles F. I. Savage * * * $Log$ * Revision 1.9  2006/01/17 04:41:26  cfis * Removed dependency on renames.i - instead use new swig -autorename directive.  Also fix a memory issue with hex_to_binary. * * Revision 1.8  2006/01/16 08:06:23  cfis * Added typemaps to support CPLHexToBinary and CPLHexToBinary * * Revision 1.7  2006/01/14 21:45:26  cfis * Updated type maps that fix issue with returning an array of results. * * Revision 1.6  2006/01/14 19:55:47  cfis * Fixed an error in accessing items in a pointer to an array of doubles. * * Revision 1.5  2006/01/14 02:34:05  cfis * Updated typemaps that compile with SWIG 1.3.28 head. * * Revision 1.4  2005/10/11 14:11:43  kruland * Fix memory bug in typemap(out) char **options.  The returned array of strings * is owned by the dataset. * * Revision 1.3  2005/10/02 19:03:45  cfis * Changed $source (which is deprecated) to $1 in "out" and "ret" typemaps. * * Revision 1.2  2005/10/01 08:09:21  cfis * Added additional gdal typemaps.  Also removed CPLErr 'ret' typemaps since they are not necessary since the Ruby bindings always raises exceptions on errors. * * Revision 1.1  2005/09/26 08:20:19  cfis * Significantly updated typemaps for Ruby - resynced with the Python typemaps file. * * Revision 1.5  2005/09/02 16:19:23  kruland * Major reorganization to accomodate multiple language bindings. * Each language binding can define renames and supplemental code without * having to have a lot of conditionals in the main interface definition files. * * Revision 1.4  2005/08/25 21:00:55  cfis * Added note saying that SWIG 1.3.26 or higher is required because the bindings need the SWIGTYPE *DISOWN  typemap. * * Revision 1.3  2005/08/21 23:52:08  cfis * The Layer each method was not correctly setting the owernship flag for returned objects.  This has now been fixed and commented. * * Revision 1.2  2005/08/20 20:50:13  cfis * Added GetLayer method that maps to either GetLayerByName or GetLayerByIndex.  Also commented out Open and OpenShared as DataSouce class static methods. * * Revision 1.1  2005/08/09 17:40:09  kruland * Added support for ruby. * *//* !NOTE! - The Ruby bindings require SWIG-1.3.26 or above.  Earlier versions   do not work because they did not include support for the WWIGTYPE *DISOWN	typemap which is crucial for supporting the AddGeometryDirectly and 	SetGeometryDirectly methods.	These typemaps  were ported from typemaps_python.i.  For more information	please refer to that file and to the README.typemaps file */%include typemaps.i%include ogr_error_map.i%apply (double *OUTPUT) { double *argout };/* * double *val, int *hasval, is a special contrived typemap used for * the RasterBand GetNoDataValue, GetMinimum, GetMaximum, GetOffset, GetScale methods. * In the Ruby bindings, the variable hasval is tested.  If it is 0 (is, the value * is not set in the raster band) then Py_None is returned.  If is is != 0, then * the value is coerced into a long and returned. */%typemap(in,numinputs=0) (double *val, int *hasval) (double tmpval, int tmphasval) {  /* %typemap(in,numinputs=0) (double *val, int*hasval) */  $1 = &tmpval;  $2 = &tmphasval;}%typemap(argout) (double *val, int *hasval) {  /* %typemap(argout) (double *val, int *hasval) */	VALUE argOut;	  if ( !*$2 ) {    argOut = Qnil;  }  else {    argOut = rb_float_new(*$1);  }    $result = SWIG_AppendOutput($result, argOut);}/* Define a simple return code typemap which checks if the return code from * the wrapped method is non-zero. If non-zero, return None.  Otherwise, * return any argout or None. * * Applied like this: * %apply (IF_ERR_RETURN_NONE) {CPLErr}; * CPLErr function_to_wrap( ); * %clear (CPLErr); */%typemap(out) IF_ERR_RETURN_NONE{  /* %typemap(out) IF_ERR_RETURN_NONE */  /* result = Qnil; */}%typemap(out) IF_FALSE_RETURN_NONE{  /* %typemap(out) IF_FALSE_RETURN_NONE */  if ($1 == 0 ) {    $result = Qnil;  }}/* --------  OGR Error Handling --------------- */%typemap(out) OGRErr{  /* %typemap(out) OGRErr */  if ($1 != 0) {    rb_raise(rb_eRuntimeError, OGRErrMessages(result));  }}%typemap(ret) OGRErr{  /* %typemap(ret) OGRErr */  if (vresult == Qnil) {    vresult = INT2NUM(0);  }}/* -------------  Array  <-> Fixed Length Double Array  ----------------------*/%typemap(in) (double argin[ANY]) (double temp[$dim0]){  /* %typemap(in) (double argin[ANY]) (double temp[$dim0]) */  /* Make sure this is an array. */  Check_Type($input, T_ARRAY);  /* Get the length */  int seq_size = RARRAY($input)->len;    if ( seq_size != $dim0 ) {    rb_raise(rb_eRangeError, "sequence must have length %i.", seq_size);  }  for( int i = 0; i<$dim0; i++ ) {    /* Get the Ruby Object */    VALUE item = rb_ary_entry($input,i);        /* Convert to double and store in array*/    temp[i] = NUM2DBL(item);  }    /* Set argument $1 equal to the temp array */	$1 = temp;}%typemap(in,numinputs=0) (double argout[ANY]) (double argout[$dim0]){  /* %typemap(in,numinputs=0) (double argout[ANY]) */  $1 = argout;}%typemap(argout) (double argout[ANY]){  /* %typemap(argout) (double argout[ANY]) */  VALUE outArr = rb_ary_new();  for(int i=0; i<$dim0; i++)  {    VALUE value = rb_float_new(($1)[i]);    rb_ary_push(outArr, value);  }    /* Add the output to the result */  $result = SWIG_AppendOutput($result, outArr);	}%typemap(in,numinputs=0) (double *argout[ANY]) (double *argout){  /* %typemap(in,numinputs=0) (double *argout[ANY]) */  $1 = &argout;}%typemap(argout) (double *argout[ANY]){  /* %typemap(argout) (double argout[ANY]) */  VALUE outArr = rb_ary_new();  for(int i=0; i<$dim0; i++)  {    /* $1 is a pointer to an array, so first dereference the array,       then specify the index. */    VALUE value = rb_float_new((*$1)[i]);    rb_ary_push(outArr, value);  }    /* Add the output to the result */  $result = SWIG_AppendOutput($result, outArr);	}%typemap(freearg) (double *argout[ANY]){  /* %typemap(freearg) (double *argout[ANY]) */  CPLFree(*$1);}/* -------------  Ruby Array  <-> integer Array  ----------------------*/%typemap(in,numinputs=1) (int nList, int* pList){  /* %typemap(in,numinputs=1) (int nList, int* pList) */  /* Make sure this is an array. */  Check_Type($input, T_ARRAY);  /* Get the length */  $1 = RARRAY($input)->len;    /* Allocate space for the C array. */  $2 = (int*) malloc($1*sizeof(int));    for( int i = 0; i<$1; i++ ) {    /* Get the Ruby Object */    VALUE item = rb_ary_entry($input,i);    /* Conver to an integer */    $2[i] = NUM2INT(item);  }}%typemap(freearg) (int nList, int* pList){  /* %typemap(freearg) (int nList, int* pList) */  if ($2) {    free((void*) $2);  }}/* -------------  Ruby String  <-> char ** with lengths ----------------------*/%typemap(in,numinputs=0) (int *nLen, char **pBuf ) ( int nLen = 0, char *pBuf = 0 ){  /* %typemap(in,numinputs=0) (int *nLen, char **pBuf ) ( int nLen = 0, char *pBuf = 0 ) */  $1 = &nLen;  $2 = &pBuf;}%typemap(argout) (int *nLen, char **pBuf ){  /* %typemap(argout) (int *nLen, char **pBuf ) */  $result = rb_str_new(*$2, *$1);}%typemap(freearg) (int *nLen, char **pBuf ){  /* %typemap(freearg) (int *nLen, char **pBuf ) */  if( *$2 ) {    free( *$2 );  }}/* -------------  Ruby String  <-> char *  ----------------------*/%typemap(in) (int nLen, char *pBuf ) = (int LENGTH, char *STRING);%typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER)        (int nLen, char *pBuf){  /* %typecheck(ruby,typecheck,precedence=SWIG_TYPECHECK_POINTER) (int nLen, char *pBuf) */  $1 = (TYPE($input) == T_STRING) ? 1: 0;}/*  ---------    GDAL_GCP used in Dataset::GetGCPs( ) ----------- */%typemap(in,numinputs=0) (int *nGCPs, GDAL_GCP const **pGCPs ) (int nGCPs=0, GDAL_GCP *pGCPs=0 ){  /* %typemap( in,numinputs=0) (int *nGCPs, GDAL_GCP const **pGCPs ) */  $1 = &nGCPs;  $2 = &pGCPs;}%typemap(argout) (int *nGCPs, GDAL_GCP const **pGCPs ){  /* %typemap( argout) (int *nGCPs, GDAL_GCP const **pGCPs ) *//*  $result = rb_ary_new2(*$1);  for( int i = 0; i < *$1; i++ ) {    GDAL_GCP *o = new_GDAL_GCP( (*$2)[i].dfGCPX,                                (*$2)[i].dfGCPY,                                (*$2)[i].dfGCPZ,                                (*$2)[i].dfGCPPixel,                                (*$2)[i].dfGCPLine,                                (*$2)[i].pszInfo,                                (*$2)[i].pszId );		 rb_ary_store($result, i, 					  SWIG_NewPointerObj((void*)o, SWIGTYPE_p_GDAL_GCP,1));  }*/}%typemap(in,numinputs=1) (int nGCPs, GDAL_GCP const *pGCPs ) ( GDAL_GCP *tmpGCPList ){  /* %typemap( in,numinputs=1) (int nGCPs, GDAL_GCP const *pGCPs ) */  /* Check if is a list */  Check_Type($input, T_ARRAY);  $1 = RARRAY($input)->len;  tmpGCPList = (GDAL_GCP*) malloc($1*sizeof(GDAL_GCP));  $2 = tmpGCPList;  for( int i = 0; i<$1; i++ ) {    VALUE rubyItem = rb_ary_entry($input,i);    GDAL_GCP *item = 0;    SWIG_ConvertPtr( rubyItem, (void**)&item, SWIGTYPE_p_GDAL_GCP, SWIG_POINTER_EXCEPTION | 0 );	 if (!item) {		 rb_raise(rb_eRuntimeError, "GDAL_GCP item cannot be nil");	 }    memcpy( (void*) item, (void*) tmpGCPList, sizeof( GDAL_GCP ) );    ++tmpGCPList;  }}%typemap(freearg) (int nGCPs, GDAL_GCP const *pGCPs ){  /* %typemap( freearg) (int nGCPs, GDAL_GCP const *pGCPs ) */  if ($2) {    free( (void*) $2 );  }}/* ----------- Typemap for GDALColorEntry* <-> tuple -------------- *//*%typemap(out) GDALColorEntry*{*/  /* %typemap( out) GDALColorEntry* */ /* $result = Py_BuildValue( "(hhhh)", (*$1).c1,(*$1).c2,(*$1).c3,(*$1).c4);}%typemap(in) GDALColorEntry* (GDALColorEntry ce){*/  /* %typemap(in) GDALColorEntry* *//*   ce.c4 = 255;   int size = PySequence_Size($input);   if ( size > 4 ) {     PyErr_SetString(PyExc_TypeError, "ColorEntry sequence too long");     SWIG_fail;   }   if ( size < 3 ) {     PyErr_SetString(PyExc_TypeError, "ColorEntry sequence too short");     SWIG_fail;   }   PyArg_ParseTuple( $input,"hhh|h", &ce.c1, &ce.c2, &ce.c3, &ce.c4 );   $1 = &ce;}*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲少妇最新在线视频| 国产精品一二一区| 91精彩视频在线观看| 亚洲毛片av在线| 色八戒一区二区三区| 亚洲一区二区三区视频在线播放 | 亚洲视频免费观看| 99久久国产综合精品女不卡| 亚洲日本一区二区| 欧美酷刑日本凌虐凌虐| 日本伊人精品一区二区三区观看方式 | 成人av资源网站| 亚洲人成网站在线| 欧美狂野另类xxxxoooo| 精品一区二区精品| 最近中文字幕一区二区三区| 欧美亚洲一区三区| 日韩在线一区二区三区| 欧美精品一区二区蜜臀亚洲| 成人毛片在线观看| 亚洲成人自拍一区| 欧美不卡一区二区| 91丨porny丨在线| 日本美女视频一区二区| 国产色产综合产在线视频| 91麻豆精品秘密| 亚洲va欧美va天堂v国产综合| 日韩视频中午一区| 99久久精品一区二区| 三级成人在线视频| 中文字幕在线播放不卡一区| 5858s免费视频成人| 粉嫩一区二区三区性色av| 亚洲不卡av一区二区三区| 日本一区二区高清| 日韩片之四级片| 色哟哟国产精品| 韩国精品久久久| 亚洲 欧美综合在线网络| 国产欧美一区二区精品仙草咪| 欧美伊人久久久久久午夜久久久久| 精品系列免费在线观看| 一区二区三区四区亚洲| 国产欧美日韩久久| 日韩天堂在线观看| 欧美日韩一区二区在线视频| 不卡的av电影| 久久9热精品视频| 一区二区三区中文字幕电影| 欧美大胆一级视频| 91视频免费播放| 蜜臀av亚洲一区中文字幕| 欧美大片在线观看| 99久久精品国产麻豆演员表| 日韩黄色片在线观看| 国产精品国产自产拍高清av王其 | 国产91对白在线观看九色| 香蕉加勒比综合久久| 中文字幕av在线一区二区三区| 67194成人在线观看| 91影院在线免费观看| 国精产品一区一区三区mba桃花| 亚洲精品久久久久久国产精华液| 日韩一区二区三免费高清| 色88888久久久久久影院野外 | 亚洲自拍偷拍av| 中文字幕欧美日本乱码一线二线| 欧美美女喷水视频| 99精品视频一区二区三区| 午夜影视日本亚洲欧洲精品| 亚洲欧洲性图库| 国产亚洲精久久久久久| 91精品久久久久久久久99蜜臂| 一本色道久久综合精品竹菊| 国产乱人伦偷精品视频不卡| 日本一道高清亚洲日美韩| 亚洲午夜视频在线观看| 亚洲女同ⅹxx女同tv| 欧美日韩精品一区二区三区四区 | 精品国产网站在线观看| 色综合中文字幕| av福利精品导航| 老司机精品视频一区二区三区| 蜜桃在线一区二区三区| 午夜精品福利在线| 亚洲高清一区二区三区| 亚洲一区二区中文在线| 中文字幕佐山爱一区二区免费| 中文字幕乱码久久午夜不卡| 久久久精品综合| 国产午夜精品一区二区三区视频 | 91亚洲精华国产精华精华液| 99精品久久免费看蜜臀剧情介绍| 极品尤物av久久免费看| 另类综合日韩欧美亚洲| 青青青伊人色综合久久| 免费亚洲电影在线| 青青草国产成人av片免费| 偷拍日韩校园综合在线| 日韩电影在线看| 日本视频在线一区| 麻豆91在线播放免费| 精品一区二区免费视频| 久久国内精品自在自线400部| 国产一区欧美一区| 成人高清在线视频| 99re热视频精品| 91高清视频免费看| 在线播放一区二区三区| 69久久99精品久久久久婷婷 | 日本欧美一区二区在线观看| 天天色图综合网| 日韩成人伦理电影在线观看| 久久99国内精品| 国产99久久久国产精品| aaa欧美色吧激情视频| 日本精品一级二级| 678五月天丁香亚洲综合网| 欧美v日韩v国产v| 日本一区二区三区四区| 亚洲精品国产无天堂网2021| 欧美国产激情一区二区三区蜜月| 亚洲成人一二三| 狠狠色综合播放一区二区| 成人激情免费网站| 欧美揉bbbbb揉bbbbb| 精品久久久久久久一区二区蜜臀| 国产色一区二区| 亚洲一区二区欧美日韩 | 丝袜a∨在线一区二区三区不卡| 丝袜美腿高跟呻吟高潮一区| 国产成人精品亚洲777人妖| 99久久国产综合精品女不卡| 制服丝袜av成人在线看| 国产日韩影视精品| 亚洲一区二区精品3399| 国产乱码字幕精品高清av| 91国偷自产一区二区三区观看 | 制服丝袜中文字幕一区| 欧美国产精品v| 免费美女久久99| 成人av高清在线| 91精品国模一区二区三区| 久久久久久久综合日本| 一区二区在线观看av| 久久99国产精品麻豆| 在线免费观看视频一区| 久久久久久久久久美女| 午夜电影一区二区| 色综合久久久久网| 国产色综合久久| 美腿丝袜亚洲一区| 成人av动漫网站| 欧美一区二区三区电影| 亚洲日本免费电影| 国产99久久久精品| 日韩丝袜美女视频| 亚洲成人av一区二区三区| www.久久久久久久久| 日韩欧美高清dvd碟片| 亚洲一区视频在线观看视频| 国产精一区二区三区| 久久精品一区二区三区四区| 天堂va蜜桃一区二区三区漫画版| 色综合中文字幕国产| 精品88久久久久88久久久| 午夜久久久久久久久久一区二区| 97久久超碰国产精品电影| 2024国产精品| 精品在线视频一区| 色香蕉成人二区免费| 中文字幕高清一区| 国产精品一区二区久久不卡| 日韩欧美在线影院| 青青青爽久久午夜综合久久午夜| 欧美在线免费视屏| 亚洲日本一区二区| 99re这里都是精品| 伊人开心综合网| 欧美色图激情小说| 亚洲国产人成综合网站| 欧美精品视频www在线观看| 亚洲精品福利视频网站| 日本精品裸体写真集在线观看| 国产精品福利在线播放| 色婷婷综合久久| 一区二区三区加勒比av| 欧美午夜精品久久久久久超碰| 一区二区三区丝袜| 欧美影视一区在线| 麻豆久久久久久久| 日韩视频免费观看高清完整版| 视频在线观看国产精品| 欧美裸体bbwbbwbbw| 日本不卡123| 久久婷婷国产综合国色天香| 麻豆国产欧美日韩综合精品二区 | 国产精品天干天干在线综合| 风间由美一区二区三区在线观看| 中文字幕免费观看一区|