OSDN Git Service

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit/trunk@786 7cac0...
authornyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Wed, 5 Jan 2011 09:13:08 +0000 (09:13 +0000)
committerAtsuo Igarashi <atsuoigarashi@ubuntu.(none)>
Tue, 5 Apr 2011 09:23:06 +0000 (18:23 +0900)
lib/src.rpf/jp/nyatla/nyartoolkit/rpf/mklib/ARTKMarkerTable.java
lib/src.rpf/jp/nyatla/nyartoolkit/rpf/utils/LineBaseVertexDetector.java
lib/src/jp/nyatla/nyartoolkit/NyARException.java
lib/src/jp/nyatla/nyartoolkit/core/INyARDisposable.java
lib/src/jp/nyatla/nyartoolkit/core/NyARCode.java
lib/src/jp/nyatla/nyartoolkit/core/NyARMat.java
lib/src/jp/nyatla/nyartoolkit/core/NyARVec.java

index a94273b..e840e98 100644 (file)
@@ -2,43 +2,46 @@ package jp.nyatla.nyartoolkit.rpf.mklib;
 \r
 import jp.nyatla.nyartoolkit.NyARException;\r
 import jp.nyatla.nyartoolkit.core.NyARCode;\r
-import jp.nyatla.nyartoolkit.core.match.NyARMatchPattDeviationColorData;\r
-import jp.nyatla.nyartoolkit.core.match.NyARMatchPattResult;\r
-import jp.nyatla.nyartoolkit.core.match.NyARMatchPatt_Color_WITHOUT_PCA;\r
+import jp.nyatla.nyartoolkit.core.match.*;\r
 import jp.nyatla.nyartoolkit.core.raster.rgb.NyARRgbRaster;\r
 import jp.nyatla.nyartoolkit.core.rasterreader.NyARPerspectiveRasterReader;\r
 import jp.nyatla.nyartoolkit.core.types.NyARBufferType;\r
 import jp.nyatla.nyartoolkit.core.types.stack.NyARObjectStack;\r
-import jp.nyatla.nyartoolkit.rpf.reality.nyartk.NyARRealityTarget;\r
-import jp.nyatla.nyartoolkit.rpf.realitysource.nyartk.NyARRealitySource;\r
+import jp.nyatla.nyartoolkit.rpf.reality.nyartk.*;\r
+import jp.nyatla.nyartoolkit.rpf.realitysource.nyartk.*;\r
 \r
 /**\r
- * 簡易なARToolKitパターンテーブルです。\r
- * このクラスは、ARToolKitスタイルのパターンファイルとIdとメタデータセットテーブルを定義します。\r
+ * このクラスは、ARToolKitマーカパターンのテーブルです。\r
+ * マーカパターンをID番号やメタデータに変換する事に役立ちます。\r
+ * テーブルには、ARToolKitフォーマットのマーカパターンと、ID番号、ユーザ定義のデータのセットを格納します。\r
+ * このクラスは、テーブルの操作機能と、テーブル要素の検索機能を提供します。\r
  */\r
 public class ARTKMarkerTable\r
 {\r
        /**\r
-        * selectTarget関数の戻り値を格納します。\r
+        * 結果型です。{@link ARTKMarkerTable#getBestMatchTarget}関数の戻り値を格納します。\r
+        * <p>memo-\r
         * 入れ子クラスの作れない処理系では、ARTKMarkerTable_GetBestMatchTargetResultとして宣言してください。\r
+        * </p>\r
         */\r
        public static class GetBestMatchTargetResult\r
        {\r
-               /** 登録時に設定したIDです。*/\r
+               /** 登録時に設定したIDです。*/\r
                public int idtag;\r
-               /** 登録時に設定した名前です。*/\r
+               /** 登録時に設定した名前文字列です。*/\r
                public String name;\r
-               /** 登録時に設定したマーカサイズです。*/\r
+               /** 登録時に設定したマーカ幅です。単位は、mm単位です。*/\r
                public double marker_width;\r
-               /** 登録時に設定したマーカサイズです。*/\r
+               /** 登録時に設定したマーカ高さです。単位は、mm単位です。*/\r
                public double marker_height;\r
-               /** ARToolKit準拠の、マーカの方位値*/\r
+               /** ARToolKit準拠の、マーカの方位値です。0&lt;=n&lt;=3の値が入ります。*/\r
                public int artk_direction;\r
-               /** 一致率*/\r
+               /** パターンの一致率です。0<&lt;n&lt;=1.0の数値が入ります。*/\r
                public double confidence;\r
        }\r
-       \r
-\r
+       /**\r
+        * データを格納するリストクラスを定義します。\r
+        */\r
        private class MarkerTable extends NyARObjectStack<MarkerTable.SerialTableRow>\r
        {\r
                public class SerialTableRow\r
@@ -75,22 +78,30 @@ public class ARTKMarkerTable
        private NyARMatchPatt_Color_WITHOUT_PCA _match_patt;\r
        private NyARMatchPattDeviationColorData _deviation_data;\r
        private MarkerTable _table;\r
+       \r
+       /** ワーク変数*/\r
+       private NyARMatchPattResult __tmp_patt_result=new NyARMatchPattResult();\r
+       \r
+       \r
        /**\r
-        * コンストラクタです。\r
+        * コンストラクタです。引数にあるパラメータで、空のテーブルを作ります。\r
         * @param i_max\r
         * 登録するアイテムの最大数です。\r
         * @param i_resolution_x\r
-        * 登録するパターンの解像度です。\r
+        * 登録するパターンの解像度です。\r
         * ARToolKit互換の標準値は16です。\r
         * @param i_resolution_y\r
-        * 登録するパターンの解像度です。\r
+        * 登録するパターンの解像度です。\r
         * ARToolKit互換の標準値は16です。\r
         * @param i_edge_x\r
-        * エッジ部分の割合です。ARToolKit互換の標準値は25です。\r
+        * エッジ部分の割合です。0<n<100の数値を指定します。\r
+        * ARToolKit互換の標準値は25です。\r
         * @param i_edge_y\r
-        * エッジ部分の割合です。ARToolKit互換の標準値は25です。\r
+        * エッジ部分の割合です。0<n<100の数値を指定します。\r
+        * ARToolKit互換の標準値は25です。\r
         * @param i_sample_per_pix\r
-        * パターン取得の1ピクセルあたりのサンプリング数です。1なら1Pixel=1,2なら1Pixel=4のサンプリングをします。\r
+        * 元画像からパターンを取得する時の、1ピクセル当たりのサンプリング数です。\r
+        * 1なら1Pixel=1,2なら1Pixel=4ピクセルの画素を、元画像からサンプリングをします。\r
         * ARToolKit互換の標準値は4です。\r
         * 高解像度(64以上)のパターンを用いるときは、サンプリング数を低く設定してください。\r
         * @throws NyARException \r
@@ -108,19 +119,20 @@ public class ARTKMarkerTable
                this._match_patt=new NyARMatchPatt_Color_WITHOUT_PCA(i_resolution_x,i_resolution_y);\r
        }\r
        /**\r
-        * ARTKパターンコードを、テーブルに追加します。このパターンコードのメタデータとして、IDと名前を指定できます。\r
+        * テーブル操作関数です。{@link NyARCode}を元にして、テーブルにマーカパターンを追加します。\r
         * @param i_code\r
-        * ARToolKitå½¢å¼\8fã\81®ã\83\91ã\82¿ã\83¼ã\83³ã\82³ã\83¼ã\83\89ã\82\92æ ¼ç´\8dã\81\97ã\81\9fã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\80\82ã\81\93ã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\80\81é\96¢æ\95°æ\88\90å\8a\9få¾\8cã\81¯ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81«æ\89\80æ\9c\89ã\81\95ã\82\8cます。\r
+        * ARToolKitå½¢å¼\8fã\81®ã\83\91ã\82¿ã\83¼ã\83³ã\82³ã\83¼ã\83\89ã\82\92æ ¼ç´\8dã\81\97ã\81\9fã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\80\82ã\81\93ã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\80\81é\96¢æ\95°æ\88\90å\8a\9få¾\8cã\81¯ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81\8cæ\89\80æ\9c\89ã\81\97ます。\r
         * パターンコードの解像度は、コンストラクタに指定した高さと幅である必要があります。\r
         * @param i_id\r
-        * このマーカを識別するユーザ定義のID値です。任意の値を指定できます。不要な場合は0を指定してください。\r
+        * ã\81\93ã\81®ã\83\9eã\83¼ã\82«ã\82\92è­\98å\88¥ã\81\99ã\82\8bã\80\81ã\83¦ã\83¼ã\82¶å®\9a義ã\81®IDå\80¤ã\81§ã\81\99ã\80\82ä»»æ\84\8fã\81®å\80¤ã\82\92æ\8c\87å®\9aã\81§ã\81\8dã\81¾ã\81\99ã\80\82ä¸\8dè¦\81ã\81ªå ´å\90\88ã\81¯0ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82\r
         * @param i_name\r
         * ユーザ定義の名前です。任意の値を指定できます。不要な場合はnullを指定して下さい。\r
         * @param i_width\r
-        * マーカの高さ[通常mm単位]\r
+        * 実際のマーカの高さです。[通常mm単位]\r
         * @param i_height\r
-        * マーカの幅[通常mm単位]\r
+        * 実際のマーカの幅です。[通常mm単位]\r
         * @return\r
+        * 登録に成功すると、trueを返します。\r
         */\r
        public boolean addMarker(NyARCode i_code,int i_id,String i_name,double i_width,double i_height)\r
        {\r
@@ -133,17 +145,19 @@ public class ARTKMarkerTable
                return true;\r
        }\r
        /**\r
-        * i_rasterからパターンコードを生成して、テーブルへ追加します。\r
+        * テーブル操作関数です。{@link NyARRgbRaster}クラスのオブジェクトからマーカパターンを生成して、テーブルへ追加します。方位は、上方向がdirection=0になります。\r
         * @param i_raster\r
+        * マーカパターンの元となるラスタを指定します。解像度は、コンストラクタで指定したものと同じでなければなりません。\r
         * @param i_id\r
         * このマーカを識別するユーザ定義のID値です。任意の値を指定できます。不要な場合は0を指定してください。\r
         * @param i_name\r
         * ユーザ定義の名前です。任意の値を指定できます。不要な場合はnullを指定して下さい。\r
         * @param i_width\r
-        * マーカの高さ[通常mm単位]\r
+        * 実際のマーカの高さです。[通常mm単位]\r
         * @param i_height\r
-        * マーカの幅[通常mm単位]\r
+        * 実際のマーカの幅です。[通常mm単位]\r
         * @return\r
+        * 登録に成功すると、trueを返します。\r
         * @throws NyARException\r
         */\r
        public boolean addMarker(NyARRgbRaster i_raster,int i_id,String i_name,double i_width,double i_height) throws NyARException\r
@@ -158,17 +172,19 @@ public class ARTKMarkerTable
                return true;\r
        }\r
        /**\r
-        * ARToolkit準拠のパターンファイルからパターンコードを生成して、テーブルへ追加します。\r
+        * テーブル操作関数です。ARToolkit準拠のパターンファイルを読み込み、テーブルへ追加します。\r
         * @param i_filename\r
+        * パターンファイルのファイルパスを指定します。\r
         * @param i_id\r
         * このマーカを識別するユーザ定義のID値です。任意の値を指定できます。不要な場合は0を指定してください。\r
         * @param i_name\r
         * ユーザ定義の名前です。任意の値を指定できます。不要な場合はnullを指定して下さい。\r
         * @param i_width\r
-        * マーカの高さ[通常mm単位]\r
+        * 実際のマーカの高さです。[通常mm単位]\r
         * @param i_height\r
-        * マーカの幅[通常mm単位]\r
+        * 実際のマーカの幅です。[通常mm単位]\r
         * @return\r
+        * 登録に成功すると、trueを返します。\r
         * @throws NyARException\r
         */\r
        public boolean addMarkerFromARPattFile(String i_filename,int i_id,String i_name,double i_width,double i_height) throws NyARException\r
@@ -183,19 +199,19 @@ public class ARTKMarkerTable
                return true;\r
        }       \r
        \r
-       private NyARMatchPattResult __tmp_patt_result=new NyARMatchPattResult();\r
        /**\r
-        * RealityTargetに最も一致するパターンをテーブルから検索して、メタデータを返します。\r
+        * テーブル検索関数です。\r
+        * {@link NyARRealityTarget}を元に{@link NyARRealitySource}からパターンのサンプリングを行い、最も一致するマーカパターンをテーブルから検索します。\r
+        * 検索キーとなる{@link NyARRealityTarget}は、{@link NyARReality}派生クラスから取得した物を指定します。\r
         * @param i_target\r
-        * Realityが検出したターゲット。\r
-        * Unknownターゲットを指定すること。\r
+        * 検索キーとなる、Unknownステータスの{@link NyARRealityTarget}クラスのオブジェクトを指定します。\r
         * @param i_rtsorce\r
-        * i_targetを検出したRealitySourceインスタンス\r
+        * i_targetを検出した{@link NyARRealitySource}のインスタンスを指定します。関数は、このソースからパターン取得を行います\r
         * @param o_result\r
         * 返却値を格納するインスタンスを設定します。\r
-        * 返却値がtrueの場合のみ、内容が更新されています。\r
         * @return\r
-        * 特定に成功すると、trueを返します。\r
+        * パターンのサンプリングに成功すると、trueを返します。\r
+        * 返却値がtrueの場合のみ、内容が更新されています。\r
         * @throws NyARException \r
         */\r
        public boolean getBestMatchTarget(NyARRealityTarget i_target,NyARRealitySource i_rtsorce,GetBestMatchTargetResult o_result) throws NyARException\r
index 0decca2..a7134e4 100644 (file)
@@ -4,32 +4,27 @@ import jp.nyatla.nyartoolkit.NyARException;
 import jp.nyatla.nyartoolkit.core.types.*;\r
 \r
 /**\r
- * このクラスは、直線式の集合から頂点集合を計算する関数を提供します。\r
+ * このクラスは、4本の直線式から、凸包の頂点を計算する機能を提供します。\r
  */\r
 public class LineBaseVertexDetector\r
 {\r
-       /**\r
-        * 頂点パターンテーブル\r
-        * 頂点用の、存在しないIDに対応した、調査テーブル。4頂点の時も使う。\r
-        */\r
+       /** 頂点の組合せテーブル(4,5頂点用)*/\r
        private final static int[][] _45vertextable={\r
                        {1,2,4,3},{0,2,5,3},{0,1,5,4},{0,1,5,4},{0,2,5,3},{1,2,4,3}};\r
-       /**\r
-        * 頂点パターンテーブル(6用)\r
-        */\r
+       /** 頂点組合せテーブル。(6頂点用)*/\r
        private final static int[][] _order_table={{0,1,5,4},{0,2,5,3},{1,2,4,3}};\r
+       /** ワーク変数*/\r
        private NyARDoublePoint2d[] __wk_v=NyARDoublePoint2d.createArray(6);\r
        /**\r
-        * 適当に与えられた4線分から、四角形の頂点を計算する\r
+        * 4直線の交点から、凸包の頂点座標を計算します\r
         * @param i_line\r
-        * 4線分を格納した配列\r
+        * 直線式の配列です。要素数は4である必要があります。\r
         * @param o_point\r
-        * 検出した4頂点\r
+        * 検出した頂点の座標です。要素数は4である必要があります。\r
         * @return\r
-        * å\9b\9bè§\92å½¢ã\82\92æ¤\9cå\87ºã\81\97ã\81\9fã\82\89true\r
+        * å\87¸å\8c\85ã\82\92è¨\88ç®\97ã\81§ã\81\8dã\82\8bã\81¨ã\80\81trueã\82\92è¿\94ã\81\97ã\81¾ã\81\99ã\80\82\r
         * @throws NyARException\r
         */\r
-\r
        public boolean line2SquareVertex(VecLinearCoordinates.VecLinearCoordinatePoint[] i_line,NyARDoublePoint2d[] o_point) throws NyARException\r
        {\r
                \r
@@ -98,10 +93,13 @@ public class LineBaseVertexDetector
        }\r
 \r
        /**\r
-        * 4頂点を巡回して、正の外積の個数を数える\r
+        * 4頂点を巡回して、正の外積数を数えます\r
         * @param p\r
+        * 頂点配列。4要素である事。\r
         * @param order\r
+        * 頂点のインデクス配列。4要素である事。\r
         * @return\r
+        * 正の外積数\r
         */\r
        private final static int countPlusExteriorProduct(NyARDoublePoint2d[] p,int[] order)\r
        {\r
index 8956074..e4aa532 100644 (file)
@@ -32,22 +32,23 @@ package jp.nyatla.nyartoolkit;
 \r
 /**\r
  * NyARToolkitライブラリが生成するExceptionのクラスです。\r
- * このクラスは、NyARToolkitライブラリ内でのみ使用します。\r
- *\r
+ * このクラスは、NyARToolkitライブラリでのみ使用します。\r
  */\r
 public class NyARException extends Exception\r
 {\r
        private static final long serialVersionUID = 1L;\r
 \r
        /**\r
-        * コンストラクタです。例外オブジェクトを生成します。\r
+        * コンストラクタです。\r
+        * 例外オブジェクトを生成します。\r
         */\r
        public NyARException()\r
        {\r
                super();\r
        }\r
        /**\r
-        * コンストラクタです。例外オブジェクト継承して、例外を生成します。\r
+        * コンストラクタです。\r
+        * 例外オブジェクト継承して、例外を生成します。\r
         * @param e\r
         * 継承する例外オブジェクト\r
         */\r
@@ -56,7 +57,8 @@ public class NyARException extends Exception
                super(e);\r
        }\r
        /**\r
-        * コンストラクタです。メッセージを指定して、例外を生成します。\r
+        * コンストラクタです。\r
+        * メッセージを指定して、例外を生成します。\r
         * @param m\r
         */\r
        public NyARException(String m)\r
@@ -64,19 +66,20 @@ public class NyARException extends Exception
                super(m);\r
        }\r
        /**\r
-        * ライブラリ開発者向けの関数です。メッセージを指定して、例外をスローします。\r
-        * この関数は、NyARToolkitの仕様外動作を補足するために使います。\r
+        * ライブラリ開発者向けの関数です。\r
+        * 意図的に例外を発生するときに、コードに埋め込みます。\r
         * @param m\r
+        * 例外メッセージを指定します。\r
         * @throws NyARException\r
         */\r
-\r
        public static void trap(String m) throws NyARException\r
        {\r
                throw new NyARException("トラップ:" + m);\r
        }\r
        /**\r
-        * ライブラリ開発者向けの関数です。"Not Implement!"メッセージを指定して、例外をスローします。\r
-        * この関数は、NyARToolkitの未実装部分に記述して使います。\r
+        * ライブラリ開発者向けの関数です。\r
+        * "Not Implement!"メッセージを指定して、例外をスローします。\r
+        * この関数は、NyARToolkitの未実装部分に埋め込みます。\r
         * @throws NyARException\r
         */\r
        public static void notImplement() throws NyARException\r
@@ -84,7 +87,8 @@ public class NyARException extends Exception
                throw new NyARException("Not Implement!");\r
        }\r
        /**\r
-        * この関数は使用不能です。(別の関数を使用してください。)\r
+        * ライブラリ開発者向けの関数です。\r
+        * 関数が使用不能である事を、例外で通知します。\r
         * @throws NyARException\r
         */\r
        public static void unavailability() throws NyARException\r
index dbdf9e5..ceff0fc 100644 (file)
@@ -1,13 +1,44 @@
+/* \r
+ * PROJECT: NyARToolkit\r
+ * --------------------------------------------------------------------------------\r
+ * This work is based on the original ARToolKit developed by\r
+ *   Hirokazu Kato\r
+ *   Mark Billinghurst\r
+ *   HITLab, University of Washington, Seattle\r
+ * http://www.hitl.washington.edu/artoolkit/\r
+ *\r
+ * The NyARToolkit is Java edition ARToolKit class library.\r
+ * Copyright (C)2008-2009 Ryo Iizuka\r
+ *\r
+ * This program is free software: you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation, either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
+ * \r
+ * For further information please contact.\r
+ *     http://nyatla.jp/nyatoolkit/\r
+ *     <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp>\r
+ * \r
+ */\r
 package jp.nyatla.nyartoolkit.core;\r
 \r
 /**\r
- * オブジェクトの破棄タイミングを受け取るインタフェイスです。\r
- *\r
+ * オブジェクト破棄のタイミングを受け取るインタフェイスです。\r
+ * アンマネージリソースの破棄コントロールや、オブジェクトプールの制御に使います。\r
  */\r
 public interface INyARDisposable\r
 {\r
        /**\r
-        * オブジェクトの終期化のタイミングを与えます。オブジェクトの終期化に必要な処理を実装します。\r
+        * オブジェクトの終期化のタイミングを与えます。\r
+        * オブジェクトの終期化に必要な処理を実装しでください。\r
         */\r
        public void dispose();\r
 }\r
index 5fc15a7..7b4adde 100644 (file)
@@ -43,23 +43,25 @@ import jp.nyatla.nyartoolkit.core.raster.rgb.NyARRgbRaster;
 import jp.nyatla.nyartoolkit.core.types.NyARBufferType;\r
 \r
 /**\r
- * NyARCodeクラスの支援クラスです。このクラスは、NyARCodeのマーカファイル読み取り機能を担当します。\r
- * InputStreamからARToolkit形式のマーカデータを読み取って配列に格納する手順を実装します。\r
+ * {@link NyARCode}クラスの支援クラスです。\r
+ * このクラスは、{@link NyARCode}のマーカファイル読み取り機能のうち、InputStreamからARToolkit形式のマーカデータを読み取って配列に格納する手順を実装します。\r
+ * {@link NyARCode}以外から使用することはありません。\r
  */\r
 class NyARCodeFileReader\r
 {\r
 \r
        /**\r
-        * ImputStreamからARToolKit形式のマーカデータを読み込んでo_raster[4]に格納します。\r
+        * ImputStreamからARToolKit形式のマーカデータを読みo_raster[4]に格納します。\r
         * @param i_stream\r
         * 読出し元のストリームです。\r
         * @param o_raster\r
-        * 出力先のラスタ配列です。バッファ形式は形式はINT1D_X8R8G8B8_32であり、全て同一なサイズである必要があります。\r
+        * 出力先のラスタ配列です。\r
+        * バッファ形式は形式はINT1D_X8R8G8B8_32であり、4要素、かつ全て同一なサイズである必要があります。\r
         * @throws NyARException\r
         */\r
        public static void loadFromARToolKitFormFile(InputStream i_stream,NyARRaster[] o_raster) throws NyARException\r
        {\r
-               assert o_raster.length==4;\r
+               assert(o_raster.length==4);\r
                //4個の要素をラスタにセットする。\r
                try {\r
                        StreamTokenizer st = new StreamTokenizer(new InputStreamReader(i_stream));\r
@@ -75,11 +77,11 @@ class NyARCodeFileReader
                return;\r
        }\r
        /**\r
-        * ImputStreamã\81\8bã\82\89ARToolKitå½¢å¼\8fã\81®ã\83\9eã\83¼ã\82«ã\83\87ã\83¼ã\82¿ã\82\92読ã\81¿è¾¼ã\82\93ã\81§o_codeã\81«格納します。\r
+        * ImputStreamã\81\8bã\82\89ARToolKitå½¢å¼\8fã\81®ã\83\9eã\83¼ã\82«ã\83\87ã\83¼ã\82¿ã\82\92読ã\81¿è¾¼ã\81¿ã\80\81o_codeã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¸格納します。\r
         * @param i_stream\r
         * 読出し元のストリームです。\r
         * @param o_code\r
-        * 出力先のNyARCodeオブジェクトです。\r
+        * 出力先の{@link NyARCode}オブジェクトです。\r
         * @throws NyARException\r
         */\r
        public static void loadFromARToolKitFormFile(InputStream i_stream,NyARCode o_code) throws NyARException\r
@@ -105,13 +107,14 @@ class NyARCodeFileReader
                return;\r
        }\r
        /**\r
-        * 1ブロック分のXRGBデータをi_stからo_bufへ読みだします。\r
+        * ストリームi_stから、1ブロック(1方位分)のXRGBデータをからo_bufへ読みだします。\r
         * @param i_st\r
-        * 入力元のStreamTokenizerを指定します。関数実行後、読み取り位置は更新されます。\r
+        * 入力元のStreamTokenizerを指定します。\r
+        * i_stの読み取り位置は更新されます。\r
         * @param i_width\r
-        * パターンの横です。\r
+        * パターンの横解像度(pixel)です。\r
         * @param i_height\r
-        * パターンの縦です。\r
+        * パターンの縦解像度(pixel)です。\r
         * @param o_buf\r
         * 読み取った値を格納する配列です。\r
         * @throws NyARException\r
@@ -144,8 +147,8 @@ class NyARCodeFileReader
 }\r
 \r
 /**\r
- * ARToolKitã\81®ã\83\9eã\83¼ã\82«ã\83¼ã\83\91ã\82¿ã\83¼ã\83³1å\80\8bã\81®ã\83\87ã\83¼ã\82¿ã\81«ç\9b¸å½\93するクラスです。\r
- * ã\83\9eã\83¼ã\82«ã\83¼ã\83\91ã\82¿ã\83¼ã\83³ã\81«å¯¾ã\81\99ã\82\8bã\80\81ARToolKitç\9b¸å½\93ã\81®ã\83\97ã\83­ã\83\91ã\83\86ã\82£å\80¤を提供します。\r
+ * ARToolKitã\81®ã\83\9eã\83¼ã\82«ã\83¼ã\83\91ã\82¿ã\83¼ã\83³1å\80\8bã\81®ã\83\87ã\83¼ã\82¿ã\82\92æ ¼ç´\8dするクラスです。\r
+ * ã\83\9eã\83¼ã\82«ã\83¼ã\83\91ã\82¿ã\83¼ã\83³ã\81®ã\83\97ã\83­ã\83\91ã\83\86ã\82£ã\81¨ã\80\81ã\83\87ã\83¼ã\82¿ã\81®ã\83­ã\83¼ã\83\89æ©\9fè\83½を提供します。\r
  */\r
 public class NyARCode\r
 {\r
@@ -155,39 +158,55 @@ public class NyARCode
        private int _height;\r
        \r
        /**\r
-        * directionを指定して、NyARMatchPattDeviationColorDataオブジェクトを取得します。\r
+        * 指定したdirection(方位)の{@link NyARMatchPattDeviationColorData}オブジェクトの参照値を返します。\r
         * @param i_index\r
-        * 0<=n<4の数値\r
+        * 方位インデクスの値を指定します。\r
+        * 範囲は、0&lt;=n&lt;=3の数値です。\r
         * @return\r
-        * NyARMatchPattDeviationColorDataオブジェクト\r
+        * 指定した方位の{@link NyARMatchPattDeviationColorData}オブジェクトを返します。\r
         */\r
        public NyARMatchPattDeviationColorData getColorData(int i_index)\r
        {\r
                return this._color_pat[i_index];\r
        }\r
+       /**\r
+        * 指定したdirection(方位)の{@link NyARMatchPattDeviationBlackWhiteData}オブジェクトの参照値を返します。\r
+        * @param i_index\r
+        * 方位インデクスの値を指定します。\r
+        * 範囲は、0&lt;=n&lt;=3の数値です。\r
+        * @return\r
+        * 指定した方位の{@link NyARMatchPattDeviationBlackWhiteData}オブジェクトを返します。\r
+        */\r
        public NyARMatchPattDeviationBlackWhiteData getBlackWhiteData(int i_index)\r
        {\r
                return this._bw_pat[i_index];\r
-       }       \r
+       }\r
+       /**\r
+        * ARマーカの横解像度を返します。\r
+        * @return\r
+        * 解像度値\r
+        */\r
        public int getWidth()\r
        {\r
                return _width;\r
        }\r
 \r
        /**\r
-        * パターンデータの高さを取得します。\r
+        * ARマーカの縦解像度を返します。\r
         * @return\r
+        * 解像度値\r
         */\r
        public int getHeight()\r
        {\r
                return _height;\r
        }\r
        /**\r
-        * コンストラクタです。空のNyARCodeオブジェクトを作成します。\r
+        * コンストラクタです。\r
+        * 空のNyARCodeオブジェクトを作成します。\r
         * @param i_width\r
-        * 作成するマーカパターンの\r
+        * 作成するマーカパターンの横解像度\r
         * @param i_height\r
-        * 作成するマーカパターンの高さ\r
+        * 作成するマーカパターンの縦解像度\r
         * @throws NyARException\r
         */\r
        public NyARCode(int i_width, int i_height) throws NyARException\r
@@ -202,10 +221,10 @@ public class NyARCode
                return;\r
        }\r
        /**\r
-        * ファイル名を指定して、パターンデータをロードします。\r
-        * ロードするパターンデータのサイズは、現在の値と同じである必要があります。\r
+        * ARToolKit形式のパターンデータをファイルからロードします。\r
+        * ロードするパターンデータの縦横解像度は、このインスタンスの値と同じである必要があります。\r
         * @param filename\r
-        * ARToolKit形式のパターンデータファイルのå\90\8då\89\8d\r
+        * ARToolKit形式のパターンデータファイルのã\83\91ã\82¹å\90\8d\r
         * @throws NyARException\r
         */\r
        public void loadARPattFromFile(String filename) throws NyARException\r
@@ -218,10 +237,23 @@ public class NyARCode
                return;\r
        }\r
        /**\r
-        * 4枚のラスタから、マーカーパターンを生成して格納します。\r
+        * inputStreamから、ARToolKit形式のパターンデータをロードします。\r
+        * ロードするパターンデータの縦横解像度は、このインスタンスの値と同じである必要があります。\r
+        * @param i_stream\r
+        * 読出し元のStreamオブジェクト\r
+        * @throws NyARException\r
+        */\r
+       public void loadARPatt(InputStream i_stream) throws NyARException\r
+       {\r
+               //ラスタにパターンをロードする。\r
+               NyARCodeFileReader.loadFromARToolKitFormFile(i_stream,this);\r
+               return;\r
+       }       \r
+       /**\r
+        * 4枚のラスタオブジェクトから、マーカーパターンを生成して格納します。\r
         * @param i_raster\r
-        * direction毎のパターンを格納したラスタ配列を指定します。\r
-        * ラスタは同一なサイズ、かつマーカーパターンと同じサイズである必要があります。\r
+        * パターンデータを格納したラスタオブジェクト配列を指定します。\r
+        * ラスタは同一な解像度であり、かつこのインスタンスと同じ解像度である必要があります。\r
         * 格納順は、パターンの右上が、1,2,3,4象限になる順番です。\r
         * @throws NyARException\r
         */\r
@@ -235,9 +267,11 @@ public class NyARCode
                return;\r
        }\r
        /**\r
-        * 1枚のラスタから、マーカーパターンを生成して格納します。\r
+        * 1枚のラスタオブジェクトから、マーカーパターンを生成して格納します。\r
+        * 残りの3枚のデータは、関数がi_rasterを回転させて求めます。\r
         * @param i_raster\r
-        * 基準となるラスタを指定します。ラスタの解像度は、ARマーカコードと同じである必要があります。\r
+        * パターンデータを格納したラスタオブジェクトを指定します。\r
+        * ラスタは、このインスタンスと同じ解像度である必要があります。\r
         * @throws NyARException\r
         */     \r
        public void setRaster(INyARRgbRaster i_raster) throws NyARException\r
@@ -249,16 +283,5 @@ public class NyARCode
                return;\r
        }\r
        \r
-       /**\r
-        * inputStreamから、パターンデータをロードします。\r
-        * ロードするパターンのサイズは、現在の値と同じである必要があります。\r
-        * @param i_stream\r
-        * @throws NyARException\r
-        */\r
-       public void loadARPatt(InputStream i_stream) throws NyARException\r
-       {\r
-               //ラスタにパターンをロードする。\r
-               NyARCodeFileReader.loadFromARToolKitFormFile(i_stream,this);\r
-               return;\r
-       }\r
+\r
 }\r
index 49da105..f627667 100644 (file)
 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
@@ -53,7 +52,8 @@ public class NyARMat
        protected int row;\r
 \r
        /**\r
-        * デフォルトコンストラクタは機能しません。\r
+        * デフォルトコンストラクタ。\r
+        * 機能しません。\r
         * @throws NyARException\r
         */\r
        protected NyARMat() throws NyARException\r
@@ -61,9 +61,12 @@ public class NyARMat
                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
@@ -77,6 +80,7 @@ public class NyARMat
        /**\r
         * 行列の列数を返します。\r
         * @return\r
+        * 行列の列数。\r
         */\r
        public int getClm()\r
        {\r
@@ -85,6 +89,7 @@ public class NyARMat
        /**\r
         * 行列の行数を返します。\r
         * @return\r
+        * 行列の列数\r
         */\r
        public int getRow()\r
        {\r
@@ -93,9 +98,11 @@ public class NyARMat
        \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
@@ -110,9 +117,6 @@ public class NyARMat
                this.row = i_row;\r
                return;\r
        }\r
-       \r
-       \r
-       \r
        /**\r
         * 行列同士の掛け算を実行します。\r
         * i_mat_aとi_mat_bの積を計算して、thisへ格納します。\r
@@ -146,6 +150,7 @@ public class NyARMat
         * 逆行列を計算して、thisへ格納します。\r
         * @return\r
         * 逆行列が計算できたかの、真偽値を返します。trueなら、逆行列が存在します。falseなら、逆行列はありません。\r
+        * 失敗すると、thisの内容は不定になります。\r
         * @throws NyARException\r
         */\r
        public boolean matrixSelfInv() throws NyARException\r
@@ -273,7 +278,10 @@ public class NyARMat
        }\r
        /**\r
         * 行列のバッファを返します。\r
+        * 返却値の有効期間に注意してください。\r
+        * この値の有効時間は、次にこのこのインスタンスの関数を実行するまでの間です。\r
         * @return\r
+        * 行列のバッファ\r
         */\r
        public double[][] getArray()\r
        {\r
@@ -282,13 +290,12 @@ public class NyARMat
 \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
@@ -305,9 +312,10 @@ public class NyARMat
        }\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
@@ -330,7 +338,7 @@ public class NyARMat
        /**\r
         * i_sourceの内容を、thisへコピーします。\r
         * @param i_source\r
-        * @return\r
+        * コピー元のインスタンスです。\r
         */\r
        public void matrixDup(NyARMat i_source) throws NyARException\r
        {\r
@@ -351,6 +359,7 @@ public class NyARMat
        /**\r
         * オブジェクトを複製します。\r
         * @return\r
+        * 複製したオブジェクト。\r
         * @throws NyARException\r
         */\r
        public NyARMat matrixAllocDup() throws NyARException\r
@@ -380,9 +389,8 @@ public class NyARMat
        /**\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
@@ -418,8 +426,9 @@ public class NyARMat
         * 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
@@ -466,9 +475,13 @@ public class NyARMat
        }\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
@@ -512,7 +525,9 @@ public class NyARMat
         * 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
@@ -549,8 +564,9 @@ public class NyARMat
 \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
@@ -684,9 +700,13 @@ public class NyARMat
         * 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
@@ -759,7 +779,9 @@ public class NyARMat
         * 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
@@ -830,8 +852,11 @@ public class NyARMat
         * 現在の行列に主成分分析を実行して、結果を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
@@ -884,10 +909,11 @@ public class NyARMat
         * 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
index a38a0a6..f419eac 100644 (file)
@@ -33,23 +33,37 @@ package jp.nyatla.nyartoolkit.core;
 import jp.nyatla.nyartoolkit.NyARException;\r
 \r
 \r
-\r
+/**\r
+ * このクラスは、ARToolKit由来のベクトル値計算関数を提供します。\r
+ * <p>memo:\r
+ * このクラスは、今後統合・削除する可能性があります。\r
+ * </p>\r
+ */\r
 public class NyARVec\r
 {\r
+       /** ベクトルの列数*/\r
        private int clm;\r
+       /** ベクトル値を格納する配列*/\r
+       private double[] v;\r
 \r
+\r
+       /**\r
+        * コンストラクタです。\r
+        * 列数を指定して、インスタンスを生成します。\r
+        * @param i_clm\r
+        * 列数です。\r
+        */\r
        public NyARVec(int i_clm)\r
        {\r
                v = new double[i_clm];\r
                clm = i_clm;\r
        }\r
 \r
-       private double[] v;\r
-\r
        /**\r
-        * i_clmサイズの列を格納できるように列サイズを変更します。 実行後、列の各値は不定になります。\r
-        * \r
+        * ベクトルのバッファサイズを、i_clmに十分になるように変更します。\r
+        * 実行後、列の各値は不定になります。\r
         * @param i_clm\r
+        * 新しい列数\r
         */\r
        public void realloc(int i_clm)\r
        {\r
@@ -62,26 +76,36 @@ public class NyARVec
                this.clm = i_clm;\r
        }\r
 \r
+       /**\r
+        * ベクトルの列数を返します。\r
+        * @return\r
+        * ベクトルの列数\r
+        */\r
        public int getClm()\r
        {\r
                return clm;\r
        }\r
 \r
+       /**\r
+        * ベクトル値を格納した配列の参照値を返します。\r
+        * @return\r
+        * 配列の参照値\r
+        */\r
        public double[] getArray()\r
        {\r
                return v;\r
        }\r
 \r
-\r
-\r
        /**\r
-        * arVecInnerproduct関数の代替品\r
-        * \r
-        * @param x\r
+        * arVecInnerproduct関数の同等品です。\r
+        * この関数は動作チェックをしておらず、機能しません。\r
+        * 詳細は不明です。\r
         * @param y\r
+        * 不明。\r
         * @param i_start\r
-        *            演算開始列(よくわからないけどarVecTridiagonalizeの呼び出し元でなんかしてる)\r
+        * 演算開始列(よくわからないけどarVecTridiagonalizeの呼び出し元でなんかしてる)\r
         * @return\r
+        * 不明。\r
         * @throws NyARException\r
         */\r
        public double vecInnerproduct(NyARVec y, int i_start) throws NyARException\r
@@ -102,12 +126,12 @@ public class NyARVec
        }\r
 \r
        /**\r
-        * double arVecHousehold関数の代替品\r
-        * \r
-        * @param x\r
+        * arVecHousehold関数の同等品です。\r
+        * 詳細は不明です。\r
         * @param i_start\r
-        *            演算開始列(よくわからないけどarVecTridiagonalizeの呼び出し元でなんかしてる)\r
+        * 演算開始列(よくわからないけどarVecTridiagonalizeの呼び出し元でなんかしてる)\r
         * @return\r
+        * 不明。\r
         * @throws NyARException\r
         */\r
        public double vecHousehold(int i_start) throws NyARException\r
@@ -135,10 +159,11 @@ public class NyARVec
        }\r
 \r
        /**\r
-        * ç\8f¾å\9c¨ã\83©ã\83\83ã\83\97ã\81\97ã\81¦ã\81\84ã\82\8bé\85\8då\88\97ã\82\92å\8f\96ã\82\8aå¤\96ã\81\97ã\81¦ã\80\81æ\96°ã\81\97ã\81\84é\85\8då\88\97ã\82\92ã\83©ã\83\83ã\83\97します。\r
-        * \r
-        * @param i_v\r
+        * ç\8f¾å\9c¨ã\83©ã\83\83ã\83\97ã\81\97ã\81¦ã\81\84ã\82\8bé\85\8då\88\97ã\82\92å\8f\96ã\82\8aå¤\96ã\81\97ã\81¦ã\80\81æ\96°ã\81\97ã\81\84é\85\8då\88\97ã\81¨ã\80\81å\88\97æ\95°ã\82\92ã\82»ã\83\83ã\83\88します。\r
+        * @param i_array\r
+        * 新しく設定する配列です。この配列は、thisが所有します。\r
         * @param i_clm\r
+        * 新しいVectorの列数です。\r
         */\r
        public void setNewArray(double[] i_array, int i_clm)\r
        {\r