※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

成功せず

オリジナルマーカーを登録する

前回の調査で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)

の中で、画面の大きさなどを登録してトラッカークラスを作れそう。