1 package jp.nyatla.nyartoolkit.core;
\r
3 import jp.nyatla.nyartoolkit.NyARException;
\r
5 public class NyARSquareList extends NyARMarkerList
\r
7 private final NyARSquare[] square_array;
\r
8 private int square_array_num;
\r
9 public NyARSquareList(int i_number_of_holder)
\r
11 super(new NyARSquare[i_number_of_holder]);
\r
13 for(int i=0;i<this.marker_holder.length;i++){
\r
14 this.marker_holder[i]=new NyARSquare();
\r
16 this.square_array=new NyARSquare[i_number_of_holder];
\r
17 this.square_array_num=0;
\r
20 * マーカーアレイをフィルタして、square_arrayを更新する。
\r
21 * [[この関数はマーカー検出処理と密接に関係する関数です。
\r
22 * NyARDetectSquareクラス以外から呼び出さないで下さい。]]
\r
24 public final void updateSquareArray(NyARParam i_param) throws NyARException
\r
28 for (int i = 0; i <this.marker_array_num; i++){
\r
29 // double[][] line =new double[4][3];
\r
30 // double[][] vertex =new double[4][2];
\r
31 //NyARMarker marker=detect.getMarker(i);
\r
32 square=(NyARSquare)this.marker_array[i];
\r
34 if (!square.getLine(i_param))
\r
38 this.square_array[j]=square;
\r
39 //ここで計算するのは良くないと思うんだ
\r
40 // marker_infoL[j].id = id.get();
\r
41 // marker_infoL[j].dir = dir.get();
\r
42 // marker_infoL[j].cf = cf.get();
\r
45 this.square_array_num=j;
\r
48 * スクエア配列に格納されている要素数を返します。
\r
51 public final int getSquareNum()
\r
53 return this.square_array_num;
\r
57 * スクエア配列はマーカーアレイをさらにフィルタした結果です。
\r
58 * マーカーアレイの部分集合になっている点に注意してください。
\r
61 * @throws NyARException
\r
63 public final NyARSquare getSquare(int i_index) throws NyARException
\r
65 if(i_index>=this.square_array_num){
\r
66 throw new NyARException();
\r
68 return this.square_array[i_index];
\r