OSDN Git Service

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit/trunk@803 7cac0...
[nyartoolkit-and/nyartoolkit-and.git] / lib / src / jp / nyatla / nyartoolkit / core / types / matrix / NyARDoubleMatrix33.java
index 04dfd2a..e35fbaa 100644 (file)
  */\r
 package jp.nyatla.nyartoolkit.core.types.matrix;\r
 \r
-import jp.nyatla.nyartoolkit.*;\r
 import jp.nyatla.nyartoolkit.core.types.NyARDoublePoint3d;\r
-\r
+/**\r
+ * このクラスは、3x3行列を格納します。\r
+ */\r
 public class NyARDoubleMatrix33 implements INyARDoubleMatrix\r
 {\r
+       /** 行列の要素値です。*/\r
        public double m00;\r
+       /** 行列の要素値です。*/\r
        public double m01;\r
+       /** 行列の要素値です。*/\r
        public double m02;\r
+       /** 行列の要素値です。*/\r
        public double m10;\r
+       /** 行列の要素値です。*/\r
        public double m11;\r
+       /** 行列の要素値です。*/\r
        public double m12;\r
+       /** 行列の要素値です。*/\r
        public double m20;\r
+       /** 行列の要素値です。*/\r
        public double m21;\r
+       /** 行列の要素値です。*/\r
        public double m22;\r
+       /**\r
+        * この関数は、オブジェクトの配列を生成して返します。\r
+        * @param i_number\r
+        * 配列の長さ\r
+        * @return\r
+        * 新しいオブジェクト配列\r
+        */\r
        public static NyARDoubleMatrix33[] createArray(int i_number)\r
        {\r
                NyARDoubleMatrix33[] ret=new NyARDoubleMatrix33[i_number];\r
@@ -48,8 +65,8 @@ public class NyARDoubleMatrix33 implements INyARDoubleMatrix
                return ret;\r
        }\r
        /**\r
-        * 遅いからあんまり使わないでね\r
-        */\r
+        * この関数は、要素数9の配列を、行列にセットします\r
+        */     \r
        public void setValue(double[] i_value)\r
        {\r
                this.m00=i_value[0];\r
@@ -63,6 +80,11 @@ public class NyARDoubleMatrix33 implements INyARDoubleMatrix
                this.m22=i_value[8];\r
                return;\r
        }\r
+       /**\r
+        * この関数は、オブジェクトの内容をインスタンスにコピーします。\r
+        * @param i_value\r
+        * コピー元のオブジェクト\r
+        */\r
        public void setValue(NyARDoubleMatrix33 i_value)\r
        {\r
                this.m00=i_value.m00;\r
@@ -77,7 +99,7 @@ public class NyARDoubleMatrix33 implements INyARDoubleMatrix
                return;\r
        }       \r
        /**\r
-        * 遅いからあんまり使わないでね\r
+        * この関数は、要素数9の配列に、行列の内容をコピーします\r
         */\r
        public void getValue(double[] o_value)\r
        {\r
@@ -92,6 +114,13 @@ public class NyARDoubleMatrix33 implements INyARDoubleMatrix
                o_value[8]=this.m22;\r
                return;\r
        }\r
+       /**\r
+        * この関数は、逆行列を計算して、インスタンスにセットします。\r
+        * @param i_src\r
+        * 逆行列を計算するオブジェクト。thisを指定できます。\r
+        * @return\r
+        * 逆行列を得られると、trueを返します。\r
+        */     \r
        public boolean inverse(NyARDoubleMatrix33 i_src)\r
        {\r
                final double a11,a12,a13,a21,a22,a23,a31,a32,a33;\r
@@ -133,8 +162,10 @@ public class NyARDoubleMatrix33 implements INyARDoubleMatrix
                return true;\r
        }\r
        /**\r
-        * この関数は、0-PIの間で値を返します。\r
+        * この関数は、行列を回転行列として、ZXY系の角度値を計算します。\r
         * @param o_out\r
+        * 角度値を受け取るオブジェクトです。\r
+        * 角度値の範囲は、0-PIです。\r
         */\r
        public final void getZXYAngle(NyARDoublePoint3d o_out)\r
        {\r
@@ -153,11 +184,25 @@ public class NyARDoubleMatrix33 implements INyARDoubleMatrix
                        o_out.y = Math.atan2(-this.m20, this.m22);\r
                }\r
        }\r
+       /**\r
+        * この関数は、行列を回転行列として、ZXY系の角度値をセットします。\r
+        * @param i_angle\r
+        * セットする角度値です。\r
+        */     \r
        public final void setZXYAngle(NyARDoublePoint3d i_angle)\r
        {\r
                setZXYAngle(i_angle.x,i_angle.y,i_angle.z);\r
                return;\r
        }\r
+       /**\r
+        * この関数は、行列を回転行列として、ZXY系の角度値をセットします。\r
+        * @param i_x\r
+        * X軸の角度値\r
+        * @param i_y\r
+        * X軸の角度値\r
+        * @param i_z\r
+        * X軸の角度値\r
+        */\r
        public final void setZXYAngle(final double i_x, final double i_y, final double i_z)\r
        {\r
                final double sina = Math.sin(i_x);\r
@@ -178,16 +223,28 @@ public class NyARDoubleMatrix33 implements INyARDoubleMatrix
                return;\r
        }\r
        /**\r
-        * 回転行列を適応して座標変換します。\r
-        * @param i_angle\r
+        * この関数は、3次元座標を座標変換します。\r
+        * @param i_position\r
+        * 変換する三次元座標\r
         * @param o_out\r
+        * 変換後の座標を受け取るオブジェクト\r
         */\r
        public final void transformVertex(NyARDoublePoint3d i_position,NyARDoublePoint3d o_out)\r
        {\r
                transformVertex(i_position.x,i_position.y,i_position.z,o_out);\r
                return;\r
        }\r
-       \r
+       /**\r
+        * この関数は、3次元座標を座標変換します。\r
+        * @param i_x\r
+        * 変換する三次元座標(X)\r
+        * @param i_y\r
+        * 変換する三次元座標(Y)\r
+        * @param i_z\r
+        * 変換する三次元座標(Z)\r
+        * @param o_out\r
+        * 変換後の座標を受け取るオブジェクト\r
+        */\r
        public final void transformVertex(double i_x,double i_y,double i_z,NyARDoublePoint3d o_out)\r
        {\r
                o_out.x=this.m00*i_x+this.m01*i_y+this.m02*i_z;\r