成功せず
オリジナルマーカーを登録する
前回の調査でPlusのマルチマーカーの処理の流れはわかった。
最後はofにARMarkerInfoクラスとして渡せればいい。
ARToolkitではパターンファイルを読み込むときに
char*patt_nameというポインタアドレスにファイル名を入れ、double patt_widthでパターン幅を定義する。それからarLoadPatt(patt_name)メソッドで読み込むというのが流れ。
Plusでもこれができればよい。
TrackerSingleMarkerImpl.hヘッダーファイルに
int arLoadPatt(char *filename) { return AR_TEMPL_TRACKER::arLoadPatt(filename); }
というインターフェース(ラッパークラス?)がある。
実体はcore/arGetCode.cxxの中に
AR_TEMPL_FUNC int
AR_TEMPL_TRACKER::arLoadPatt(char *filename)
これっぽい。charで渡せば使えそう。戻り値がintということだが何が返ってくるのか、、、。
return( patno );
とのこと。処理内容をみると、パターンファイルを開いて、認識したらマーカーをパターンとして登録したらIDをふってintで返しつつ、同時にいくつあるかを数えてるっぽい。まずは使うタグを登録ってことで。
ここまでで何となくofxARToolkitPlus.cppを改造してみる
カメラパラメータはparamFile.cxxにある、
AR_TEMPL_FUNC int
AR_TEMPL_TRACKER::arParamLoadDouble( char *filename, int num, ARParamDouble *param, ...)
が使えそう。
でも今回はシングルマーカーを複数使う必要がありそうなので調査。
使えそうなのは2つのファイル
TrackerSingleMarker.h
TrackerSingleMarkerImpl.h
はじめにシングルマーカー用のトラッカークラスを作る必要があると思う。
ひとまずTrackerSingleMarkerImpl.cxxのメンバ関数をみてみる。
ARSM_TEMPL_TRACKER::TrackerSingleMarkerImpl(int nWidth, int nHeight)
の中で、画面の大きさなどを登録してトラッカークラスを作れそう。
最終更新:2012年11月16日 10:56