OSDN Git Service

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit/trunk@808 7cac0...
[nyartoolkit-and/nyartoolkit-and.git] / lib / src.rpf / jp / nyatla / nyartoolkit / rpf / tracker / nyartk / status / NyARRectTargetStatus.java
index fd9f49e..5710367 100644 (file)
@@ -6,63 +6,55 @@ import jp.nyatla.nyartoolkit.core.types.*;
 import jp.nyatla.nyartoolkit.core.utils.NyARMath;\r
 import jp.nyatla.nyartoolkit.rpf.sampler.lrlabel.LowResolutionLabelingSamplerOut;\r
 import jp.nyatla.nyartoolkit.rpf.tracker.nyartk.INyARVectorReader;\r
-import jp.nyatla.nyartoolkit.rpf.tracker.nyartk.NyARVectorReader_INT1D_GRAY_8;\r
 import jp.nyatla.nyartoolkit.rpf.utils.VecLinearCoordinates;\r
 \r
 \r
 \r
-\r
+/**\r
+ * このクラスは、RECTステータスのターゲットステータスを格納します。\r
+ * RECTステータスは、ラベルから推定した矩形の4点座標と、そこから計算できるパラメータを持ちます。\r
+ */\r
 public class NyARRectTargetStatus extends NyARTargetStatus\r
 {\r
        private NyARRectTargetStatusPool _ref_my_pool;\r
        \r
        \r
-       /**\r
-        * 現在の矩形情報\r
-        */\r
+       /** [read only]矩形の頂点情報。4要素です。*/\r
        public NyARDoublePoint2d[] vertex=NyARDoublePoint2d.createArray(4);\r
 \r
-       /**\r
-        * 予想した頂点速度の二乗値の合計\r
-        */\r
+       /** [read only]頂点予想値から計算した、頂点速度の二乗値の合計*/\r
        public int estimate_sum_sq_vertex_velocity_ave;\r
 \r
-       /**\r
-        * 予想頂点範囲\r
-        */\r
+       /** [read only]頂点予測値のクリップ領域。*/\r
        public NyARIntRect estimate_rect=new NyARIntRect();\r
-       /**\r
-        * 予想頂点位置\r
-        */\r
+\r
+       /** [read only]頂点予測位置。4要素です。*/\r
        public NyARDoublePoint2d[] estimate_vertex=NyARDoublePoint2d.createArray(4);\r
 \r
-       /**\r
-        * 最後に使われた検出タイプの値です。DT_xxxの値をとります。\r
-        */\r
+       /** [read only]どのような手法で矩形を検出したかを示す値。DT_XXXの値を取ります。*/\r
        public int detect_type;\r
-       /**\r
-        * 初期矩形検出で検出を実行した。\r
-        */\r
+       \r
+       /** 定数値。初期矩形検出に成功し、値を更新したことを示す。*/\r
        public static final int DT_SQINIT=0;\r
-       /**\r
-        * 定常矩形検出で検出を実行した。\r
-        */\r
+\r
+       /** 定数値。ラベル情報を元にした検出に成功し、値を更新したことを示す。*/\r
        public static final int DT_SQDAILY=1;\r
-       /**\r
-        * 定常直線検出で検出を実行した。\r
-        */\r
+       \r
+       /** 定数値。直線トレース検出に成功し、値を更新したことを示す。*/\r
        public static final int DT_LIDAILY=2;\r
-       /**\r
-        * みつからなかったよ。\r
-        */\r
+\r
+       /** 定数値。検出できず、過去のデータをそのまま引き継いだ事を示す。*/\r
        public static final int DT_FAILED=-1;\r
        \r
        //\r
        //制御部\r
        \r
        /**\r
-        * @Override\r
-        */\r
+        * コンストラクタです。\r
+        * この関数は、所有されるプールオブジェクトが使います。ユーザは使いません。\r
+        * @param i_pool\r
+        * プールオブジェクトのコントロールインタフェイス\r
+        */     \r
        public NyARRectTargetStatus(NyARRectTargetStatusPool i_pool)\r
        {\r
                super(i_pool._op_interface);\r
@@ -104,13 +96,17 @@ public class NyARRectTargetStatus extends NyARTargetStatus
 //             this.estimate_rect.clip(i_left, i_top, i_right, i_bottom);\r
                return;\r
        }\r
-       \r
        /**\r
-        * 輪郭情報を元に矩形パラメータを推定し、値をセットします。\r
-        * この関数は、処理の成功失敗に関わらず、内容変更を行います。\r
+        * この関数は、輪郭ステータスから矩形パラメータを推定して、インスタンスにセットします。\r
+        * 関数の成否にかかわらず、入力オブジェクトとインスタンスの状態が変化することに注意してください。\r
+        * 関数が成功すると、{@link #DT_SQINIT}を{@link #detect_type}にセットします。\r
         * @param i_contour_status\r
-        * 関数を実行すると、このオブジェクトの内容は破壊されます。\r
+        * 輪郭ステータスを格納したオブジェクト。\r
+        * 関数を実行すると、この内容は変更されます。\r
+        * @param i_sample_area\r
+        * ラベル情報から得たラベルのクリップ範囲です。\r
         * @return\r
+        * 関数が成功するとtrueを返します。\r
         * @throws NyARException\r
         */\r
        public boolean setValueWithInitialCheck(NyARContourTargetStatus i_contour_status,NyARIntRect i_sample_area) throws NyARException\r
@@ -143,14 +139,15 @@ public class NyARRectTargetStatus extends NyARTargetStatus
                return true;\r
        }\r
        /**\r
-        * 値をセットします。この関数は、処理の成功失敗に関わらず、内容変更を行います。\r
-        * @param i_sampler_in\r
+        * この関数は、ラベル情報から矩形パラメータを推定して、インスタンスにセットします。\r
+        * 関数の成否にかかわらず、インスタンスの状態が変化することに注意してください。\r
+        * @param i_vec_reader\r
         * @param i_source\r
         * @param i_prev_status\r
         * @return\r
         * @throws NyARException\r
         */\r
-       public boolean setValueWithDeilyCheck(INyARVectorReader i_vec_reader,LowResolutionLabelingSamplerOut.Item i_source,NyARRectTargetStatus i_prev_status) throws NyARException\r
+       private boolean setValueWithDeilyCheck(INyARVectorReader i_vec_reader,LowResolutionLabelingSamplerOut.Item i_source,NyARRectTargetStatus i_prev_status) throws NyARException\r
        {\r
                VecLinearCoordinates vecpos=this._ref_my_pool._vecpos;\r
                //輪郭線を取る\r
@@ -183,13 +180,14 @@ public class NyARRectTargetStatus extends NyARTargetStatus
                return true;\r
        }\r
        /**\r
-        * 輪郭からの単独検出\r
-        * @param i_raster\r
+        * この関数は、前回の位置情報と直線検出器で矩形パラメータを推定して、インスタンスにセットします。\r
+        * 関数の成否にかかわらず、インスタンスの状態が変化することに注意してください。\r
+        * @param i_vec_reader\r
         * @param i_prev_status\r
         * @return\r
         * @throws NyARException\r
         */\r
-       public boolean setValueByLineLog(INyARVectorReader i_vec_reader,NyARRectTargetStatus i_prev_status) throws NyARException\r
+       private boolean setValueByLineLog(INyARVectorReader i_vec_reader,NyARRectTargetStatus i_prev_status) throws NyARException\r
        {\r
                //検出範囲からカーネルサイズの2乗値を計算。検出領域の二乗距離の1/(40*40) (元距離の1/40)\r
                int d=((int)i_prev_status.estimate_rect.getDiagonalSqDist()/(NyARMath.SQ_40));\r
@@ -232,14 +230,16 @@ public class NyARRectTargetStatus extends NyARTargetStatus
                return true;\r
        }\r
        /**\r
-        * 状況に応じて矩形選択手法を切り替えます。\r
+        * この関数は、2回目以降の矩形検出で、状況に応じた矩形検出処理を実行して、新しい値をインスタンスにセットします。\r
+        * 関数が成功すると、{@link #detect_type}に値をセットします。\r
         * @param i_vec_reader\r
-        * サンプリングデータの基本画像にリンクしたVectorReader\r
+        * 画素ベクトルを読みだすためのオブジェクト。\r
         * @param i_source\r
-        * ã\82µã\83³ã\83\97ã\83ªã\83³ã\82°ã\83\87ã\83¼ã\82¿\r
+        * ã\83©ã\81¹ã\83ªã\83³ã\82°ã\81\8bã\82\89å¾\97ã\82\89ã\82\8cã\81\9fã\82µã\83³ã\83\97ã\83«æ\83\85å ±ã\80\82ï¼\88å­\98å\9c¨ã\81\97ã\81ªã\81\84ã\81¨ã\81\8dã\81¯NULLï¼\89\r
         * @param i_prev_status\r
-        * å\89\8då\9b\9eã\81®ç\8a¶æ\85\8bã\82\92æ ¼ç´\8dã\81\97ã\81\9fã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88\r
+        * å\89\8då\9b\9eã\81®ç\8a¶æ\85\8bã\82\92æ ¼ç´\8dã\81\97ã\81\9fã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\80\82\r
         * @return\r
+        * 値のセットに成功するとtrueを返します。\r
         * @throws NyARException\r
         */\r
        public boolean setValueByAutoSelect(INyARVectorReader i_vec_reader,LowResolutionLabelingSamplerOut.Item i_source,NyARRectTargetStatus i_prev_status) throws NyARException\r
@@ -478,8 +478,10 @@ public class NyARRectTargetStatus extends NyARTargetStatus
            }\r
     }\r
     /**\r
-     * ARToolKitのdirectionモデルに従って、頂点をシフトします。\r
+     * この関数は、矩形の頂点情報をARToolKitのdirectionモデルに従って回転します。\r
+     * マーカパターンから方位値を得た後に、頂点順序を調整するために使います。\r
      * @param i_dir\r
+     * ARToolKitのdirection値\r
      */\r
     public void shiftByArtkDirection(int i_dir)\r
     {\r