関数 | |
INT FVALGAPI | fnFIE_cg_ordering_data_sort (const PNT_T *pnts, INT pnt_num, PNT_T **ord_pnts, INT *ord_pnt_num, INT **org_to_ord, INT **ord_to_org) |
点データの辞書式順序ソートの実行 |
INT FVALGAPI fnFIE_cg_ordering_data_sort | ( | const PNT_T * | pnts, | |
INT | pnt_num, | |||
PNT_T ** | ord_pnts, | |||
INT * | ord_pnt_num, | |||
INT ** | org_to_ord, | |||
INT ** | ord_to_org | |||
) |
点データの辞書式順序ソートの実行
計算幾何学ライブラリの幾つかのものは
出力値( ord_pnts , org_to_ord , ord_to_org )は、関数内部でメモリ領域が確保されます。 確保された配列の要素数は、 pnt_num となります。 ただし、ord_pnts と ord_to_org は、 ord_pnt_num の要素のみが有効となります。 各出力値が必要なくなった場合は、 fnOAL_free() にて解放してください。
なお、 *ord_pnts , *org_to_ord , *ord_to_org はNULLで初期化されていない場合は F_ERR_INVALID_PARAM が返されます。
本関数では与えられた点列を、下図のような順序に並び替えます。 また、点列に重複点が合った場合には、重複した点は取り除かれます。
Fig1. 辞書式順序
入力された点データ(以後「入力データ」という)を辞書式順序にソートし、同時に重複する点を省きます。 ここでの辞書式順序とは、Fig1の (1) になります。 重複を取り除くように実行された辞書式順序ソートの結果を呼出し側に引き渡します。 辞書式順序ソートは重複を取り除くように実行されるので、入力された点データの数よりも ソート後のデータの数が少なくなっている場合があります。 出力として ord_pnt_num があるのはそのためです。
pnt_num は1以上の値を入力してください。
[in] | pnts | 入力元データ |
[in] | pnt_num | 入力元データの点の数( pnts の要素数 ) |
[out] | ord_pnts | ソートデータ配列
|
[out] | ord_pnt_num | ソートデータの点の数( ord_pnts の有効な要素数 ) |
[out] | org_to_ord | 元データ番号からソートデータ番号への変換表
|
[out] | ord_to_org | ソートデータ番号から元データ番号への変換表
|
F_ERR_NONE | 正常終了 | |
F_ERR_INVALID_PARAM | 不正なパラメータが渡された | |
F_ERR_NOMEMORY | メモリ不足 | |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |