OSDN Git Service

[TAG]1.3.1
[nyartoolkit-and/nyartoolkit-and.git] / tags / 1.3.0 / src / jp / nyatla / nyartoolkit / core / NyARSquareList.java
1 package jp.nyatla.nyartoolkit.core;\r
2 \r
3 import jp.nyatla.nyartoolkit.NyARException;\r
4 \r
5 public class NyARSquareList extends NyARMarkerList\r
6 {\r
7     private final NyARSquare[] square_array;\r
8     private int square_array_num;\r
9     public NyARSquareList(int i_number_of_holder)\r
10     {\r
11         super(new NyARSquare[i_number_of_holder]);\r
12         //マーカーホルダに実体を割り当てる。\r
13         for(int i=0;i<this.marker_holder.length;i++){\r
14             this.marker_holder[i]=new NyARSquare();\r
15         }\r
16         this.square_array=new NyARSquare[i_number_of_holder];\r
17         this.square_array_num=0;\r
18     }\r
19     /**\r
20      * マーカーアレイをフィルタして、square_arrayを更新する。\r
21      * [[この関数はマーカー検出処理と密接に関係する関数です。\r
22      * NyARDetectSquareクラス以外から呼び出さないで下さい。]]\r
23      */\r
24     public final void updateSquareArray(NyARParam i_param) throws NyARException\r
25     {\r
26         NyARSquare square;\r
27         int j=0;\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
33             //・・・線の検出??\r
34             if (!square.getLine(i_param))\r
35             {\r
36                 continue;\r
37             }\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
43             j++;\r
44         }\r
45         this.square_array_num=j;\r
46     }\r
47     /**\r
48      * スクエア配列に格納されている要素数を返します。\r
49      * @return\r
50      */\r
51     public final int getSquareNum()\r
52     {\r
53         return  this.square_array_num;\r
54     }\r
55     /**\r
56      * スクエア配列の要素を返します。\r
57      * スクエア配列はマーカーアレイをさらにフィルタした結果です。\r
58      * マーカーアレイの部分集合になっている点に注意してください。\r
59      * @param i_index\r
60      * @return\r
61      * @throws NyARException\r
62      */\r
63     public final NyARSquare getSquare(int i_index) throws NyARException\r
64     {\r
65         if(i_index>=this.square_array_num){\r
66             throw new NyARException();\r
67         }\r
68         return this.square_array[i_index];\r
69     }\r
70 }\r