パッケージ | クラス | 使用 | 非推奨 API
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## jp.nyatla.nyar4psg
クラス SingleMarkerBaseClass

    java.lang.Object
      jp.nyatla.nyar4psg.NyARPsgBaseClass
          jp.nyatla.nyar4psg.SingleMarkerBaseClass

直系の既知のサブクラス:
  NyARBoard, SingleARTKMarker, SingleNyIdMarker

     class SingleMarkerBaseClass

extends NyARPsgBaseClass

単一マーカ認識ユースケースのベースクラス。同時に一つの座標変換行列を提供します。 座標変換行列の管理関数とプロパティ機能を提供します。

フィールドの概要
`PVector` | `angle` 推奨されていません。 この変数は互換性の為に残されています。`getMarkerMatrix()`で得られる値から計算してください。
`int[][]` | `pos2d` 推奨されていません。 この変数は互換性の為に残されています。`getMarkerVertex2D()`の値を使用してください。
`double[]` | `projection` 推奨されていません。 この変数は互換性の為に残されています。`NyARPsgBaseClass.getProjectionMatrix()`で得られる値を使用してください。
`PVector` | `trans` 推奨されていません。 この変数は互換性の為に残されています。`getMarkerMatrix()`で得られる値から計算してください。
`double[]` | `transmat` 推奨されていません。 この変数は互換性の為に残されています。`getMarkerMatrix()`で得られる値を使用してください。

クラス jp.nyatla.nyar4psg.NyARPsgBaseClass から継承されたフィールド
`_ar_param, _config, _frustum, _preader, _ps_background_mv, _ps_projection, _ref_papplet, _src_raster, FRUSTUM_DEFAULT_FAR_CLIP, FRUSTUM_DEFAULT_NEAR_CLIP, VERSION`

コンストラクタの概要
`protected` | `SingleMarkerBaseClass()`

メソッドの概要
`void` | `beginTransform()` この関数は、ProcessingのModelviewとProjectionをマーカ平面にセットします。
`void` | `beginTransform(PGraphics3D i_pgl)` 推奨されていません。
`void` | `endTransform()` `beginTransform(PGraphics3D)`でセットしたProjectionとModelViewを元に戻します。
`PMatrix3D` | `getMarkerMatrix()` この関数は、マーカの座標変換行列を返します。
`PVector[]` | `getMarkerVertex2D()` この関数は、マーカのスクリーン上の4頂点を返します。
`protected void` | `initInstance(PApplet parent, String i_cparam_file, int i_width, int i_height, NyAR4PsgConfig i_config)`
`PImage` | `pickupMarkerImage(int i_x1, int i_y1, int i_x2, int i_y2, int i_x3, int i_y3, int i_x4, int i_y4, int i_out_w_pix, int i_out_h_pix)` この関数は、マーカの画像のXY平面上の4頂点でかこまれた領域から、画像を取得します。
`PImage` | `pickupRectMarkerImage(int i_l, int i_t, int i_w, int i_h, int i_out_w_pix, int i_out_h_pix)` この関数は、マーカのXY平面上の矩形領域から、画像を取得します。
`PVector` | `screen2MarkerCoordSystem(int i_x, int i_y)` この関数は、スクリーン座標を、idで指定したマーカ平面座標へ変換して返します。
`protected void` | `updateTransmat(NyARSquare i_square, NyARTransMatResult i_src)`

クラス jp.nyatla.nyar4psg.NyARPsgBaseClass から継承されたメソッド
`drawBackground, getProjectionMatrix, matResult2GLArray, matResult2PMatrix3D, pickupMarkerImage, PMatrix2GLProjection, PMatrix2GLProjection, screen2MarkerCoordSystem, setARClipping, setARPerspective, setBackgroundOrtho, setPerspective`

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

フィールドの詳細

### angle

    public final PVector angle

  推奨されていません。 この変数は互換性の為に残されています。`getMarkerMatrix()`で得られる値から計算してください。
  [read only]マーカのx,y,zの傾き角度です。 この角度は、ARToolKit座標系での値です。

### trans

    public final PVector trans

  推奨されていません。 この変数は互換性の為に残されています。`getMarkerMatrix()`で得られる値から計算してください。
  [read only]マーカのx,y,zの平行移動量です。 この角度は、ARToolKit座標系での値になります。

### pos2d

    public final int[][] pos2d

  推奨されていません。 この変数は互換性の為に残されています。`getMarkerVertex2D()`の値を使用してください。
  [read only]検出したマーカの4隅の２次元画像上の位置です。

### transmat

    public final double[] transmat

  推奨されていません。 この変数は互換性の為に残されています。`getMarkerMatrix()`で得られる値を使用してください。
  [read only]検出したマーカの変換行列です。 この角度は、ARToolKit座標系での値になります。

### projection

    public final double[] projection

  推奨されていません。 この変数は互換性の為に残されています。`NyARPsgBaseClass.getProjectionMatrix()`で得られる値を使用してください。
  [read only] OpenGLスタイルのProjectionMatrixです。

コンストラクタの詳細

### SingleMarkerBaseClass

    protected SingleMarkerBaseClass()

メソッドの詳細

### getMarkerMatrix

    public PMatrix3D getMarkerMatrix()

  この関数は、マーカの座標変換行列を返します。 返却する行列はProcessing座標系です。

  戻り値:

### getMarkerVertex2D

    public PVector[] getMarkerVertex2D()

  この関数は、マーカのスクリーン上の4頂点を返します。

  戻り値:

### beginTransform

    public void beginTransform(PGraphics3D i_pgl)

  推奨されていません。

  この関数は互換性の為に残されています。 `beginTransform()`を使ってください。

  パラメータ:
    `i_pgl` - 通常は、`PApplet#g`をキャストして指定します。

### beginTransform

    public void beginTransform()

  この関数は、ProcessingのModelviewとProjectionをマーカ平面にセットします。 この関数は、必ず`endTransform()`とペアで使います。 関数を実行すると、現在のModelView行列とProjection行列がインスタンスに保存され、新しい行列がセットされます。 これらを復帰するには、`endTransform()`を使います。
  この関数は、次のコードと等価です。

  :
  PMatrix3D prev_mat=new PMatrix3D(((PGraphics3D)g).projection); setARPerspective();//prev_matは現在の行列退避用。
  pushMatrix();
  setMatrix(ar.getMarkerMatrix());
  :

### endTransform

    public void endTransform()

  `beginTransform(PGraphics3D)`でセットしたProjectionとModelViewを元に戻します。 この関数は、必ず`beginTransform(PGraphics3D)`とペアで使います。
  この関数は、次のコードと等価です。

  :
  setPerspective(prev_mat);//prev_matはsetARPerspectiveで退避した行列。
  popMatrix();
  setMatrix(ar.getMarkerMatrix());
  :

### screen2MarkerCoordSystem

    public PVector screen2MarkerCoordSystem(int i_x,
                                            int i_y)

  この関数は、スクリーン座標を、idで指定したマーカ平面座標へ変換して返します。

  パラメータ:
    `i_x` - スクリーン座標を指定します。
    `i_y` - スクリーン座標を指定します。
  戻り値:
    マーカ平面上の座標点です。

### pickupMarkerImage

    public PImage pickupMarkerImage(int i_x1,
                                    int i_y1,
                                    int i_x2,
                                    int i_y2,
                                    int i_x3,
                                    int i_y3,
                                    int i_x4,
                                    int i_y4,
                                    int i_out_w_pix,
                                    int i_out_h_pix)

  この関数は、マーカの画像のXY平面上の4頂点でかこまれた領域から、画像を取得します。 取得元画像には、最後に`#detect`関数に入力した画像を使います。 座標点は、[mm]単位です。出力解像度はo_outの解像度に伸縮します。 座標点の指定順序は、右手系`#CS_RIGHT_HAND`なら右上から時計回りです。 座標点の指定順序は、左手系`#CS_LEFT_HAND`なら左上から時計回りです。

  パラメータ:
    `i_x1` - 頂点座標1です。
    `i_y1` - 頂点座標1です。
    `i_x2` - 頂点座標2です。
    `i_y2` - 頂点座標2です。
    `i_x3` - 頂点座標3です。
    `i_y3` - 頂点座標3です。
    `i_x4` - 頂点座標4です。
    `i_y4` - 頂点座標4です。
    `i_out_w_pix` - 出力画像のピクセル幅です。
    `i_out_h_pix` - 出力画像のピクセル高さです。
  戻り値:
    取得したパターンを返します。

### pickupRectMarkerImage

    public PImage pickupRectMarkerImage(int i_l,
                                        int i_t,
                                        int i_w,
                                        int i_h,
                                        int i_out_w_pix,
                                        int i_out_h_pix)

  この関数は、マーカのXY平面上の矩形領域から、画像を取得します。 座標点は、[mm]単位です。出力は、o_outの解像度に伸縮します。

  パラメータ:
    `i_l` - 左上の点を指定します。
    `i_t` - 左上の点を指定します。
    `i_w` - 矩形の幅を指定します。
    `i_h` - 矩形の高さを指定します。
    `i_out_w_pix` - 出力画像のピクセル幅です。
    `i_out_h_pix` - 出力画像のピクセル高さです。
  戻り値:
    取得したパターンを返します。

### updateTransmat

    protected void updateTransmat(NyARSquare i_square,
                                  NyARTransMatResult i_src)

### initInstance

    protected void initInstance(PApplet parent,
                                String i_cparam_file,
                                int i_width,
                                int i_height,
                                NyAR4PsgConfig i_config)
                         throws NyARException

  オーバーライド:
    クラス `NyARPsgBaseClass` 内の `initInstance`
  例外:
    `NyARException`

パッケージ | クラス | 使用 | 非推奨 API
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

NyAR4psgは、NyARToolkit projectで開発している、NyARToolKitのProcessingフロントエンドです。ソースコードは、sorceforge.jpNyARToolkitからダウンロードできます。
Copyright 2011 NyARToolkit project. All rights reserved.