OSDN Git Service

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit/trunk@810 7cac0...
authornyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Wed, 2 Feb 2011 03:42:30 +0000 (03:42 +0000)
committerAtsuo Igarashi <atsuoigarashi@ubuntu.(none)>
Tue, 5 Apr 2011 09:45:06 +0000 (18:45 +0900)
lib/src/jp/nyatla/nyartoolkit/core/types/matrix/NyARDoubleMatrix44.java
utils/jogl/src.rpf/jp/nyatla/nyartoolkit/rpf/reality/nyartk/gl/NyARRealityGl.java
utils/jogl/src/jp/nyatla/nyartoolkit/jogl/utils/NyARGLDrawUtil.java
utils/jogl/src/jp/nyatla/nyartoolkit/jogl/utils/NyARGLUtil.java

index aad07fe..5a5db35 100644 (file)
@@ -305,7 +305,7 @@ public class NyARDoubleMatrix44 implements INyARDoubleMatrix
         * この関数は、行列の回転成分から、ZXY系の角度値を計算します。\r
         * @param o_out\r
         * 角度値を受け取るオブジェクトです。\r
-        * 角度値の範囲は、0-PIです。\r
+        * 角度値の範囲は、0-PI(要確認)です。\r
         */\r
        public final void getZXYAngle(NyARDoublePoint3d o_out)\r
        {\r
index 8880653..9a1881f 100644 (file)
@@ -13,22 +13,39 @@ import jp.nyatla.nyartoolkit.jogl.utils.NyARGLDrawUtil;
 import jp.nyatla.nyartoolkit.jogl.utils.NyARGLUtil;\r
 \r
 /**\r
- * OpenGLに特化したNyARRealityクラスです。\r
- * @author nyatla\r
+ * このクラスは、OpenGLに特化した{@link NyARReality}クラスです。\r
+ * OpenGL形式の値をそのまま扱う関数を定義しています。\r
  */\r
 public class NyARRealityGl extends NyARReality\r
 {\r
        private double[] _gl_frustum_rh=new double[16];\r
        /**\r
-        * ARToolKitスタイルのModelView行列を、OpenGLスタイルのモデルビュー行列に変換します。\r
+        * この関数は、 ARToolKitスタイルのModelView行列を、OpenGLスタイルのモデルビュー行列に変換します。\r
         * @param i_ny_style_mat\r
+        * NyARToolkitスタイルの行列を指定します。\r
         * @param o_gl_style_mat\r
+        * OpenGL形式の行列を受け取る配列を指定します。16要素である必要があります。\r
         */\r
        public static void toGLViewMat(NyARDoubleMatrix44 i_ny_style_mat,double[] o_gl_style_mat)\r
        {\r
                NyARGLUtil.toCameraViewRH(i_ny_style_mat, 1, o_gl_style_mat);\r
        }\r
-       \r
+       /**\r
+        * コンストラクタです。\r
+        * カメラパラメータ、視錐体パラメータを元に、インスタンスを作成します。\r
+        * @param i_param\r
+        * カメラパラメータを指定します。\r
+        * @param i_near\r
+        * 視錐体のnear-pointをmm単位で指定します。\r
+        * 標準値は{@link #FRASTRAM_ARTK_NEAR}です。\r
+        * @param i_far\r
+        * 視錐体のfar-pointをmm単位で指定します。\r
+        * 標準値は{@link #FRASTRAM_ARTK_FAR}です。\r
+        * @param i_max_known_target\r
+        * KnownステータスのRTターゲットの最大数を指定します。\r
+        * @param i_max_unknown_target\r
+        * UnKnownステータスのRTターゲットの最大数を指定します。\r
+        */\r
        public NyARRealityGl(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target) throws NyARException\r
        {\r
                super(i_param,i_near,i_far,i_max_known_target,i_max_unknown_target);\r
@@ -36,20 +53,23 @@ public class NyARRealityGl extends NyARReality
                this._frustum.refMatrix().getValueT(this._gl_frustum_rh);\r
        }\r
        /**\r
-        * 透視投影行列と視錐体パラメータを元に、インスタンスを作成します。\r
-        * この関数は、樽型歪み矯正を外部で行うときに使います。\r
+        * この関数は、透視投影行列と視錐体パラメータを元に、インスタンスを作成します。\r
+        * 初期状態のインスタンスを生成します。\r
+        * この関数は、i_prjmatにnullを指定することで、樽型歪み矯正を行わないインスタンスを生成できます。\r
         * @param i_prjmat\r
-        * ARToolKitスタイルのカメラパラメータです。通常は{@link NyARParam#getPerspectiveProjectionMatrix()}から得られた値を使います。\r
-        * @param i_screen_size\r
-        * スクリーン(入力画像)のサイズです。通常は{@link NyARParam#getScreenSize()}から得られた値を使います。\r
+        * ARToolKit形式の射影変換パラメータを指定します。\r
+        * @param i_screen\r
+        * スクリーン(入力画像)のサイズを指定します。\r
         * @param i_near\r
-        * 視錐体のnear-pointをmm単位で指定します。\r
-        * default値は{@link #FRASTRAM_ARTK_NEAR}です。\r
+        * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照\r
         * @param i_far\r
-        * 視錐体のfar-pointをmm単位で指定します。\r
-        * default値は{@link #FRASTRAM_ARTK_FAR}です。\r
+        * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照\r
+        * @param i_dist_factor\r
+        * 樽型歪み矯正オブジェクトを指定します。歪み矯正が不要な時は、nullを指定します。\r
         * @param i_max_known_target\r
+        * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照\r
         * @param i_max_unknown_target\r
+        * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照\r
         * @throws NyARException\r
         */\r
        public NyARRealityGl(NyARPerspectiveProjectionMatrix i_prjmat,NyARIntSize i_screen_size,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target) throws NyARException\r
@@ -61,8 +81,12 @@ public class NyARRealityGl extends NyARReality
        \r
        private double[] _temp=new double[16];\r
        /**\r
-        * NyARToolKitの姿勢変換行列をOpenGLスタックへロードします。\r
-        * @throws NyARException \r
+        * この関数は、NyARToolKitの姿勢変換行列をOpenGL行列スタックへロードします。\r
+        * @param i_gl\r
+        * OpenGLのインスタンス\r
+        * @param i_mat\r
+        * NyARToolkit形式の姿勢変換行列\r
+        * @throws NyARException\r
         */\r
        public void glLoadModelViewMatrix(GL i_gl,NyARDoubleMatrix44 i_mat) throws NyARException\r
        {\r
@@ -72,7 +96,9 @@ public class NyARRealityGl extends NyARReality
        }\r
        \r
        /**\r
-        * projection行列をOpenGLの行列スタックへロードします。\r
+        * この関数は、NyARToolKitの射影変換行列をOpenGL行列スタックへロードします。\r
+        * @param i_gl\r
+        * OpenGLのインスタンス\r
         */\r
        public void glLoadCameraFrustum(GL i_gl)\r
        {\r
@@ -80,10 +106,12 @@ public class NyARRealityGl extends NyARReality
                return;\r
        }\r
        /**\r
-        * 現在のViewPortに、i_rtsourceの内容を描画します。\r
+        * この関数は、現在のViewPortに、i_rtsourceの元画像の内容を描画します。\r
+        * 背景画像の描画に使います。\r
         * @param i_gl\r
         * OpenGLインスタンスを指定します。\r
-        * @param i_raster\r
+        * @param i_rtsource\r
+        * 描画するRealitySource\r
         * @throws NyARException\r
         */\r
        public void glDrawRealitySource(GL i_gl,NyARRealitySource i_rtsource) throws NyARException\r
index fbf988f..9cf55d5 100644 (file)
@@ -15,17 +15,23 @@ import jp.nyatla.nyartoolkit.core.types.NyARIntSize;
 import com.sun.opengl.util.j2d.TextRenderer;\r
 \r
 /**\r
- * OpenGL向けの描画関数を提供します。\r
+ * このクラスには、アプリケーションの為のOpenGL用のヘルパー関数を定義します。\r
+ * NyARToolKitを使ったアプリケーションを実装するのに役立ちます。\r
+ * ほとんどの関数はstatic宣言です。このクラスのインスタンスを作る必要はありません。\r
+ * \r
+ *\r
  */\r
 public class NyARGLDrawUtil\r
 {\r
        private static TextRenderer _tr=new TextRenderer(new Font("SansSerif", Font.PLAIN, 10));\r
        /**\r
-        * 立方体を描画します。\r
+        * この関数は、指定サイズの立方体を現在のビューポートへ描画します。\r
+        * ARToolKitのサンプルで使われているカラーキューブを描画します。\r
         * @param i_gl\r
-        * OpenGLインスタンス\r
+        * OpenGLã\81®ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹\r
         * @param i_size_per_mm\r
-        * 立方体の辺の長さを[mm単位]\r
+        * 立方体の辺の長さ。[mm単位]\r
+        * ARシステムをmmオーダーで構築していない場合は、別単位になります。\r
         */\r
        public static void drawColorCube(GL i_gl,float i_size_per_mm)\r
        {\r
@@ -60,27 +66,36 @@ public class NyARGLDrawUtil
                i_gl.glCallList(polyList); // Draw the cube.\r
        }\r
        /**\r
-        * フォントカラーをセットします。\r
+        * この関数は、{@link NyARGLDrawUtil}の描画する文字列の、フォントカラーを設定します。\r
+        * フォントカラーはOpenGL固有のものではなく、{@link NyARGLDrawUtil}固有のものです。\r
         * @param i_c\r
+        * 設定する色。\r
         */\r
        public static void setFontColor(Color i_c)\r
        {\r
                NyARGLDrawUtil._tr.setColor(i_c);\r
        }\r
        /**\r
-        * フォントスタイルをセットします。\r
+        * この関数は、{@link NyARGLDrawUtil}の描画する文字列の、フォントスタイルを設定します。\r
+        * フォントスタイルはOpenGL固有のものではなく、{@link NyARGLDrawUtil}固有のものです。\r
         * @param i_font_name\r
+        * フォントの名前を指定します。デフォルト値は、"SansSerif"です。\r
         * @param i_font_style\r
+        * フォントスタイルを指定します。デフォルト値は、{@link Font#PLAIN}です。\r
         * @param i_size\r
+        * フォントサイズを指定します。デフォルト値は、10です。\r
         */\r
        public static void setFontStyle(String i_font_name,int i_font_style,int i_size)\r
        {\r
                NyARGLDrawUtil._tr=new TextRenderer(new Font(i_font_name,i_font_style, i_size));\r
        }\r
        /**\r
-        * 現在のフォントで、文字列を描画します。\r
+        * この関数は、文字列を描画します。\r
+        * この関数は、ちらつきが発生したり、あまり品質が良くありません。品質を求められる環境では、別途実装をして下さい。\r
         * @param i_str\r
+        * 描画する文字列。\r
         * @param i_scale\r
+        * 文字列のスケール値。\r
         */\r
        public static void drawText(String i_str,float i_scale)\r
        {\r
@@ -90,9 +105,17 @@ public class NyARGLDrawUtil
                return;\r
        }\r
        /**\r
-        * INyARRasterの内容を現在のビューポートへ描画します。\r
+        * この関数は、{@link INyARRaster}の内容を、現在のビューポートへ描画します。\r
+        * カメラ画像の背景を描画するのに使用できます。\r
         * @param i_gl\r
+        * OpenGLのインスタンス\r
         * @param i_raster\r
+        * 描画するラスタオブジェクト。何れかのバッファ形式である必要があります。\r
+        * <ol>\r
+        * <li>{@link NyARBufferType#BYTE1D_B8G8R8_24}\r
+        * <li>{@link NyARBufferType#BYTE1D_R8G8B8_24}\r
+        * <li>{@link NyARBufferType#BYTE1D_B8G8R8X8_32}\r
+        * </ol>\r
         * @param i_zoom\r
         * @throws NyARException\r
         */\r
@@ -177,13 +200,18 @@ public class NyARGLDrawUtil
                }\r
        }\r
        /**\r
-        * スクリーン座標系をOpenGLにロードします。この関数は、PROJECTIONとMODELVIEWスタックをそれぞれ1づつpushします。\r
-        * スクリーン座標系を使用し終わったら、endScreenCoordinateSystemを呼び出してください。\r
+        * この関数は、スクリーン座標系をOpenGLにロードします。\r
+        * スクリーンに二次元系の情報をそのまま書きこむときに使います。\r
+        * この関数は、PROJECTIONとMODELVIEWスタックをそれぞれ1づつpushします。\r
+        * スクリーン座標系を使用し終わったら、{@link endScreenCoordinateSystem}を必ず呼び出してください。\r
         * @param i_gl\r
+        * OpenGLのインスタンス\r
         * @param i_width\r
+        * スクリーンの幅\r
         * @param i_height\r
+        * スクリーンの高さ\r
         * @param i_revers_y_direction\r
-        * Y軸ã\81®å\8f\8d転ã\83\95ã\83©ã\82°ã\81§ã\81\99ã\80\82trueã\81ªã\82\89ã\81°top->bottomã\80\81falseã\81ªã\82\89ã\81°bottom->topæ\96¹å\90\91ã\81«ã\81ªã\82\8aã\81¾ã\81\99ã\80\82\r
+        * Y軸の反転フラグ。trueならばtop->bottom、falseならばbottom->top方向になります。\r
         */\r
        public static void beginScreenCoordinateSystem(GL i_gl,int i_width,int i_height,boolean i_revers_y_direction)\r
        {\r
@@ -201,8 +229,10 @@ public class NyARGLDrawUtil
                return;\r
        }\r
        /**\r
-        * ロードしたスクリーン座標系を元に戻します。{@link #beginScreenCoordinateSystem}の後に呼び出してください。\r
+        * この関数は、ロードしたスクリーン座標系を元に戻します。\r
+        * {@link #beginScreenCoordinateSystem}の後に呼び出してください。\r
         * @param i_gl\r
+        * OpenGLのインスタンス\r
         */\r
        public static void endScreenCoordinateSystem(GL i_gl)\r
        {\r
index 6a885ce..921e481 100644 (file)
@@ -35,30 +35,32 @@ import jp.nyatla.nyartoolkit.core.param.NyARPerspectiveProjectionMatrix;
 import jp.nyatla.nyartoolkit.core.types.*;\r
 import jp.nyatla.nyartoolkit.core.types.matrix.*;\r
 /**\r
- * OpenGL向けの形式変換変換関数を提供します。\r
+ * このクラスは、NyARToolkitのデータ型と、OpenGLデータ型を変換する関数を定義します。\r
  * 描画系関数は{@link NyARGLDrawUtil}を参照してください。\r
  */\r
 public class NyARGLUtil\r
 {\r
        /**\r
-        * NyARToolKit 2.53以前のコードと互換性を持たせるためのスケール値。{@link #toCameraFrustumRH}のi_scaleに設定することで、\r
-        * 以前のバージョンの数値系と互換性を保ちます。\r
+        * NyARToolKit 2.53以前のコードと互換性を持たせるためのスケール値。\r
+        * {@link #toCameraFrustumRH}のi_scaleに設定することで、以前のバージョンの数値系と互換性を保ちます。\r
         */\r
        public final static double SCALE_FACTOR_toCameraFrustumRH_NYAR2=1.0;\r
        /**\r
-        * NyARToolKit 2.53以前のコードと互換性を持たせるためのスケール値。{@link #toCameraViewRH}のi_scaleに設定することで、\r
-        * 以前のバージョンの数値系と互換性を保ちます。\r
+        * NyARToolKit 2.53以前のコードと互換性を持たせるためのスケール値。\r
+        * {@link #toCameraViewRH}のi_scaleに設定することで、以前のバージョンの数値系と互換性を保ちます。\r
         */\r
        public final static double SCALE_FACTOR_toCameraViewRH_NYAR2=1/0.025;\r
 \r
-    private NyARGLUtil()\r
+       private NyARGLUtil()\r
     {//生成の禁止\r
     }  \r
 \r
        \r
        /**\r
-        * ARToolKitスタイルのカメラパラメータから、 CameraFrustamを計算します。\r
+        * この関数は、ARToolKitスタイルのカメラパラメータから、 CameraFrustamを計算します。\r
+        * カメラパラメータの要素のうち、ProjectionMatrix成分のみを使います。\r
         * @param i_arparam\r
+        * ARToolKitスタイルのカメラパラメータ。\r
         * @param i_scale\r
         * スケール値を指定します。1=1mmです。10ならば1=1cm,1000ならば1=1mです。\r
         * 2.53以前のNyARToolkitと互換性を持たせるときは、{@link #SCALE_FACTOR_toCameraFrustumRH_NYAR2}を指定してください。\r
@@ -67,6 +69,7 @@ public class NyARGLUtil
         * @param i_far\r
         * 視錐体のfarPointを指定します。単位は、i_scaleに設定した値で決まります。\r
         * @param o_gl_projection\r
+        * OpenGLスタイルのProjectionMatrixです。double[16]を指定します。\r
         */\r
        public static void toCameraFrustumRH(NyARParam i_arparam,double i_scale,double i_near,double i_far,double[] o_gl_projection)\r
        {\r
@@ -74,7 +77,7 @@ public class NyARGLUtil
                return;\r
        }\r
        /**\r
-        * ARToolKitスタイルのProjectionMatrixから、 CameraFrustamを計算します。\r
+        * この関数は、ARToolKitスタイルのProjectionMatrixから、 CameraFrustamを計算します。\r
         * @param i_promat\r
         * @param i_size\r
         * スクリーンサイズを指定します。\r
@@ -95,13 +98,14 @@ public class NyARGLUtil
                return;\r
        }\r
        /**\r
-        * NyARTransMatResultをOpenGLの行列へ変換します。\r
+        * この関数は、NyARTransMatResultをOpenGLのModelView行列へ変換します。\r
         * @param mat\r
         * 変換元の行列\r
         * @param i_scale\r
         * 座標系のスケール値を指定します。1=1mmです。10ならば1=1cm,1000ならば1=1mです。\r
         * 2.53以前のNyARToolkitと互換性を持たせるときは、{@link #SCALE_FACTOR_toCameraViewRH_NYAR2}を指定してください。\r
         * @param o_gl_result\r
+        * OpenGLスタイルのProjectionMatrixです。double[16]を指定します。\r
         */\r
        public static void toCameraViewRH(NyARDoubleMatrix44 mat,double i_scale, double[] o_gl_result)\r
        {\r