vsis.c

来自「支持各种栅格图像和矢量图像读取的库」· C语言 代码 · 共 103 行

C
103
字号
/* * vsis.c  *//********//* USES *//********//* libs ext. <>, our ""  *//* global header (opt.) and vsis's prototypes "" */#include "csf.h" #include "csfimpl.h" /* headers of this app. modules called */ /***************//* EXTERNALS   *//***************//**********************/ /* LOCAL DECLARATIONS *//**********************/ /*********************/ /* LOCAL DEFINITIONS *//*********************/ /******************//* IMPLEMENTATION *//******************//* test value scale on compatibility CSF version 1 and 2 * RvalueScaleIs tests if the map's value scale is compatible * with a certain value scale. Here is list of compatible but * different value scales:  *    * VS_NOTDETERMINED: always returns 0 * * VS_CLASSIFIED: VS_NOTDETERMINED * * VS_CONTINUOUS: VS_NOTDETERMINED * * VS_BOOLEAN: VS_CLASSIFIED, VS_NOTDETERMINED * * VS_NOMINAL: VS_CLASSIFIED, VS_NOTDETERMINED * * VS_ORDINAL: VS_CLASSIFIED, VS_NOTDETERMINED * * VS_LDD:  VS_CLASSIFIED, VS_NOTDETERMINED (only if cell representation is * UINT1 or INT2) * * VS_SCALAR:  VS_CONTINUOUS, VS_NOTDETERMINED * * VS_DIRECTION: none  * * returns * 0 if not compatible or if vs argument is VS_NOTDETERMINED or in case of * error, nonzero if  * compatible. * * Merrno * BAD_VALUESCALE * * EXAMPLE * .so examples/maskdump.tr */int RvalueScaleIs(	const MAP *m, /* a version 1 map handle */	CSF_VS     vs) /* a version 2 value scale that is compatible with map's value	               * scale yes or no?	               */{	CSF_VS mapsVS = RgetValueScale(m);		if (vs == VS_NOTDETERMINED)		return 0;	if (vs == mapsVS)		return 1;	switch(vs) {	  case VS_CLASSIFIED: return mapsVS == VS_NOTDETERMINED;	  case VS_CONTINUOUS: return mapsVS == VS_NOTDETERMINED;	  case VS_LDD: 	                { CSF_CR cr = RgetCellRepr(m);	                  if (cr !=  CR_UINT1 && cr != CR_INT2)	                   return 0;	                } /* fall through */	 case VS_BOOLEAN:	 case VS_NOMINAL:	 case VS_ORDINAL:  return mapsVS == VS_CLASSIFIED 			    || mapsVS == VS_NOTDETERMINED;	 case VS_SCALAR:   return mapsVS == VS_CONTINUOUS	                    || mapsVS == VS_NOTDETERMINED;	/* direction isn't compatible with anything */	 case VS_DIRECTION: return 0;	 default          : M_ERROR(BAD_VALUESCALE);	                    return 0;      }}

⌨️ 快捷键说明

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