Subversion Repositories AndroidProjects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
203 chris 1
package jp.nyatla.nyartoolkit.core;
2
 
3
import jp.nyatla.nyartoolkit.NyARException;
4
 
5
public class NyARSquareList extends NyARMarkerList
6
{
7
    private final NyARSquare[] square_array;
8
    private int square_array_num;
9
    public NyARSquareList(int i_number_of_holder)
10
    {
11
        super(new NyARSquare[i_number_of_holder]);
12
        //マーカーホルダに実体を割り当てる。
13
        for(int i=0;i<this.marker_holder.length;i++){
14
            this.marker_holder[i]=new NyARSquare();
15
        }
16
        this.square_array=new NyARSquare[i_number_of_holder];
17
        this.square_array_num=0;
18
    }
19
    /**
20
     * マーカーアレイをフィルタして、square_arrayを更新する。
21
     * [[この関数はマーカー検出処理と密接に関係する関数です。
22
     * NyARDetectSquareクラス以外から呼び出さないで下さい。]]
23
     */
24
    public final void updateSquareArray(NyARParam i_param) throws NyARException
25
    {
26
        NyARSquare square;
27
        int j=0;
28
        for (int i = 0; i <this.marker_array_num; i++){
29
//          double[][]  line    =new double[4][3];
30
//          double[][]  vertex  =new double[4][2];
31
            //NyARMarker marker=detect.getMarker(i);
32
            square=(NyARSquare)this.marker_array[i];
33
            //・・・線の検出??
34
            if (!square.getLine(i_param))
35
            {
36
                continue;
37
            }
38
            this.square_array[j]=square;
39
//ここで計算するのは良くないと思うんだ        
40
//              marker_infoL[j].id  = id.get();
41
//              marker_infoL[j].dir = dir.get();
42
//              marker_infoL[j].cf  = cf.get(); 
43
            j++;
44
        }
45
        this.square_array_num=j;
46
    }
47
    /**
48
     * スクエア配列に格納されている要素数を返します。
49
     * @return
50
     */
51
    public final int getSquareNum()
52
    {
53
        return  this.square_array_num;
54
    }
55
    /**
56
     * スクエア配列の要素を返します。
57
     * スクエア配列はマーカーアレイをさらにフィルタした結果です。
58
     * マーカーアレイの部分集合になっている点に注意してください。
59
     * @param i_index
60
     * @return
61
     * @throws NyARException
62
     */
63
    public final NyARSquare getSquare(int i_index) throws NyARException
64
    {
65
        if(i_index>=this.square_array_num){
66
            throw new NyARException();
67
        }
68
        return this.square_array[i_index];
69
    }
70
}