PRC_InitPrototypeDB*

構文

#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に取り込まれます。kindMaskPRC_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 初版