2 * PROJECT: NyARToolkit JOGL utilities.
\r
3 * --------------------------------------------------------------------------------
\r
4 * This work is based on the original ARToolKit developed by
\r
7 * HITLab, University of Washington, Seattle
\r
8 * http://www.hitl.washington.edu/artoolkit/
\r
10 * The NyARToolkit is Java version ARToolkit class library.
\r
11 * Copyright (C)2008 R.Iizuka
\r
13 * This program is free software; you can redistribute it and/or
\r
14 * modify it under the terms of the GNU General Public License
\r
15 * as published by the Free Software Foundation; either version 2
\r
16 * of the License, or (at your option) any later version.
\r
18 * This program is distributed in the hope that it will be useful,
\r
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
21 * GNU General Public License for more details.
\r
23 * You should have received a copy of the GNU General Public License
\r
24 * along with this framework; if not, write to the Free Software
\r
25 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
\r
27 * For further information please contact.
\r
28 * http://nyatla.jp/nyatoolkit/
\r
29 * <airmail(at)ebony.plala.or.jp>
\r
32 package jp.nyatla.nyartoolkit.toys.x2;
\r
34 import jp.nyatla.nyartoolkit.NyARException;
\r
35 import jp.nyatla.nyartoolkit.core.NyARCode;
\r
36 import jp.nyatla.nyartoolkit.core.param.NyARParam;
\r
37 import jp.nyatla.nyartoolkit.core.transmat.NyARTransMatResult;
\r
41 * NyARSingleDetectMarkerにOpenGL向け関数を追加したもの
\r
43 public class GLNyARSingleDetectMarker_X2 extends NyARSingleDetectMarker_X2
\r
45 private NyARTransMatResult trans_mat_result = new NyARTransMatResult();
\r
47 private double view_scale_factor = 0.025;// #define VIEW_SCALEFACTOR 0.025 // 1.0 ARToolKit unit becomes 0.025 of my OpenGL units.
\r
49 public GLNyARSingleDetectMarker_X2(NyARParam i_param, NyARCode i_code, double i_marker_width) throws NyARException
\r
51 super(i_param, i_code, i_marker_width);
\r
54 public void setScaleFactor(double i_new_value)
\r
56 view_scale_factor = i_new_value;
\r
59 // public static void arglCameraViewRH(const double para[3][4], GLdouble m_modelview[16], const double scale)
\r
60 public double[] getCameraViewRH() throws NyARException
\r
62 double[] result = new double[16];
\r
63 getCameraViewRH(result);
\r
70 * 結果値を格納する配列を指定してください。double[16]以上が必要です。
\r
71 * @throws NyARException
\r
73 public void getCameraViewRH(double[] o_result) throws NyARException
\r
76 this.getTransmationMatrix(this.trans_mat_result);
\r
78 final NyARTransMatResult mat = this.trans_mat_result;
\r
79 o_result[0 + 0 * 4] = mat.m00; // R1C1
\r
80 o_result[0 + 1 * 4] = mat.m01; // R1C2
\r
81 o_result[0 + 2 * 4] = mat.m02;
\r
82 o_result[0 + 3 * 4] = mat.m03;
\r
83 o_result[1 + 0 * 4] = -mat.m10; // R2
\r
84 o_result[1 + 1 * 4] = -mat.m11;
\r
85 o_result[1 + 2 * 4] = -mat.m12;
\r
86 o_result[1 + 3 * 4] = -mat.m13;
\r
87 o_result[2 + 0 * 4] = -mat.m20; // R3
\r
88 o_result[2 + 1 * 4] = -mat.m21;
\r
89 o_result[2 + 2 * 4] = -mat.m22;
\r
90 o_result[2 + 3 * 4] = -mat.m23;
\r
91 o_result[3 + 0 * 4] = 0.0;
\r
92 o_result[3 + 1 * 4] = 0.0;
\r
93 o_result[3 + 2 * 4] = 0.0;
\r
94 o_result[3 + 3 * 4] = 1.0;
\r
95 if (view_scale_factor != 0.0) {
\r
96 o_result[12] *= view_scale_factor;
\r
97 o_result[13] *= view_scale_factor;
\r
98 o_result[14] *= view_scale_factor;
\r