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 / transmat / solver / NyARTransportVectorSolver.java
index a18bc53..f98cf74 100644 (file)
@@ -30,14 +30,15 @@ import jp.nyatla.nyartoolkit.core.param.NyARPerspectiveProjectionMatrix;
 import jp.nyatla.nyartoolkit.core.types.*;\r
 \r
 /**\r
- * 並進ベクトル[T]を3次元座標[b]と基点の回転済行列[M]から計算します。\r
- * \r
+ * このクラスは、ARToolKitと同じアルゴリズムを、異なる演算手順で処理して、並進ベクトルを求めます。\r
  * アルゴリズムは、ARToolKit 拡張現実プログラミング入門 の、P207のものです。\r
- * \r
- * 計算手順\r
+ * <p>計算手順\r
+ * <pre>\r
  * [A]*[T]=bを、[A]T*[A]*[T]=[A]T*[b]にする。\r
  * set2dVertexで[A]T*[A]=[M]を計算して、Aの3列目の情報だけ保存しておく。\r
  * getTransportVectorで[M]*[T]=[A]T*[b]を連立方程式で解いて、[T]を得る。\r
+ * </pre>\r
+ * </p>\r
  */\r
 public class NyARTransportVectorSolver implements INyARTransportVectorSolver\r
 {\r
@@ -45,6 +46,14 @@ public class NyARTransportVectorSolver implements INyARTransportVectorSolver
        private double[] _cy;   \r
        private final NyARPerspectiveProjectionMatrix _projection_mat;\r
        private int _nmber_of_vertex;\r
+       /**\r
+        * コンストラクタです。\r
+        * 射影変換オブジェクトの参照値と、取り扱う頂点の最大数を指定して、インスタンスを生成します。\r
+        * @param i_projection_mat_ref\r
+        * 射影変換オブジェクトの参照値です。\r
+        * @param i_max_vertex\r
+        * 取り扱う頂点の最大数。\r
+        */\r
        public NyARTransportVectorSolver(NyARPerspectiveProjectionMatrix i_projection_mat_ref,int i_max_vertex)\r
        {\r
                this._projection_mat=i_projection_mat_ref;\r
@@ -54,13 +63,8 @@ public class NyARTransportVectorSolver implements INyARTransportVectorSolver
        }\r
        private double _a00,_a01_10,_a02_20,_a11,_a12_21,_a22;\r
        /**\r
-        * 平行移動量計算のための、画面上の頂点群を指定します。\r
-        * @param i_ref_vertex_2d\r
-        * 入力パラメータ。歪み矯正済の画面上の頂点座標群への参照値を指定します。\r
-        * @param i_number_of_vertex\r
-        * i_ref_vertex_2dのデータ数を指定します。\r
-        * @throws NyARException\r
-        * \r
+        * この関数は、射影変換後の2次元頂点座標をセットします。\r
+        * i_number_of_vertexは、コンストラクタで指定した最大数以下である必要があります。\r
         */\r
        public void set2dVertex(NyARDoublePoint2d[] i_ref_vertex_2d,int i_number_of_vertex) throws NyARException\r
        {\r
@@ -101,12 +105,8 @@ public class NyARTransportVectorSolver implements INyARTransportVectorSolver
        }\r
        \r
        /**\r
-        * 先にセットした2次元座標群と3次元座標群から、平行移動量を計算します。\r
-        * 2d座標系は、直前に実行したset2dVertexのものを使用します。\r
-        * @param i_vertex3d\r
-        * 3次元空間の座標群を設定します。頂点の順番は、画面座標群と同じ順序で格納してください。\r
-        * @param o_transfer\r
-        * @throws NyARException\r
+        * 画面座標群と3次元座標群から、平行移動量を計算します。\r
+        * 2d座標系は、直前に実行した{@link #set2dVertex}のものを使用します。\r
         */\r
        public void solveTransportVector(NyARDoublePoint3d[] i_vertex3d,NyARDoublePoint3d o_transfer) throws NyARException\r
        {\r