

#include <nitro/prc.h>
BOOL PRC_InitPrototypeDB(
PRCPrototypeDB* protoDB,
void* buffer,
const PRCPrototypeList* prototypeList );
BOOL PRC_InitPrototypeDBEx(
PRCPrototypeDB* protoDB,
void* buffer,
const PRCPrototypeList* prototypeList,
u32 kindMask,
BOOL ignoreDisabledEntries,
const PRCPrototypeDBParam* param );
| protoDB | 作成する見本DB構造体へのポインタ |
| buffer | protoDB の内部で使われるメモリ領域へのポインタ |
| prototypeList | 見本パターンの一覧へのポインタ |
| kindMask | 見本DBに取り込む見本DBエントリの図形種をビットフィールドで選択 |
| ignoreDisabledEntries | enabled フラグが偽の見本DBエントリは無視するか |
| param | 認識アルゴリズム依存のその他のパラメータ値 (NULL でデフォルト値を使用) |
見本DBの作成に成功したら真を返します。
PRCPrototypeList型の見本パターンの一覧を、認識で使うPRCPrototypeDB型の見本DBに展開します。具体的には、点列しかない見本パターンの一覧から、長さや角度、バウンディングボックスなどの認識で使用する値を事前に計算して見本DBとして格納します。見本DBの分量によってはかなりの高コストの処理となりますので注意してください。
protoDB の内部で用いられるメモリ領域を buffer で指定します。必要なメモリ量をあらかじめPRC_GetPrototypeDBBufferSize*()で取得し、それ以上のメモリ領域を確保しておいてください。protoDB が有効な間は buffer を開放してはいけません。
kindMask 値は、prototypeList 中の各見本DBエントリの kind 値と AND がとられ、結果が非0であれば見本DBに取り込まれます。kindMask に PRC_KIND_ALL を指定すると全種類を選択します。ignoreDisabledEntries が真の場合、enabled フラグが偽の見本DBエントリは kind 値が合致していても見本DBには組み込まれません。
PRC_InitPrototypeDB(protoDB, buffer, bufferSize, prototypeList) は PRC_InitPrototypeDBEx(protoDB, buffer, bufferSize, prototypeList,
PRC_KIND_ALL, FALSE, NULL) と同等です。
PRC_GetPrototypeDBBufferSize, PRC_GetPrototypeDBBufferSizeEx, PRC_GetRecognizedEntry*
2005/03/04 返り値を BOOL に変更
2004/06/23 初版