OSDN Git Service

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit/trunk@786 7cac0...
[nyartoolkit-and/nyartoolkit-and.git] / lib / src / jp / nyatla / nyartoolkit / core / NyARMat.java
index 49da105..f627667 100644 (file)
 package jp.nyatla.nyartoolkit.core;\r
 \r
 import jp.nyatla.nyartoolkit.NyARException;\r
+import jp.nyatla.nyartoolkit.core.types.matrix.*;\r
 \r
 /**\r
- * ARToolKit由来の、可変サイズの行列計算クラスです。\r
+ * 可変サイズの行列計算クラスです。\r
  * ARToolKitのARMat構造体と、その処理関数に相当する機能があります。\r
- * 2x2,3x3,4x4行列については、NyAToolKitの行列計算クラスの方が高速な場合がありますので、必要に応じて選択して下さい。\r
- * @note\r
+ * 2x2,3x3,4x4行列については、NyAToolKitの行列計算クラス({@link NyARDoubleMatrix44},{@link NyARDoubleMatrix33},{@link NyARDoubleMatrix22},)\r
+ * がありますので、こちらを使ってください。\r
+ * <p>memo:\r
  * このクラスは、今後統合・削除する可能性があります。\r
+ * </p>\r
  */\r
 public class NyARMat\r
 {\r
-       /**\r
-        * 配列値を格納するバッファ\r
-        * 配列サイズと行列サイズは必ずしも一致しないことに注意。\r
-        * 配列のサイズを行列の大きさとして使わないこと!\r
-        */\r
+       /** 配列値を格納するバッファ。配列サイズと行列サイズは必ずしも一致しないことに注意。配列のサイズを行列の大きさとして使わないこと!*/\r
        protected double[][] _m;\r
        private int[] __matrixSelfInv_nos;\r
 \r
@@ -53,7 +52,8 @@ public class NyARMat
        protected int row;\r
 \r
        /**\r
-        * デフォルトコンストラクタは機能しません。\r
+        * デフォルトコンストラクタ。\r
+        * 機能しません。\r
         * @throws NyARException\r
         */\r
        protected NyARMat() throws NyARException\r
@@ -61,9 +61,12 @@ public class NyARMat
                throw new NyARException();\r
        }\r
        /**\r
-        * コンストラクタです。サイズを指定して、NyARMatオブジェクトを作成します。\r
+        * コンストラクタです。\r
+        * 行列のサイズを指定して、NyARMatオブジェクトを作成します。\r
         * @param i_row\r
+        * 行数です。\r
         * @param i_clm\r
+        * 列数です。\r
         */\r
        public NyARMat(int i_row, int i_clm)\r
        {\r
@@ -77,6 +80,7 @@ public class NyARMat
        /**\r
         * 行列の列数を返します。\r
         * @return\r
+        * 行列の列数。\r
         */\r
        public int getClm()\r
        {\r
@@ -85,6 +89,7 @@ public class NyARMat
        /**\r
         * 行列の行数を返します。\r
         * @return\r
+        * 行列の列数\r
         */\r
        public int getRow()\r
        {\r
@@ -93,9 +98,11 @@ public class NyARMat
        \r
        /**\r
         * 行列のサイズを変更します。\r
-        * 実行後、行列の各値は不定になります。\r
+        * 関数を実行すると、行列の各値は不定になります。\r
         * @param i_row\r
+        * 新しい行数\r
         * @param i_clm\r
+        * 新しい列数。\r
         */\r
        public void realloc(int i_row, int i_clm)\r
        {\r
@@ -110,9 +117,6 @@ public class NyARMat
                this.row = i_row;\r
                return;\r
        }\r
-       \r
-       \r
-       \r
        /**\r
         * 行列同士の掛け算を実行します。\r
         * i_mat_aとi_mat_bの積を計算して、thisへ格納します。\r
@@ -146,6 +150,7 @@ public class NyARMat
         * 逆行列を計算して、thisへ格納します。\r
         * @return\r
         * 逆行列が計算できたかの、真偽値を返します。trueなら、逆行列が存在します。falseなら、逆行列はありません。\r
+        * 失敗すると、thisの内容は不定になります。\r
         * @throws NyARException\r
         */\r
        public boolean matrixSelfInv() throws NyARException\r
@@ -273,7 +278,10 @@ public class NyARMat
        }\r
        /**\r
         * 行列のバッファを返します。\r
+        * 返却値の有効期間に注意してください。\r
+        * この値の有効時間は、次にこのこのインスタンスの関数を実行するまでの間です。\r
         * @return\r
+        * 行列のバッファ\r
         */\r
        public double[][] getArray()\r
        {\r
@@ -282,13 +290,12 @@ public class NyARMat
 \r
 \r
        /**\r
-        * ARToolKitのarMatrixTrans関数と同等な関数です。\r
-        * sourceã\81®è»¢ç½®è¡\8cå\88\97ã\82\92destã\81«å¾\97ã\81¾ã\81\99ã\80\82\r
+        * ARToolKitのarMatrixTrans関数と同等な関数です。sourceの転置行列をdestに得ます。\r
+        * ã\81\93ã\81®é\96¢æ\95°ã\81¯æ\9cªã\83\81ã\82§ã\83\83ã\82¯ã\81®ç\82ºã\80\81å®\9fè¡\8cã\81\99ã\82\8bã\81¨ä¾\8bå¤\96ã\81\8cç\99ºç\94\9fã\81\97ã\81¾ã\81\99ã\80\82\r
         * @param dest\r
         * 出力先のオブジェクト\r
         * @param source\r
         * 入力元のオブジェクト\r
-        * @return\r
         */\r
        public static void matrixTrans(NyARMat dest, NyARMat source) throws NyARException\r
        {\r
@@ -305,9 +312,10 @@ public class NyARMat
        }\r
 \r
        /**\r
-        * ARToolKitの、arMatrixUnit関数と同等な関数です。\r
-        * unitを単位行列に初期化します。\r
+        * ARToolKitの、arMatrixUnit関数と同等な関数です。unitを単位行列に初期化します。\r
+        * この関数は未チェックの為、実行すると例外が発生します。\r
         * @param unit\r
+        * 操作するオブジェクト。\r
         */\r
        public static void matrixUnit(NyARMat unit) throws NyARException\r
        {\r
@@ -330,7 +338,7 @@ public class NyARMat
        /**\r
         * i_sourceの内容を、thisへコピーします。\r
         * @param i_source\r
-        * @return\r
+        * コピー元のインスタンスです。\r
         */\r
        public void matrixDup(NyARMat i_source) throws NyARException\r
        {\r
@@ -351,6 +359,7 @@ public class NyARMat
        /**\r
         * オブジェクトを複製します。\r
         * @return\r
+        * 複製したオブジェクト。\r
         * @throws NyARException\r
         */\r
        public NyARMat matrixAllocDup() throws NyARException\r
@@ -380,9 +389,8 @@ public class NyARMat
        /**\r
         * ARToolKitのEX関数と同等な関数です。\r
         * 詳細は不明です。\r
-        * @param input\r
         * @param mean\r
-        * @return\r
+        * 不明\r
         * @throws NyARException\r
         */\r
        private void PCA_EX(NyARVec mean) throws NyARException\r
@@ -418,8 +426,9 @@ public class NyARMat
         * ARToolKitのCENTER関数と同等な関数です。\r
         * 詳細は不明です。\r
         * @param inout\r
+        * 不明\r
         * @param mean\r
-        * @return\r
+        * 不明\r
         */\r
        private static void PCA_CENTER(NyARMat inout, NyARVec mean)throws NyARException\r
        {\r
@@ -466,9 +475,13 @@ public class NyARMat
        }\r
 \r
        /**\r
-        * ARToolKitのx_by_xtと同等な関数です。詳細は不明です。\r
+        * ARToolKitのx_by_xtと同等な関数です。\r
+        * 詳細は不明です。\r
+        * この関数は未チェックの為、使用すると例外が発生します。\r
         * @param input\r
+        * 不明\r
         * @param output\r
+        * 不明\r
         * @throws NyARException\r
         */\r
        private static void PCA_x_by_xt(NyARMat input, NyARMat output) throws NyARException\r
@@ -512,7 +525,9 @@ public class NyARMat
         * ARToolKitのxt_by_x関数と同等な関数です。\r
         * 詳細は不明です。\r
         * @param input\r
+        * 不明\r
         * @param i_output\r
+        * 不明\r
         * @throws NyARException\r
         */\r
        private static void PCA_xt_by_x(NyARMat input, NyARMat i_output) throws NyARException\r
@@ -549,8 +564,9 @@ public class NyARMat
 \r
        /**\r
         * ARToolKitのQRM関数と同等な関数です。\r
-        * @param a\r
+        * 詳細は不明です。\r
         * @param dv\r
+        * 不明\r
         * @throws NyARException\r
         */\r
        private void PCA_QRM(NyARVec dv) throws NyARException\r
@@ -684,9 +700,13 @@ public class NyARMat
         * ARToolKitのEV_create関数と同等な関数です。\r
         * 詳細は不明です。\r
         * @param input\r
+        * 不明。\r
         * @param u\r
+        * 不明。\r
         * @param output\r
+        * 不明。\r
         * @param ev\r
+        * 不明。\r
         * @throws NyARException\r
         */\r
        private static void PCA_EV_create(NyARMat input, NyARMat u, NyARMat output,NyARVec ev) throws NyARException\r
@@ -759,7 +779,9 @@ public class NyARMat
         * ARToolKitのPCA関数と同等な関数です。\r
         * 詳細は不明です。\r
         * @param output\r
+        * 不明\r
         * @param o_ev\r
+        * 不明\r
         * @throws NyARException\r
         */\r
        private void PCA_PCA(NyARMat o_output, NyARVec o_ev) throws NyARException\r
@@ -830,8 +852,11 @@ public class NyARMat
         * 現在の行列に主成分分析を実行して、結果をthisと引数へ格納します。\r
         * 詳細は不明です。\r
         * @param o_evec\r
+        * 不明\r
         * @param o_ev\r
+        * 不明\r
         * @param o_mean\r
+        * 不明\r
         * @throws NyARException\r
         */\r
        public void pca(NyARMat o_evec, NyARVec o_ev, NyARVec o_mean)throws NyARException\r
@@ -884,10 +909,11 @@ public class NyARMat
         * ARToolKitの、arVecTridiagonalize関数と同等な関数です。\r
         * 詳細は不明です。\r
         * @param d\r
+        * 不明\r
         * @param e\r
+        * 不明\r
         * @param i_e_start\r
         * 演算開始列(よくわからないけどarVecTridiagonalizeの呼び出し元でなんかしてる)\r
-        * @return\r
         * @throws NyARException\r
         */\r
        private void vecTridiagonalize(NyARVec d, NyARVec e, int i_e_start)throws NyARException\r