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
protected int row;\r
\r
/**\r
- * デフォルトコンストラクタは機能しません。\r
+ * デフォルトコンストラクタ。\r
+ * 機能しません。\r
* @throws NyARException\r
*/\r
protected NyARMat() throws NyARException\r
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
/**\r
* 行列の列数を返します。\r
* @return\r
+ * 行列の列数。\r
*/\r
public int getClm()\r
{\r
/**\r
* 行列の行数を返します。\r
* @return\r
+ * 行列の列数\r
*/\r
public int getRow()\r
{\r
\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
this.row = i_row;\r
return;\r
}\r
- \r
- \r
- \r
/**\r
* 行列同士の掛け算を実行します。\r
* i_mat_aとi_mat_bの積を計算して、thisへ格納します。\r
* 逆行列を計算して、thisへ格納します。\r
* @return\r
* 逆行列が計算できたかの、真偽値を返します。trueなら、逆行列が存在します。falseなら、逆行列はありません。\r
+ * 失敗すると、thisの内容は不定になります。\r
* @throws NyARException\r
*/\r
public boolean matrixSelfInv() throws NyARException\r
}\r
/**\r
* 行列のバッファを返します。\r
+ * 返却値の有効期間に注意してください。\r
+ * この値の有効時間は、次にこのこのインスタンスの関数を実行するまでの間です。\r
* @return\r
+ * 行列のバッファ\r
*/\r
public double[][] getArray()\r
{\r
\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
}\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
/**\r
* i_sourceの内容を、thisへコピーします。\r
* @param i_source\r
- * @return\r
+ * コピー元のインスタンスです。\r
*/\r
public void matrixDup(NyARMat i_source) throws NyARException\r
{\r
/**\r
* オブジェクトを複製します。\r
* @return\r
+ * 複製したオブジェクト。\r
* @throws NyARException\r
*/\r
public NyARMat matrixAllocDup() throws NyARException\r
/**\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
* 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
}\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
* 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
\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
* 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
* 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
* 現在の行列に主成分分析を実行して、結果を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
* 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