目的
6つの倍精度値のバッファを使用して、MBB(最小外接ボックス)型の値を設定します。値は、MBBを定義するxmin、ymin、zmin、xmax、ymax、およびzmax座標を表わします。
構文規則
void FNC_MBBSetValue(GEO_HANDLE mbbHandle, double * mbbValue)
- GEO_HANDLE mbbHandle
- UDF/UDMの戻り値であると定義されているか、または外部ストアド プロシージャに対するINOUT/OUTパラメータであると定義されている、MBB型へのハンドル。
- double* mbbValue
- 6つの倍精度値を格納するバッファへのポインタ。
使用上の注意
FNC_MBBSetValueはMBB型の値を設定します。6つの倍精度値を含むバッファmbbValueがMBBハンドルとともにルーチンに入力として提供されます。
例: FNC呼び出しを使用してMBB型の値を設定する
次の関数は6つの倍精度値を入力として受け取り、MBBの値を返します。
CREATE FUNCTION mbbUDF1(P0 DOUBLE PRECISION, P1 DOUBLE PRECISION, P2 DOUBLE PRECISION,
P3 DOUBLE PRECISION, P4 DOUBLE PRECISION, P5 DOUBLE PRECISION)
RETURNS MBB
NO SQL
PARAMETER STYLE SQL
DETERMINISTIC
LANGUAGE C
EXTERNAL NAME 'CS!mbbUDF1!mbbUDF1.c';
void mbbUDF1 (DOUBLE_PRECISION* p0,
DOUBLE_PRECISION * p1,
DOUBLE_PRECISION * p2,
DOUBLE_PRECISION * p3,
DOUBLE_PRECISION * p4,
DOUBLE_PRECISION * p5,
GEO_HANDLE* resultMBB,
int* indicator_p0,
int* indicator_p1,
int* indicator_p2,
int* indicator_p3,
int* indicator_p4,
int* indicator_p5,
int* indicator_Result,
char sqlstate[6],
SQL_TEXT extname[129],
SQL_TEXT specific_name[129],
SQL_TEXT error_message[257] )
{
double* mbbBuffer;
int returnSize;
int mbbBufferSize;
mbbBufferSize = 6 * SIZEOF_DOUBLE_PRECISION;
mbbBuffer = (double*)FNC_Malloc(mbbBufferSize);
/* Set the double precision values in the buffer */
mbbBuffer[0] = *p0;
mbbBuffer[1] = *p1;
mbbBuffer[2] = *p2;
mbbBuffer[3] = *p3;
mbbBuffer[4] = *p4;
mbbBuffer[5] = *p5;
/* Set the MBB value */
FNC_MBBSetValue(*resultMBB, mbbBuffer);
*indicator_Result = 0;
FNC_free(mbbBuffer);
}