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 | } |