import jp.nyatla.nyartoolkit.core.types.*;\r
\r
/**\r
- * ARToolKitの樽型歪みパラメータを使う、歪み設定/解除クラスです。\r
- * パラメータと理論については、以下の資料、11pageを参照。\r
+ * このクラスは、樽型歪み設定/解除クラスです。\r
+ * パラメータには、ARToolKitの樽型歪みパラメータを使います。\r
+ * <p>アルゴリズム - \r
+ * このクラスでは、歪み矯正前の座標を観察座標系、歪み矯正後の座標を理想座標系と呼びます。\r
+ * パラメータと理論については、以下の資料、11pageを参照してください。\r
* http://www.hitl.washington.edu/artoolkit/Papers/ART02-Tutorial.pdf\r
- * \r
- * このクラスでは、歪み矯正前の座標を観察座標系、歪み矯正後の座標を理想座標系とします。\r
- * \r
+ * <pre>\r
* x=x(xi-x0),y=s(yi-y0)\r
* d^2=x^2+y^2\r
* p=(1-fd^2)\r
* xd=px+x0,yd=py+y0\r
+ * </pre>\r
+ * </p>\r
+ * このクラスは{@link NyARParam}に所有されることを前提にしており、単独の仕様は考慮されていません。\r
*/\r
public class NyARCameraDistortionFactor\r
{\r
private static final int PD_LOOP = 3;\r
private double _f0;//x0\r
private double _f1;//y0\r
- private double _f2;//100000000.0*f\r
+ private double _f2;//100000000.0*f\r
private double _f3;//s\r
\r
\r
/**\r
- * 参照元から値をコピーします。\r
+ * この関数は、参照元から歪みパラメータ値をコピーします。\r
* @param i_ref\r
+ * コピー元のオブジェクト。\r
*/\r
public void copyFrom(NyARCameraDistortionFactor i_ref)\r
{\r
}\r
\r
/**\r
- * 配列の値をファクタ値としてセットします。\r
+ * この関数は、配列の値を歪みパラメータ値として、このインスタンスにセットします。\r
* @param i_factor\r
- * 4要素以上の配列\r
+ * 歪みパラメータ値を格納した配列。4要素である必要があります。\r
*/\r
public void setValue(double[] i_factor)\r
{\r
}\r
\r
/**\r
- * ファクタ値を配列に返します。\r
- * @param o_factor\r
+ * この関数は、パラメータ値を配列へ返します。\r
+ * @param i_factor\r
+ * 歪みパラメータ値の出力先配列。4要素である必要があります。\r
*/\r
public void getValue(double[] o_factor)\r
{\r
}\r
\r
/**\r
- * 歪みパラメータのスケールを変更します。\r
+ * この関数は、歪みパラメータをスケール倍します。\r
+ * パラメータ値は、スケール値の大きさだけ、拡大、又は縮小します。\r
* @param i_scale\r
+ * パラメータの倍率。\r
*/\r
public void changeScale(double i_scale)\r
{\r
- this._f0=this._f0*i_scale;// newparam->dist_factor[0] =source->dist_factor[0] *scale;\r
- this._f1=this._f1*i_scale;// newparam->dist_factor[1] =source->dist_factor[1] *scale;\r
+ this._f0=this._f0*i_scale;//X\r
+ this._f1=this._f1*i_scale;//Y\r
this._f2=this._f2/ (i_scale * i_scale);// newparam->dist_factor[2]=source->dist_factor[2]/ (scale*scale);\r
//this.f3=this.f3;// newparam->dist_factor[3] =source->dist_factor[3];\r
return;\r
}\r
- /*********\r
- * override\r
- *********/\r
\r
/**\r
- * 理想座標から、観察座標系へ変換します。\r
+ * この関数は、座標点を理想座標系から観察座標系へ変換します。\r
* @param i_in\r
+ * 変換元の座標\r
* @param o_out\r
+ * 変換後の座標を受け取るオブジェクト\r
*/\r
public final void ideal2Observ(NyARDoublePoint2d i_in, NyARDoublePoint2d o_out)\r
{\r
return;\r
}\r
\r
-\r
/**\r
- * 理想座標から、観察座標系へ変換します。\r
+ * この関数は、座標点を理想座標系から観察座標系へ変換します。\r
* @param i_in\r
+ * 変換元の座標\r
* @param o_out\r
+ * 変換後の座標を受け取るオブジェクト\r
*/\r
public final void ideal2Observ(NyARDoublePoint2d i_in, NyARIntPoint2d o_out)\r
{\r
}\r
\r
/**\r
- * 理想座標から、観察座標系へ変換します。\r
+ * この関数は、座標点を理想座標系から観察座標系へ変換します。\r
* @param i_x\r
+ * 変換元の座標\r
* @param i_y\r
+ * 変換元の座標\r
* @param o_out\r
+ * 変換後の座標を受け取るオブジェクト\r
*/\r
public final void ideal2Observ(double i_x,double i_y, NyARIntPoint2d o_out)\r
{\r
return;\r
}\r
\r
-\r
/**\r
- * 理想座標から、観察座標系へ変換します。\r
+ * この関数は、複数の座標点を、一括して理想座標系から観察座標系へ変換します。\r
* @param i_in\r
+ * 変換元の座標配列\r
* @param o_out\r
+ * 変換後の座標を受け取る配列\r
* @param i_size\r
+ * 変換する座標の個数。\r
*/\r
public final void ideal2ObservBatch(NyARDoublePoint2d[] i_in, NyARDoublePoint2d[] o_out, int i_size)\r
{\r
}\r
\r
/**\r
- * 複数の座標点について、観察座標から、理想座標系へ変換します。\r
+ * この関数は、複数の座標点を、一括して理想座標系から観察座標系へ変換します。\r
* @param i_in\r
+ * 変換元の座標配列\r
* @param o_out\r
+ * 変換後の座標を受け取る配列\r
* @param i_size\r
+ * 変換する座標の個数。\r
*/\r
public final void ideal2ObservBatch(NyARDoublePoint2d[] i_in, NyARIntPoint2d[] o_out, int i_size)\r
{\r
}\r
\r
/**\r
- * ARToolKitの観察座標から、理想座標系への変換です。\r
- * 樽型歪みを解除します。\r
+ * この関数は、座標を観察座標系から理想座標系へ変換します。\r
* @param ix\r
+ * 変換元の座標\r
* @param iy\r
+ * 変換元の座標\r
* @param o_point\r
+ * 変換後の座標を受け取るオブジェクト\r
*/\r
public final void observ2Ideal(double ix, double iy, NyARDoublePoint2d o_point)\r
{\r
}\r
\r
/**\r
- * {@link #observ2Ideal(double, double, NyARDoublePoint2d)}の出力型違い。o_veclinearのx,yフィールドに値を出力する。\r
+ * この関数は、座標を観察座標系から理想座標系へ変換します。\r
* @param ix\r
+ * 変換元の座標\r
* @param iy\r
- * @param o_point\r
+ * 変換元の座標\r
+ * @param o_veclinear\r
+ * 変換後の座標を受け取るオブジェクト。{@link NyARVecLinear2d#x}と{@link NyARVecLinear2d#y}のみに値をセットします。\r
*/\r
public void observ2Ideal(double ix, double iy, NyARVecLinear2d o_veclinear)\r
{\r