jp.nyatla.nyar4psg
クラス NyARPsgBaseClass

java.lang.Object
  上位を拡張 jp.nyatla.nyar4psg.NyARPsgBaseClass
直系の既知のサブクラス:
MultiMarker, SingleMarkerBaseClass

public abstract class NyARPsgBaseClass
extends Object

このクラスは、NyARToolkit for Processingのベースクラスです。 ARToolkit座標系の環境定数、環境設定機能を継承クラスに対して提供します。


フィールドの概要
protected  NyAR4PsgConfig _config
          ARToolkitパラメータのインスタンスです。
protected  PMatrix3D _ps_background_mv
          バックグラウンド用のModelviewMatrixです。
protected  PApplet _ref_papplet
          参照するAppletのインスタンスです。
 float FRUSTUM_DEFAULT_FAR_CLIP
          farクリップ面のデフォルト値です。
 float FRUSTUM_DEFAULT_NEAR_CLIP
          nearクリップ面のデフォルト値です。
static String VERSION
          バージョン文字列です。
 
コンストラクタの概要
protected NyARPsgBaseClass()
          コンストラクタです。
 
メソッドの概要
 void drawBackground(PImage i_img)
          この関数は、PImageをバックグラウンドへ描画します。
abstract  PMatrix3D getProjectionMatrix()
          [readonly]この関数は、Processing形式のProjectionMatrixの参照値を返します。
abstract  PMatrix3D getProjectionMatrix(PMatrix3D i_buf)
          この関数は、ProjectionMatrixをi_bufへ複製して返します。
protected  void initInstance(PApplet parent, NyAR4PsgConfig i_config)
           
protected static void matResult2GLArray(NyARDoubleMatrix44 i_src, double[] o_gl_array)
           
protected static void matResult2PMatrix3D(NyARDoubleMatrix44 i_src, int i_mode, PMatrix3D o_pmatrix)
          変換行列をProcessingのMatrixへ変換します。
protected static void nyarMat2PsMat(NyARDoubleMatrix44 i_src, PMatrix3D i_dst)
           
protected static void PMatrix2GLProjection(PMatrix3D i_in, double[] o_out)
           
protected static void PMatrix2GLProjection(PMatrix3D i_in, float[] o_out)
           
 void setARClipping(float i_near, float i_far)
          この関数は、視錐台のクリップ面を設定します。
 void setARPerspective()
          この関数は、ARToolKit準拠のProjectionMatrixをProcessingにセットします。
 void setBackgroundOrtho(int i_width, int i_height)
          この関数は、正射影行列をProcessingへセットします。
 void setPerspective(PMatrix3D i_projection)
          この関数は、ProjectionMatrixをProcessingにセットします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FRUSTUM_DEFAULT_NEAR_CLIP

public final float FRUSTUM_DEFAULT_NEAR_CLIP
nearクリップ面のデフォルト値です。

関連項目:
定数フィールド値

FRUSTUM_DEFAULT_FAR_CLIP

public final float FRUSTUM_DEFAULT_FAR_CLIP
farクリップ面のデフォルト値です。

関連項目:
定数フィールド値

VERSION

public static final String VERSION
バージョン文字列です。 NyAR4psgのバージョン情報を示します。

関連項目:
定数フィールド値

_ref_papplet

protected PApplet _ref_papplet
参照するAppletのインスタンスです。


_ps_background_mv

protected final PMatrix3D _ps_background_mv
バックグラウンド用のModelviewMatrixです。


_config

protected NyAR4PsgConfig _config
ARToolkitパラメータのインスタンスです。

コンストラクタの詳細

NyARPsgBaseClass

protected NyARPsgBaseClass()
コンストラクタです。

メソッドの詳細

initInstance

protected void initInstance(PApplet parent,
                            NyAR4PsgConfig i_config)
                     throws NyARException
例外:
NyARException

getProjectionMatrix

public abstract PMatrix3D getProjectionMatrix()
[readonly]この関数は、Processing形式のProjectionMatrixの参照値を返します。

戻り値:

getProjectionMatrix

public abstract PMatrix3D getProjectionMatrix(PMatrix3D i_buf)
この関数は、ProjectionMatrixをi_bufへ複製して返します。

戻り値:
ProjectionMatrixです。

drawBackground

public void drawBackground(PImage i_img)
この関数は、PImageをバックグラウンドへ描画します。PImageはfarclip面+1の部分に描画します。
この関数は、次のコードと等価です。

:
PMatrix3D om=new PMatrix3D(((PGraphics3D)g).projection);
setBackgroundOrtho(img.width,img.height)
pushMatrix();
resetMatrix();
translate(0,0,-(far*0.99f));
image(img,-width/2,-height/2);
popMatrix();
setPerspective(om);
:

この関数は、PrjectionMatrixとModelViewMatrixを復帰するため、若干のオーバヘッドがあります。 高速な処理が必要な場合には、展開してください。

パラメータ:
i_img - 背景画像を指定します。

setARClipping

public void setARClipping(float i_near,
                          float i_far)
この関数は、視錐台のクリップ面を設定します。この値のデフォルト値は、FRUSTUM_DEFAULT_NEAR_CLIPFRUSTUM_DEFAULT_FAR_CLIPです。 設定値は、次回のsetARPerspective()から影響を及ぼします。現在の設定値にただちに影響を及ぼすものではありません。

パラメータ:
i_near - NearPlaneの値を設定します。単位は[mm]です。
i_far - FarPlaneの値を設定します。単位は[mm]です。

setBackgroundOrtho

public void setBackgroundOrtho(int i_width,
                               int i_height)
この関数は、正射影行列をProcessingへセットします。 画面の中心が0,0にセットされます。 nearクリップには、setARClipping(float, float)でセットしたクリップ面を指定します。  farクリップには、setARClipping(float, float)でセットしたクリップ面+1を指定します。
この関数は、次のコードと等価です。

:
//for 1.x
ortho(-i_width/2, i_width/2,-i_height/2,i_height/2,near,far+1);
//for 2.x
ortho(0,i_width,0,i_height,near,far+1);
:

パラメータ:
i_width - 幅を指定します。
i_height - 高さを指定します。

setARPerspective

public void setARPerspective()
この関数は、ARToolKit準拠のProjectionMatrixをProcessingにセットします。 関数を実行すると、ProcessingのProjectionMatrixがARToolKitのカメラパラメータのものに変わり、映像にマッチした描画ができるようになります。 ProcessingのデフォルトFrustumに戻すときは、PGraphics3D.perspective()を使います。 Frustumの有効期間は、次にPGraphics3D.perspective()PGraphics3D.perspective()をコールするまでです。

Version 1.1.0より、古いprojection matrixを返さなくなりました。古いprojection matrixが必要な時は、PGraphics3D.projectionを複製して保存して下さい。


setPerspective

public void setPerspective(PMatrix3D i_projection)
この関数は、ProjectionMatrixをProcessingにセットします。

パラメータ:
i_projection - 設定するProjectionMatrixを指定します。

Processing/1.3になったら、PApplet.matrixMode(int)使ってきちんと使えるようになると思う。 今は無理なので、frustum経由

Version 1.1.0より、古いprojection matrixを返さなくなりました。古いprojection matrixが必要な時は、PGraphics3D.projectionを複製して保存して下さい。


PMatrix2GLProjection

protected static void PMatrix2GLProjection(PMatrix3D i_in,
                                           float[] o_out)

PMatrix2GLProjection

protected static void PMatrix2GLProjection(PMatrix3D i_in,
                                           double[] o_out)

nyarMat2PsMat

protected static void nyarMat2PsMat(NyARDoubleMatrix44 i_src,
                                    PMatrix3D i_dst)

matResult2PMatrix3D

protected static void matResult2PMatrix3D(NyARDoubleMatrix44 i_src,
                                          int i_mode,
                                          PMatrix3D o_pmatrix)
変換行列をProcessingのMatrixへ変換します。

パラメータ:
i_src -
i_mode -
o_pmatrix -

matResult2GLArray

protected static void matResult2GLArray(NyARDoubleMatrix44 i_src,
                                        double[] o_gl_array)


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