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

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

?? ogr_ruby.i

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? I
字號:
/* * $Id: ogr_ruby.i 9022 2006-01-17 04:42:16Z cfis $ * * ruby specific code for ogr bindings. *//* * $Log$ * Revision 1.4  2006/01/17 04:42:16  cfis * Added some renames that are not covered by -autorename since they start with the text OGR. * * Revision 1.3  2005/09/26 08:18:21  cfis * Moved renames to typemaps_ruby.i.  Now %include typemaps_ruby.i instead of %import (we want to inline the code). * * Revision 1.2  2005/09/18 07:34:58  cfis * Added support for exceptions, removed some outdated code. * * Revision 1.1  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. * *//* Include default Ruby typemaps */%include typemaps_ruby.i/* Include exception handling code */%include cpl_exceptions.i/* Setup a few renames */%rename(get_driver_count) OGRGetDriverCount;%rename(get_open_dscount) OGRGetOpenDSCount;%rename(set_generate_db2_v72_byte_order) OGRSetGenerate_DB2_V72_BYTE_ORDER;%rename(register_all) OGRRegisterAll;%init %{  if ( OGRGetDriverCount() == 0 ) {    OGRRegisterAll();  }  /* Setup exception handling */  UseExceptions();%}/* Replace GetLayerByIndex and GetLayerByName by GetLayer */%ignore OGRDataSourceShadow::GetLayerByIndex;%ignore OGRDataSourceShadow::GetLayerByName;%extend OGRDataSourceShadow {	OGRLayerShadow *GetLayer(VALUE whichLayer) {		// get field index		switch (TYPE(whichLayer)) {			case T_STRING: {				char* name = StringValuePtr(whichLayer);				return OGR_DS_GetLayerByName(self, name);				break;			}			case T_FIXNUM: {				int index = NUM2INT(whichLayer);				return OGR_DS_GetLayer(self, index);				break;			}			default:				SWIG_exception(SWIG_TypeError, "Value must be a string or integer.");		}	}	/* Override the way that ReleaseResultSet is handled - we	   want to apply a typemap that unlinks the layer from		its underlying C++ object since this method destroys		the C++ object *///	%typemap(freearg) OGRLayerShadow *layer {		/* %typemap(freearg) OGRLayerShadow *layer *///		DATA_PTR(argv[0]) = 0;//	}  // void ReleaseResultSet(OGRLayerShadow *layer) {    // OGR_DS_ReleaseResultSet(self, layer);//   }}/* Extend the layers class by adding support for ruby enumerable mixin. */%mixin OGRLayerShadow "Enumerable";/* Replace GetNextFeature by each */%ignore OGRDataSourceShadow::GetLayerByIndex;%extend OGRLayerShadow {	/*~OGRLayerShadow () {		FreeResultSet();	}	%typemap(in) OGRDatasourceShadow *ds {		SWIG_ConvertPtr($input, (void **) &$1, $1_descriptor, SWIG_POINTER_DISOWN);	   rb_iv_set($input, "__swigtype__", self);	}   void ReleaseResultSet(OGRDatasourceShadow *ds, OGRLayerShadow *layer) {     OGR_DS_ReleaseResultSet(self, layer);   }*/	%newobject OGRLayerShadow::each;	void each() {		OGRFeatureShadow* feature = NULL; 		while (feature = (OGRFeatureShadow*) OGR_L_GetNextFeature(self)) 		{			/* Convert the pointer to a Ruby object.  Note we set the flag		   to one manually to show this is a new object */			VALUE object = SWIG_NewPointerObj((void *) feature, $descriptor(OGRFeatureShadow *), SWIG_POINTER_OWN);						/* Now invoke the block specified for this method. */			rb_yield(object);		}  }}%extend OGRFeatureShadow {	VALUE GetField(VALUE object) {		VALUE result;		int index;		// get field index		switch (TYPE(object)) {			case T_STRING:				index = OGR_F_GetFieldIndex(self, StringValuePtr(object));				break;			case T_FIXNUM:				index = NUM2INT(object);				break;			default:				SWIG_exception(SWIG_TypeError, "Value must be a string or integer.");		}				int count = OGR_F_GetFieldCount(self);				if (index < 0 || index > count) {			SWIG_exception(SWIG_IndexError, "Illegal field requested.");		}		// is the field unset?	  if (!OGR_F_IsFieldSet(self, index)) {	  	result = Qnil;	  	return result;	  }	  	  // get field type    OGRFieldType field_type = (OGRFieldType) OGR_Fld_GetType(OGR_F_GetFieldDefnRef( self, index));		switch (field_type) {			case OFTInteger: {				const int value = OGR_F_GetFieldAsInteger(self, index);				result = INT2NUM(value);				break;			}			case OFTIntegerList: {				int len = 0;				const int* list = OGR_F_GetFieldAsIntegerList(self, index, &len);								result = rb_ary_new2(len);						    for ( int i = 0; i < len; ++i, ++list ) {					VALUE item = INT2NUM(*list);		      rb_ary_store(result, item, i);		    }		    break;			}			case OFTReal: {				const double value = OGR_F_GetFieldAsDouble(self, index);				return rb_float_new(value);				break;			}			case OFTRealList: {				int len = 0;				const double* list = OGR_F_GetFieldAsDoubleList(self, index, &len);								result = rb_ary_new2(len);						    for ( int i = 0; i < len; ++i, ++list ) {					VALUE item = rb_float_new(*list);		      rb_ary_store(result, item, i);		    }		    break;			}			case OFTString: {				const char* value = (const char *) OGR_F_GetFieldAsString(self, index);				return rb_str_new2(value);				break;			}			case OFTStringList:/*				int len3 = 0;				const char** string_list = OGR_F_GetFieldAsStringList(self, index, &len);								result = rb_ary_new2(len3);						    for ( int i = 0; i < len; ++i, ++string_list ) {					VALUE item = rb_str_new2(*string_list);		      rb_ary_store(result, item, i);		    }*/		    result = Qnil;		    break;			default:				SWIG_exception(SWIG_TypeError, "Unsupported field type.");		}			return result;			}        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久午夜精品理论片中文字幕| 日韩免费成人网| 日韩欧美在线网站| 中国av一区二区三区| 三级精品在线观看| 色999日韩国产欧美一区二区| 日韩免费一区二区| 一区二区三区中文字幕| av男人天堂一区| 久久免费美女视频| 久久av资源网| 日韩一区二区影院| 亚洲一线二线三线视频| av一二三不卡影片| 欧美韩国日本综合| 国产精一区二区三区| 欧美成人猛片aaaaaaa| 日本亚洲天堂网| 欧美猛男gaygay网站| 亚洲美女免费在线| 不卡一二三区首页| 国产精品每日更新| 成人动漫一区二区三区| 国产片一区二区| 国产一区亚洲一区| 久久久久国产精品厨房| 国产精品影音先锋| 久久久久久久久久看片| 国产精品99久久久久久久vr| 精品乱码亚洲一区二区不卡| 久久99九九99精品| 日韩欧美国产一区二区三区| 久久国产综合精品| 久久精品视频一区| 成人综合日日夜夜| 国产精品久久三| 色偷偷成人一区二区三区91| 亚洲综合在线五月| 欧美日韩aaaaaa| 精品一区二区久久久| 国产精品一区在线观看乱码| 日日夜夜一区二区| 91色porny在线视频| 国产精品乱码久久久久久| 成人免费观看av| 国产精品电影一区二区| 色国产精品一区在线观看| 五月婷婷另类国产| 欧美videofree性高清杂交| 国产一区二区免费在线| 国产精品成人免费| 色偷偷成人一区二区三区91| 日本亚洲电影天堂| 国产日本欧洲亚洲| 欧美亚洲动漫精品| 亚洲成人精品影院| 日韩欧美aaaaaa| 91麻豆swag| 日本女人一区二区三区| 久久色中文字幕| 色婷婷综合久色| 捆绑变态av一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w| 激情综合色综合久久| 国产精品激情偷乱一区二区∴| 欧美午夜片在线看| 国产精品一区2区| 一区二区三区精品| 久久久久久电影| 欧美性受极品xxxx喷水| 国产一区二区三区观看| 亚洲靠逼com| 久久一日本道色综合| 在线中文字幕不卡| 国产91精品精华液一区二区三区| 一区二区三区免费网站| 久久精品水蜜桃av综合天堂| 欧美日韩免费视频| 99久久99久久综合| 激情久久久久久久久久久久久久久久| 自拍av一区二区三区| 久久九九国产精品| 精品少妇一区二区三区日产乱码| 91福利小视频| 成人久久18免费网站麻豆| 美女在线视频一区| 亚洲电影第三页| 一区在线观看免费| 国产欧美一二三区| 欧美成人video| 91精品国产福利在线观看| 色综合色综合色综合| 国产成人av一区二区三区在线观看| 秋霞电影网一区二区| 亚洲成av人片在www色猫咪| 中文字幕一区二区三区在线播放 | 91浏览器打开| 国产精品影视在线| 精品夜夜嗨av一区二区三区| 天天综合色天天| 亚洲电影视频在线| 亚洲国产精品久久不卡毛片| 亚洲免费在线播放| 中文字幕一区二区三区不卡在线| 久久亚洲一级片| 久久亚洲影视婷婷| 久久日一线二线三线suv| 欧美mv和日韩mv国产网站| 欧美一区二区三级| 欧美高清激情brazzers| 欧美视频一区在线观看| 欧美日韩中文一区| 欧美午夜精品久久久| 欧美性xxxxxxxx| 欧美日韩一本到| 欧美日韩成人综合天天影院| 7777精品伊人久久久大香线蕉完整版| 欧美日韩精品久久久| 91精品在线免费| 欧美一区二区高清| 久久久精品黄色| 中文字幕亚洲精品在线观看| 中文字幕一区二区三区在线观看| 中文字幕一区二区三区蜜月| 中文字幕一区二区三区精华液| 成人欧美一区二区三区黑人麻豆| 国产精品美女久久久久高潮| 国产精品不卡视频| 亚洲精品视频观看| 天天综合日日夜夜精品| 久久国产精品色| 不卡一二三区首页| 欧美色图免费看| 日韩午夜激情av| 国产亚洲一区二区三区在线观看 | 2023国产精品| 国产欧美日韩在线看| ...xxx性欧美| 日韩激情在线观看| 国产福利精品一区二区| 在线免费av一区| 日韩精品中文字幕在线不卡尤物| 久久久久国产精品人| 一区二区三区成人| 麻豆精品在线播放| av亚洲精华国产精华精| 777xxx欧美| 亚洲欧洲三级电影| 免费在线观看精品| 色综合视频一区二区三区高清| 制服.丝袜.亚洲.中文.综合 | 久久综合九色综合97_久久久| 国产亚洲精品超碰| 午夜欧美大尺度福利影院在线看| 国产在线麻豆精品观看| 在线观看视频一区二区欧美日韩| 亚洲精品一区二区精华| 亚洲愉拍自拍另类高清精品| 国产美女主播视频一区| 欧美在线色视频| 国产精品久久久久久久久免费相片| 婷婷激情综合网| www.欧美色图| 亚洲精品一区二区三区影院| 亚洲自拍偷拍综合| 成人国产精品视频| 精品精品国产高清a毛片牛牛 | 91久久国产综合久久| 精品久久久久一区二区国产| 一区二区在线看| av在线一区二区三区| 欧美大片一区二区三区| 亚洲韩国一区二区三区| www.爱久久.com| 日本一区二区三区免费乱视频| 秋霞成人午夜伦在线观看| 在线观看亚洲a| 亚洲免费在线视频| aaa亚洲精品| 国产欧美一区二区三区鸳鸯浴| 免费观看在线综合色| 69堂精品视频| 午夜精品久久久久久久| 成人一区二区在线观看| 国产色产综合产在线视频| 九九**精品视频免费播放| 欧美电影一区二区三区| 亚洲午夜精品17c| 在线观看一区二区精品视频| 亚洲人吸女人奶水| 91麻豆国产在线观看| 国产精品美女久久久久久| 粗大黑人巨茎大战欧美成人| 日本一区二区免费在线 | 26uuu亚洲综合色欧美| 经典三级在线一区| 精品国产免费久久| 黄色精品一二区| 久久综合中文字幕| 国产成a人无v码亚洲福利|