2 * NyARSingleDetectMarkerにOpenGL向け関数を追加したもの
\r
3 * (c)2008 A虎@nyatla.jp
\r
4 * airmail(at)ebony.plala.or.jp
\r
7 package jp.nyatla.nyartoolkit.jogl.utils;
\r
9 import jp.nyatla.nyartoolkit.NyARException;
\r
10 import jp.nyatla.nyartoolkit.core.NyARCode;
\r
11 import jp.nyatla.nyartoolkit.core.NyARParam;
\r
12 import jp.nyatla.nyartoolkit.core.NyARTransMatResult;
\r
13 import jp.nyatla.nyartoolkit.detector.*;
\r
15 public class GLNyARDetectMarker extends NyARDetectMarker
\r
17 private NyARTransMatResult trans_mat_result=new NyARTransMatResult();
\r
18 private double view_scale_factor=0.025;//#define VIEW_SCALEFACTOR 0.025 // 1.0 ARToolKit unit becomes 0.025 of my OpenGL units.
\r
19 public GLNyARDetectMarker(NyARParam i_param,NyARCode[] i_code,double[] i_marker_width,int i_number_of_code) throws NyARException
\r
21 super(i_param,i_code,i_marker_width,i_number_of_code);
\r
23 public void setScaleFactor(double i_new_value)
\r
25 view_scale_factor=i_new_value;
\r
29 * マーカーのインデックス番号を指定します。
\r
30 * 直前に実行したdetectMarkerLiteの戻り値未満かつ0以上である必要があります。
\r
32 * 結果値を格納する配列を指定してください。double[16]以上が必要です。
\r
33 * @throws NyARException
\r
35 public void getCameraViewRH(int i_index,double[] o_result) throws NyARException
\r
38 this.getTransmationMatrix(i_index,this.trans_mat_result);
\r
40 double[][] para=this.trans_mat_result.getArray();
\r
41 o_result[0 + 0*4] = para[0][0]; // R1C1
\r
42 o_result[0 + 1*4] = para[0][1]; // R1C2
\r
43 o_result[0 + 2*4] = para[0][2];
\r
44 o_result[0 + 3*4] = para[0][3];
\r
45 o_result[1 + 0*4] = -para[1][0]; // R2
\r
46 o_result[1 + 1*4] = -para[1][1];
\r
47 o_result[1 + 2*4] = -para[1][2];
\r
48 o_result[1 + 3*4] = -para[1][3];
\r
49 o_result[2 + 0*4] = -para[2][0]; // R3
\r
50 o_result[2 + 1*4] = -para[2][1];
\r
51 o_result[2 + 2*4] = -para[2][2];
\r
52 o_result[2 + 3*4] = -para[2][3];
\r
53 o_result[3 + 0*4] = 0.0;
\r
54 o_result[3 + 1*4] = 0.0;
\r
55 o_result[3 + 2*4] = 0.0;
\r
56 o_result[3 + 3*4] = 1.0;
\r
57 if (view_scale_factor != 0.0) {
\r
58 o_result[12] *= view_scale_factor;
\r
59 o_result[13] *= view_scale_factor;
\r
60 o_result[14] *= view_scale_factor;
\r