/** * コンストラクタです。 * 射影変換オブジェクトの参照値と、取り扱う頂点の最大数を指定して、インスタンスを生成します。 * @param i_projection_mat_ref * 射影変換オブジェクトの参照値です。 * @param i_max_vertex * 取り扱う頂点の最大数。 */ public NyARTransportVectorSolver(NyARPerspectiveProjectionMatrix i_projection_mat_ref, int i_max_vertex) { this._projection_mat = i_projection_mat_ref; this._cx = new double[i_max_vertex]; this._cy = new double[i_max_vertex]; return; }
/** * コンストラクタです。 * 座標計算に必要なオブジェクトの参照値を元に、インスタンスを生成します。 * @param i_ref_distfactor * 樽型歪み矯正オブジェクトの参照値です。歪み矯正が不要な時は、nullを指定します。 * @param i_ref_projmat * 射影変換オブジェクトの参照値です。 * @ */ public NyARTransMat_ARToolKit(INyARCameraDistortionFactor i_ref_distfactor, NyARPerspectiveProjectionMatrix i_ref_projmat) { INyARCameraDistortionFactor dist = i_ref_distfactor; NyARPerspectiveProjectionMatrix pmat = i_ref_projmat; this._transsolver = new NyARTransportVectorSolver_ARToolKit(pmat); //互換性が重要な時は、NyARRotMatrix_ARToolKitを使うこと。 //理屈はNyARRotMatrix_NyARToolKitもNyARRotMatrix_ARToolKitも同じだけど、少しだけ値がずれる。 this._rotmatrix = new NyARRotMatrix_ARToolKit_O2(pmat); this._mat_optimize = new NyARRotMatrixOptimize_O2(pmat); this._ref_dist_factor = dist; return; }
/** * コンストラクタです。 * 座標計算に必要なオブジェクトの参照値を元に、インスタンスを生成します。 * @param i_ref_distfactor * 樽型歪み矯正オブジェクトの参照値です。歪み矯正が不要な時は、nullを指定します。 * @param i_ref_projmat * 射影変換オブジェクトの参照値です。 * @ */ public NyARTransMat_ARToolKit(INyARCameraDistortionFactor i_ref_distfactor, NyARPerspectiveProjectionMatrix i_ref_projmat) { initInstance(i_ref_distfactor, i_ref_projmat); return; }
/** * コンストラクタから呼び出す共通な初期化部分です。 * @param i_dist_factor * @param i_prjmat * @throws NyARException */ protected void initInstance(NyARIntSize i_screen, double i_near, double i_far, NyARPerspectiveProjectionMatrix i_prjmat, INyARCameraDistortionFactor i_dist_factor) { int number_of_reality_target = this.MAX_LIMIT_KNOWN + this.MAX_LIMIT_UNKNOWN; //演算インスタンス this._transmat = new NyARTransMat(i_dist_factor, i_prjmat); //データインスタンス this._pool = new NyARRealityTargetPool(number_of_reality_target, i_prjmat); this.target = new NyARRealityTargetList(number_of_reality_target); //Trackerの特性値 this._tracker = new NyARTracker((this.MAX_LIMIT_KNOWN + this.MAX_LIMIT_UNKNOWN) * 2, 1, this.MAX_LIMIT_KNOWN * 2); //フラスタムの計算とスクリーンサイズの保存 this._ref_prjmat = i_prjmat; this._frustum = new NyARFrustum(i_prjmat, i_screen.w, i_screen.h, i_near, i_far); //初期化 this._number_of_dead = this._number_of_unknown = this._number_of_known = 0; return; }
/** * コンストラクタ。 * @param i_screen * スクリーン(入力画像)のサイズを指定します。 * @param i_near * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照 * @param i_far * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照 * @param i_prjmat * ARToolKit形式の射影変換パラメータを指定します。 * @param i_dist_factor * カメラ歪み矯正オブジェクトを指定します。歪み矯正が不要な時は、nullを指定します。 * @param i_max_known_target * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照 * @param i_max_unknown_target * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照 * @throws NyARException */ public NyARReality(NyARIntSize i_screen, double i_near, double i_far, NyARPerspectiveProjectionMatrix i_prjmat, INyARCameraDistortionFactor i_dist_factor, int i_max_known_target, int i_max_unknown_target) { this.MAX_LIMIT_KNOWN = i_max_known_target; this.MAX_LIMIT_UNKNOWN = i_max_unknown_target; this.initInstance(i_screen, i_near, i_far, i_prjmat, i_dist_factor); }
public NyARRealityTargetPool(int i_size, NyARPerspectiveProjectionMatrix i_ref_prj_mat) { this.initInstance(i_size); this._ref_prj_mat = i_ref_prj_mat; return; }