• R/O
  • HTTP
  • SSH
  • HTTPS

提交

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

NyARToolKit for Android の仮作業所。サンプルなどの作成作業部屋。


Commit MetaInfo

修订版1b8c2ea598f653c71d185c52f7d798ff500c5661 (tree)
时间2012-03-10 22:11:27
作者rokubou <rokubou@user...>
Commiterrokubou

Log Message

Add toCameraViewRHf

更改概述

差异

--- a/NyARToolKit for Android - Base/src/jp/nyatla/nyartoolkit/jogl/utils/NyARGLUtil.java
+++ b/NyARToolKit for Android - Base/src/jp/nyatla/nyartoolkit/jogl/utils/NyARGLUtil.java
@@ -97,6 +97,7 @@ public class NyARGLUtil
9797 m.getValueT(o_gl_projection);
9898 return;
9999 }
100+
100101 /**
101102 * この関数は、NyARTransMatResultをOpenGLのModelView行列へ変換します。
102103 * @param mat
@@ -130,6 +131,36 @@ public class NyARGLUtil
130131 return;
131132 }
132133
133-
134-
134+ /**
135+ * この関数は、NyARTransMatResultをOpenGLのModelView行列へ変換します。
136+ * @param mat
137+ * 変換元の行列
138+ * @param i_scale
139+ * 座標系のスケール値を指定します。1=1mmです。10ならば1=1cm,1000ならば1=1mです。
140+ * 2.53以前のNyARToolkitと互換性を持たせるときは、{@link #SCALE_FACTOR_toCameraViewRH_NYAR2}を指定してください。
141+ * @param o_gl_result
142+ * OpenGLスタイルのProjectionMatrixです。double[16]を指定します。
143+ */
144+ public static void toCameraViewRHf(NyARDoubleMatrix44 mat, double i_scale, float[] o_gl_result)
145+ {
146+ o_gl_result[0 + 0 * 4] = (float)mat.m00;
147+ o_gl_result[1 + 0 * 4] = (float)-mat.m10;
148+ o_gl_result[2 + 0 * 4] = (float)-mat.m20;
149+ o_gl_result[3 + 0 * 4] = (float)0.0;
150+ o_gl_result[0 + 1 * 4] = (float)mat.m01;
151+ o_gl_result[1 + 1 * 4] = (float)-mat.m11;
152+ o_gl_result[2 + 1 * 4] = (float)-mat.m21;
153+ o_gl_result[3 + 1 * 4] = (float)0.0;
154+ o_gl_result[0 + 2 * 4] = (float)mat.m02;
155+ o_gl_result[1 + 2 * 4] = (float)-mat.m12;
156+ o_gl_result[2 + 2 * 4] = (float)-mat.m22;
157+ o_gl_result[3 + 2 * 4] = (float)0.0;
158+
159+ float scale= 1.0f/(float)i_scale;
160+ o_gl_result[0 + 3 * 4] = (float)mat.m03*scale;
161+ o_gl_result[1 + 3 * 4] = (float)-mat.m13*scale;
162+ o_gl_result[2 + 3 * 4] = (float)-mat.m23*scale;
163+ o_gl_result[3 + 3 * 4] = (float)1.0;
164+ return;
165+ }
135166 }