}\r
\r
private final String CARCODE_FILE1 = "../../Data/patt.hiro";\r
+ private final String CARCODE_FILE2 = "../../Data/patt.kanji";\r
\r
\r
private Animator _animator;\r
\r
private Object _sync_object=new Object();\r
private MarkerProcessor _processor;\r
- private NyARCode[] _code_table=new NyARCode[1];\r
+ private NyARCode[] _code_table=new NyARCode[2];\r
\r
public SingleARMarker(NyARParam i_cparam) throws NyARException\r
{\r
\r
this._code_table[0]=new NyARCode(16,16);\r
this._code_table[0].loadARPattFromFile(CARCODE_FILE1);\r
+ this._code_table[1]=new NyARCode(16,16);\r
+ this._code_table[1].loadARPattFromFile(CARCODE_FILE2);\r
\r
//OpenGLフレームの準備(OpenGLリソースの初期化、カメラの撮影開始は、initコールバック関数内で実行)\r
Frame frame = new Frame("Java simpleLite with NyARToolkit");\r
}\r
}\r
private NyARIntPoint2d[] __tmp_vertex=NyARIntPoint2d.createArray(4);\r
+ private int _target_id;\r
/**\r
* Initialize call back handler.\r
*/\r
- public void init(INyARRgbRaster i_raster)\r
+ public void init(INyARRgbRaster i_raster,int i_target_id)\r
{\r
this._ref_raster=i_raster;\r
+ this._target_id=i_target_id;\r
this.code_index=-1;\r
this.confidence=Double.MIN_NORMAL;\r
}\r
}\r
\r
//認識処理\r
- if (this.code_index == -1) { // マーカ未認識\r
+ if (this._target_id == -1) { // マーカ未認識\r
//現在は未認識\r
if (c1 < this.cf_threshold_new) {\r
return;\r
}else{\r
//現在はマーカ認識中 \r
// 現在のマーカを認識したか?\r
- if (lcode_index != this.code_index) {\r
+ if (lcode_index != this._target_id) {\r
// 認識中のマーカではないので無視\r
return;\r
}\r
if (this.confidence>c1) {\r
return;\r
}\r
+ this.code_index=this._target_id;\r
}\r
//新しく認識、または継続認識中に更新があったときだけ、Square情報を更新する。\r
//ココから先はこの条件でしか実行されない。\r
this._tobin_filter.doFilter(i_raster, this._bin_raster);\r
\r
// スクエアコードを探す\r
- this._detectmarker_cb.init(i_raster);\r
+ this._detectmarker_cb.init(i_raster,this._current_arcode_index);\r
this._square_detect.detectMarkerCB(this._bin_raster,this._detectmarker_cb);\r
\r
// 認識状態を更新\r