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