\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<=n<=3の値が入ります。*/\r
public int artk_direction;\r
- /** 一致率*/\r
+ /** パターンの一致率です。0<<n<=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
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
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
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
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
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
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
}\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
\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
super(e);\r
}\r
/**\r
- * コンストラクタです。メッセージを指定して、例外を生成します。\r
+ * コンストラクタです。\r
+ * メッセージを指定して、例外を生成します。\r
* @param m\r
*/\r
public NyARException(String m)\r
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
throw new NyARException("Not Implement!");\r
}\r
/**\r
- * この関数は使用不能です。(別の関数を使用してください。)\r
+ * ライブラリ開発者向けの関数です。\r
+ * 関数が使用不能である事を、例外で通知します。\r
* @throws NyARException\r
*/\r
public static void unavailability() throws NyARException\r
+/* \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
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
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
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
}\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
private int _height;\r
\r
/**\r
- * directionを指定して、NyARMatchPattDeviationColorDataオブジェクトを取得します。\r
+ * 指定したdirection(方位)の{@link NyARMatchPattDeviationColorData}オブジェクトの参照値を返します。\r
* @param i_index\r
- * 0<=n<4の数値\r
+ * 方位インデクスの値を指定します。\r
+ * 範囲は、0<=n<=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<=n<=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
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
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
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
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
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
protected int row;\r
\r
/**\r
- * デフォルトコンストラクタは機能しません。\r
+ * デフォルトコンストラクタ。\r
+ * 機能しません。\r
* @throws NyARException\r
*/\r
protected NyARMat() throws NyARException\r
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
/**\r
* 行列の列数を返します。\r
* @return\r
+ * 行列の列数。\r
*/\r
public int getClm()\r
{\r
/**\r
* 行列の行数を返します。\r
* @return\r
+ * 行列の列数\r
*/\r
public int getRow()\r
{\r
\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
this.row = i_row;\r
return;\r
}\r
- \r
- \r
- \r
/**\r
* 行列同士の掛け算を実行します。\r
* i_mat_aとi_mat_bの積を計算して、thisへ格納します。\r
* 逆行列を計算して、thisへ格納します。\r
* @return\r
* 逆行列が計算できたかの、真偽値を返します。trueなら、逆行列が存在します。falseなら、逆行列はありません。\r
+ * 失敗すると、thisの内容は不定になります。\r
* @throws NyARException\r
*/\r
public boolean matrixSelfInv() throws NyARException\r
}\r
/**\r
* 行列のバッファを返します。\r
+ * 返却値の有効期間に注意してください。\r
+ * この値の有効時間は、次にこのこのインスタンスの関数を実行するまでの間です。\r
* @return\r
+ * 行列のバッファ\r
*/\r
public double[][] getArray()\r
{\r
\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
}\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
/**\r
* i_sourceの内容を、thisへコピーします。\r
* @param i_source\r
- * @return\r
+ * コピー元のインスタンスです。\r
*/\r
public void matrixDup(NyARMat i_source) throws NyARException\r
{\r
/**\r
* オブジェクトを複製します。\r
* @return\r
+ * 複製したオブジェクト。\r
* @throws NyARException\r
*/\r
public NyARMat matrixAllocDup() throws NyARException\r
/**\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
* 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
}\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
* 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
\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
* 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
* 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
* 現在の行列に主成分分析を実行して、結果を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
* 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
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
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
}\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
}\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