* この関数は、行列の回転成分から、ZXY系の角度値を計算します。\r
* @param o_out\r
* 角度値を受け取るオブジェクトです。\r
- * 角度値の範囲は、0-PIです。\r
+ * 角度値の範囲は、0-PI(要確認)です。\r
*/\r
public final void getZXYAngle(NyARDoublePoint3d o_out)\r
{\r
import jp.nyatla.nyartoolkit.jogl.utils.NyARGLUtil;\r
\r
/**\r
- * OpenGLに特化したNyARRealityクラスです。\r
- * @author nyatla\r
+ * このクラスは、OpenGLに特化した{@link NyARReality}クラスです。\r
+ * OpenGL形式の値をそのまま扱う関数を定義しています。\r
*/\r
public class NyARRealityGl extends NyARReality\r
{\r
private double[] _gl_frustum_rh=new double[16];\r
/**\r
- * ARToolKitスタイルのModelView行列を、OpenGLスタイルのモデルビュー行列に変換します。\r
+ * この関数は、 ARToolKitスタイルのModelView行列を、OpenGLスタイルのモデルビュー行列に変換します。\r
* @param i_ny_style_mat\r
+ * NyARToolkitスタイルの行列を指定します。\r
* @param o_gl_style_mat\r
+ * OpenGL形式の行列を受け取る配列を指定します。16要素である必要があります。\r
*/\r
public static void toGLViewMat(NyARDoubleMatrix44 i_ny_style_mat,double[] o_gl_style_mat)\r
{\r
NyARGLUtil.toCameraViewRH(i_ny_style_mat, 1, o_gl_style_mat);\r
}\r
- \r
+ /**\r
+ * コンストラクタです。\r
+ * カメラパラメータ、視錐体パラメータを元に、インスタンスを作成します。\r
+ * @param i_param\r
+ * カメラパラメータを指定します。\r
+ * @param i_near\r
+ * 視錐体のnear-pointをmm単位で指定します。\r
+ * 標準値は{@link #FRASTRAM_ARTK_NEAR}です。\r
+ * @param i_far\r
+ * 視錐体のfar-pointをmm単位で指定します。\r
+ * 標準値は{@link #FRASTRAM_ARTK_FAR}です。\r
+ * @param i_max_known_target\r
+ * KnownステータスのRTターゲットの最大数を指定します。\r
+ * @param i_max_unknown_target\r
+ * UnKnownステータスのRTターゲットの最大数を指定します。\r
+ */\r
public NyARRealityGl(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target) throws NyARException\r
{\r
super(i_param,i_near,i_far,i_max_known_target,i_max_unknown_target);\r
this._frustum.refMatrix().getValueT(this._gl_frustum_rh);\r
}\r
/**\r
- * 透視投影行列と視錐体パラメータを元に、インスタンスを作成します。\r
- * この関数は、樽型歪み矯正を外部で行うときに使います。\r
+ * この関数は、透視投影行列と視錐体パラメータを元に、インスタンスを作成します。\r
+ * 初期状態のインスタンスを生成します。\r
+ * この関数は、i_prjmatにnullを指定することで、樽型歪み矯正を行わないインスタンスを生成できます。\r
* @param i_prjmat\r
- * ARToolKitスタイルのカメラパラメータです。通常は{@link NyARParam#getPerspectiveProjectionMatrix()}から得られた値を使います。\r
- * @param i_screen_size\r
- * スクリーン(入力画像)のサイズです。通常は{@link NyARParam#getScreenSize()}から得られた値を使います。\r
+ * ARToolKit形式の射影変換パラメータを指定します。\r
+ * @param i_screen\r
+ * スクリーン(入力画像)のサイズを指定します。\r
* @param i_near\r
- * 視錐体のnear-pointをmm単位で指定します。\r
- * default値は{@link #FRASTRAM_ARTK_NEAR}です。\r
+ * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照\r
* @param i_far\r
- * 視錐体のfar-pointをmm単位で指定します。\r
- * default値は{@link #FRASTRAM_ARTK_FAR}です。\r
+ * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照\r
+ * @param i_dist_factor\r
+ * 樽型歪み矯正オブジェクトを指定します。歪み矯正が不要な時は、nullを指定します。\r
* @param i_max_known_target\r
+ * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照\r
* @param i_max_unknown_target\r
+ * {@link #NyARReality(NyARParam i_param,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target)}を参照\r
* @throws NyARException\r
*/\r
public NyARRealityGl(NyARPerspectiveProjectionMatrix i_prjmat,NyARIntSize i_screen_size,double i_near,double i_far,int i_max_known_target,int i_max_unknown_target) throws NyARException\r
\r
private double[] _temp=new double[16];\r
/**\r
- * NyARToolKitの姿勢変換行列をOpenGLスタックへロードします。\r
- * @throws NyARException \r
+ * この関数は、NyARToolKitの姿勢変換行列をOpenGL行列スタックへロードします。\r
+ * @param i_gl\r
+ * OpenGLのインスタンス\r
+ * @param i_mat\r
+ * NyARToolkit形式の姿勢変換行列\r
+ * @throws NyARException\r
*/\r
public void glLoadModelViewMatrix(GL i_gl,NyARDoubleMatrix44 i_mat) throws NyARException\r
{\r
}\r
\r
/**\r
- * projection行列をOpenGLの行列スタックへロードします。\r
+ * この関数は、NyARToolKitの射影変換行列をOpenGL行列スタックへロードします。\r
+ * @param i_gl\r
+ * OpenGLのインスタンス\r
*/\r
public void glLoadCameraFrustum(GL i_gl)\r
{\r
return;\r
}\r
/**\r
- * 現在のViewPortに、i_rtsourceの内容を描画します。\r
+ * この関数は、現在のViewPortに、i_rtsourceの元画像の内容を描画します。\r
+ * 背景画像の描画に使います。\r
* @param i_gl\r
* OpenGLインスタンスを指定します。\r
- * @param i_raster\r
+ * @param i_rtsource\r
+ * 描画するRealitySource\r
* @throws NyARException\r
*/\r
public void glDrawRealitySource(GL i_gl,NyARRealitySource i_rtsource) throws NyARException\r
import com.sun.opengl.util.j2d.TextRenderer;\r
\r
/**\r
- * OpenGL向けの描画関数を提供します。\r
+ * このクラスには、アプリケーションの為のOpenGL用のヘルパー関数を定義します。\r
+ * NyARToolKitを使ったアプリケーションを実装するのに役立ちます。\r
+ * ほとんどの関数はstatic宣言です。このクラスのインスタンスを作る必要はありません。\r
+ * \r
+ *\r
*/\r
public class NyARGLDrawUtil\r
{\r
private static TextRenderer _tr=new TextRenderer(new Font("SansSerif", Font.PLAIN, 10));\r
/**\r
- * 立方体を描画します。\r
+ * この関数は、指定サイズの立方体を現在のビューポートへ描画します。\r
+ * ARToolKitのサンプルで使われているカラーキューブを描画します。\r
* @param i_gl\r
- * OpenGLインスタンス\r
+ * OpenGLã\81®ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹\r
* @param i_size_per_mm\r
- * 立方体の辺の長さを[mm単位]\r
+ * 立方体の辺の長さ。[mm単位]\r
+ * ARシステムをmmオーダーで構築していない場合は、別単位になります。\r
*/\r
public static void drawColorCube(GL i_gl,float i_size_per_mm)\r
{\r
i_gl.glCallList(polyList); // Draw the cube.\r
}\r
/**\r
- * フォントカラーをセットします。\r
+ * この関数は、{@link NyARGLDrawUtil}の描画する文字列の、フォントカラーを設定します。\r
+ * フォントカラーはOpenGL固有のものではなく、{@link NyARGLDrawUtil}固有のものです。\r
* @param i_c\r
+ * 設定する色。\r
*/\r
public static void setFontColor(Color i_c)\r
{\r
NyARGLDrawUtil._tr.setColor(i_c);\r
}\r
/**\r
- * フォントスタイルをセットします。\r
+ * この関数は、{@link NyARGLDrawUtil}の描画する文字列の、フォントスタイルを設定します。\r
+ * フォントスタイルはOpenGL固有のものではなく、{@link NyARGLDrawUtil}固有のものです。\r
* @param i_font_name\r
+ * フォントの名前を指定します。デフォルト値は、"SansSerif"です。\r
* @param i_font_style\r
+ * フォントスタイルを指定します。デフォルト値は、{@link Font#PLAIN}です。\r
* @param i_size\r
+ * フォントサイズを指定します。デフォルト値は、10です。\r
*/\r
public static void setFontStyle(String i_font_name,int i_font_style,int i_size)\r
{\r
NyARGLDrawUtil._tr=new TextRenderer(new Font(i_font_name,i_font_style, i_size));\r
}\r
/**\r
- * 現在のフォントで、文字列を描画します。\r
+ * この関数は、文字列を描画します。\r
+ * この関数は、ちらつきが発生したり、あまり品質が良くありません。品質を求められる環境では、別途実装をして下さい。\r
* @param i_str\r
+ * 描画する文字列。\r
* @param i_scale\r
+ * 文字列のスケール値。\r
*/\r
public static void drawText(String i_str,float i_scale)\r
{\r
return;\r
}\r
/**\r
- * INyARRasterの内容を現在のビューポートへ描画します。\r
+ * この関数は、{@link INyARRaster}の内容を、現在のビューポートへ描画します。\r
+ * カメラ画像の背景を描画するのに使用できます。\r
* @param i_gl\r
+ * OpenGLのインスタンス\r
* @param i_raster\r
+ * 描画するラスタオブジェクト。何れかのバッファ形式である必要があります。\r
+ * <ol>\r
+ * <li>{@link NyARBufferType#BYTE1D_B8G8R8_24}\r
+ * <li>{@link NyARBufferType#BYTE1D_R8G8B8_24}\r
+ * <li>{@link NyARBufferType#BYTE1D_B8G8R8X8_32}\r
+ * </ol>\r
* @param i_zoom\r
* @throws NyARException\r
*/\r
}\r
}\r
/**\r
- * スクリーン座標系をOpenGLにロードします。この関数は、PROJECTIONとMODELVIEWスタックをそれぞれ1づつpushします。\r
- * スクリーン座標系を使用し終わったら、endScreenCoordinateSystemを呼び出してください。\r
+ * この関数は、スクリーン座標系をOpenGLにロードします。\r
+ * スクリーンに二次元系の情報をそのまま書きこむときに使います。\r
+ * この関数は、PROJECTIONとMODELVIEWスタックをそれぞれ1づつpushします。\r
+ * スクリーン座標系を使用し終わったら、{@link endScreenCoordinateSystem}を必ず呼び出してください。\r
* @param i_gl\r
+ * OpenGLのインスタンス\r
* @param i_width\r
+ * スクリーンの幅\r
* @param i_height\r
+ * スクリーンの高さ\r
* @param i_revers_y_direction\r
- * Y軸ã\81®å\8f\8d転ã\83\95ã\83©ã\82°ã\81§ã\81\99ã\80\82trueã\81ªã\82\89ã\81°top->bottomã\80\81falseã\81ªã\82\89ã\81°bottom->topæ\96¹å\90\91ã\81«ã\81ªã\82\8aã\81¾ã\81\99ã\80\82\r
+ * Y軸の反転フラグ。trueならばtop->bottom、falseならばbottom->top方向になります。\r
*/\r
public static void beginScreenCoordinateSystem(GL i_gl,int i_width,int i_height,boolean i_revers_y_direction)\r
{\r
return;\r
}\r
/**\r
- * ロードしたスクリーン座標系を元に戻します。{@link #beginScreenCoordinateSystem}の後に呼び出してください。\r
+ * この関数は、ロードしたスクリーン座標系を元に戻します。\r
+ * {@link #beginScreenCoordinateSystem}の後に呼び出してください。\r
* @param i_gl\r
+ * OpenGLのインスタンス\r
*/\r
public static void endScreenCoordinateSystem(GL i_gl)\r
{\r
import jp.nyatla.nyartoolkit.core.types.*;\r
import jp.nyatla.nyartoolkit.core.types.matrix.*;\r
/**\r
- * OpenGL向けの形式変換変換関数を提供します。\r
+ * このクラスは、NyARToolkitのデータ型と、OpenGLデータ型を変換する関数を定義します。\r
* 描画系関数は{@link NyARGLDrawUtil}を参照してください。\r
*/\r
public class NyARGLUtil\r
{\r
/**\r
- * NyARToolKit 2.53以前のコードと互換性を持たせるためのスケール値。{@link #toCameraFrustumRH}のi_scaleに設定することで、\r
- * 以前のバージョンの数値系と互換性を保ちます。\r
+ * NyARToolKit 2.53以前のコードと互換性を持たせるためのスケール値。\r
+ * {@link #toCameraFrustumRH}のi_scaleに設定することで、以前のバージョンの数値系と互換性を保ちます。\r
*/\r
public final static double SCALE_FACTOR_toCameraFrustumRH_NYAR2=1.0;\r
/**\r
- * NyARToolKit 2.53以前のコードと互換性を持たせるためのスケール値。{@link #toCameraViewRH}のi_scaleに設定することで、\r
- * 以前のバージョンの数値系と互換性を保ちます。\r
+ * NyARToolKit 2.53以前のコードと互換性を持たせるためのスケール値。\r
+ * {@link #toCameraViewRH}のi_scaleに設定することで、以前のバージョンの数値系と互換性を保ちます。\r
*/\r
public final static double SCALE_FACTOR_toCameraViewRH_NYAR2=1/0.025;\r
\r
- private NyARGLUtil()\r
+ private NyARGLUtil()\r
{//生成の禁止\r
} \r
\r
\r
/**\r
- * ARToolKitスタイルのカメラパラメータから、 CameraFrustamを計算します。\r
+ * この関数は、ARToolKitスタイルのカメラパラメータから、 CameraFrustamを計算します。\r
+ * カメラパラメータの要素のうち、ProjectionMatrix成分のみを使います。\r
* @param i_arparam\r
+ * ARToolKitスタイルのカメラパラメータ。\r
* @param i_scale\r
* スケール値を指定します。1=1mmです。10ならば1=1cm,1000ならば1=1mです。\r
* 2.53以前のNyARToolkitと互換性を持たせるときは、{@link #SCALE_FACTOR_toCameraFrustumRH_NYAR2}を指定してください。\r
* @param i_far\r
* 視錐体のfarPointを指定します。単位は、i_scaleに設定した値で決まります。\r
* @param o_gl_projection\r
+ * OpenGLスタイルのProjectionMatrixです。double[16]を指定します。\r
*/\r
public static void toCameraFrustumRH(NyARParam i_arparam,double i_scale,double i_near,double i_far,double[] o_gl_projection)\r
{\r
return;\r
}\r
/**\r
- * ARToolKitスタイルのProjectionMatrixから、 CameraFrustamを計算します。\r
+ * この関数は、ARToolKitスタイルのProjectionMatrixから、 CameraFrustamを計算します。\r
* @param i_promat\r
* @param i_size\r
* スクリーンサイズを指定します。\r
return;\r
}\r
/**\r
- * NyARTransMatResultをOpenGLの行列へ変換します。\r
+ * この関数は、NyARTransMatResultをOpenGLのModelView行列へ変換します。\r
* @param mat\r
* 変換元の行列\r
* @param i_scale\r
* 座標系のスケール値を指定します。1=1mmです。10ならば1=1cm,1000ならば1=1mです。\r
* 2.53以前のNyARToolkitと互換性を持たせるときは、{@link #SCALE_FACTOR_toCameraViewRH_NYAR2}を指定してください。\r
* @param o_gl_result\r
+ * OpenGLスタイルのProjectionMatrixです。double[16]を指定します。\r
*/\r
public static void toCameraViewRH(NyARDoubleMatrix44 mat,double i_scale, double[] o_gl_result)\r
{\r