/** * [readonly]マーカにマッチした{@link NyARMatchPattDeviationColorData}インスタンスを得る。 * @ */ public NyARMatchPattDeviationColorData getDeviationColorData(MarkerInfoARMarker i_marker, INyARPerspectiveCopy i_pix_drv, NyARIntPoint2d[] i_vertex) { int mk_edge = i_marker.patt_edge_percentage; for (int i = this.items.Count - 1; i >= 0; i--) { Item ptr = this.items[i]; if (!ptr._patt.getSize().isEqualSize(i_marker.patt_w, i_marker.patt_h) || ptr._patt_edge != mk_edge) { //サイズとエッジサイズが合致しない物はスルー continue; } //古かったら更新 i_pix_drv.copyPatt(i_vertex, ptr._patt_edge, ptr._patt_edge, ptr._patt_resolution, ptr._patt); ptr._patt_d.setRaster(ptr._patt); return(ptr._patt_d); } //無い。新しく生成 Item item = new Item(i_marker.patt_w, i_marker.patt_h, mk_edge); //タイムスタンプの更新とデータの生成 i_pix_drv.copyPatt(i_vertex, item._patt_edge, item._patt_edge, item._patt_resolution, item._patt); item._patt_d.setRaster(item._patt); this.items.Add(item); return(item._patt_d); }
/** * [readonly]マーカにマッチした{@link NyARMatchPattDeviationColorData}インスタンスを得る。 * @ */ public NyARMatchPattDeviationColorData getDeviationColorData(MarkerInfoARMarker i_marker, INyARPerspectiveCopy i_pix_drv, NyARIntPoint2d[] i_vertex) { int mk_edge = i_marker.patt_edge_percentage; for (int i = this.items.Count - 1; i >= 0; i--) { Item ptr = this.items[i]; if (!ptr._patt.getSize().isEqualSize(i_marker.patt_w, i_marker.patt_h) || ptr._patt_edge != mk_edge) { //サイズとエッジサイズが合致しない物はスルー continue; } //古かったら更新 i_pix_drv.copyPatt(i_vertex, ptr._patt_edge, ptr._patt_edge, ptr._patt_resolution, ptr._patt); ptr._patt_d.setRaster(ptr._patt); return ptr._patt_d; } //無い。新しく生成 Item item = new Item(i_marker.patt_w, i_marker.patt_h, mk_edge); //タイムスタンプの更新とデータの生成 i_pix_drv.copyPatt(i_vertex, item._patt_edge, item._patt_edge, item._patt_resolution, item._patt); item._patt_d.setRaster(item._patt); this.items.Add(item); return item._patt_d; }
/** * この関数は、ARToolKitスタイルのマーカーを登録します。 * @param i_code * 登録するマーカパターンオブジェクト * @param i_patt_edge_percentage * エッジ割合。ARToolkitと同じ場合は25を指定します。 * @param i_marker_size * マーカの平方サイズ[mm] * @return * マーカID(ハンドル)値。 * @throws NyARException */ public int addARMarker(NyARCode i_code,int i_patt_edge_percentage,double i_marker_size) { MarkerInfoARMarker target=new MarkerInfoARMarker(i_code,i_patt_edge_percentage,i_marker_size); this._armk_list.add(target); this._tracking_list.add(target); return (this._armk_list.Count-1)| IDTYPE_ARTK; }