com.nttdocomo.opt.ui.j3d
インタフェース Graphics3D


public interface Graphics3D

3Dグラフィックスを提供するインタフェースです。
3DをサポートするGraphics クラスは、 このインタフェースを実装しなければなりません。

端末によってサポートされていない場合があります。未サポートの場合、 メソッドが呼び出された時点でUnsupportedOperationExceptionを発生します。


メソッドの概要
 void drawFigure(Figure figure)
          フィギュアをクリッピング領域内に描画します。
 void enableLight(boolean b)
          光源対応処理の有効化/無効化を行います。
 void enableSemiTransparent(boolean flag)
          半透明処理の有効化/無効化を行います。
 void enableSphereMap(boolean b)
          環境マッピング処理の有効化/無効化を行います。
 void setAmbientLight(int intensity)
          環境光の強さを設定します。
 void setClipRect3D(int x, int y, int width, int height)
          キャンバス全体描画領域のうち3D描画のためのクリッピング領域を設定します。
 void setDirectionLight(Vector3D direction, int intensity)
          平行光源の強さと方向を設定します。
 void setScreenCenter(int cx, int cy)
          スクリーンの中心を設定します。
 void setScreenScale(int sx, int sy)
          視点座標からスクリーンへのスケールを設定します。
 void setSphereTexture(Texture texture)
          環境マッピング用のテクスチャを設定します。
 void setViewTrans(AffineTrans at)
          視点座標への変換行列を設定します。
 

メソッドの詳細

setViewTrans

public void setViewTrans(AffineTrans at)
視点座標への変換行列を設定します。
このメソッドでは引数で渡された変換行列の要素を内部でコピーするため、メソッドから戻った後に 変換行列を変更したりしても視点は移動しません。 初期値は、AffineTrans(4096,0,0,0, 0,4096,0,0, 0,0,4096,0)が設定されている状態です。
パラメータ:
at - 変換行列を指定します。

setScreenScale

public void setScreenScale(int sx,
                           int sy)
視点座標からスクリーンへのスケールを設定します。
視点座標からスクリーン座標に変換する際のスケールパラメータをセットします。
再度このメソッドを呼び出すまでパラメータは保持されます。初期値は(4096,4096)です。
パラメータ:
sx - X 方向のスケールを指定します。
sy - Y 方向のスケールを指定します。

setScreenCenter

public void setScreenCenter(int cx,
                            int cy)
スクリーンの中心を設定します。
視点座標からスクリーン座標に変換する際のスクリーン中心パラメータをセットします。視点座標における(0,0,0)がスクリーン上のこの座標に来るように描画されます。
再度このメソッドを呼び出すまでパラメータは保持されます。初期値は(0,0)です。
パラメータ:
cx - スクリーンの中心の X 座標を指定します。
cy - スクリーンの中心の Y 座標を指定します。

drawFigure

public void drawFigure(Figure figure)
フィギュアをクリッピング領域内に描画します。 このメソッドを呼び出した際に、テクスチャや光源処理、 視点などの各種パラメータをもとに実際の描画処理が行われます。
パラメータ:
figure - 描画するモデルオブジェクトを指定します。
例外:
java.lang.NullPointerException - 引数 figure が null の場合に発生します。
java.lang.RuntimeException - 描画に失敗した場合に発生します。
com.nttdocomo.ui.UIException - 引数figureのモデルにテクスチャが設定されていない場合に発生します(ILLEGAL_STATE)。

setSphereTexture

public void setSphereTexture(Texture texture)
環境マッピング用のテクスチャを設定します。
設定されたテクスチャは、球形環境マッピングの手法で描画されます。
パラメータ:
texture - テクスチャオブジェクトを指定します。 テクスチャオブジェトは環境マッピング用に生成されたものでなければなりません。
例外:
java.lang.IllegalArgumentException - 引数 texture が不正(モデルマッピング用に生成されたもの)な場合に発生します。
java.lang.NullPointerException - 引数 texture が null の場合に発生します。

enableLight

public void enableLight(boolean b)
光源対応処理の有効化/無効化を行います。デフォルトは無効です。
光源対応の各APIはこのメソッドの実行とは無関係に常時正常に実行可能です。
光源対応処理が無効の場合には、モデルにマッピングされたテクスチャの色が そのまま描画されます。
パラメータ:
b - 光源対応処理を有効にする場合は true を、無効にする場合は false を指定します。

enableSphereMap

public void enableSphereMap(boolean b)
環境マッピング処理の有効化/無効化を行います。デフォルトは無効です。
環境マッピング関係の各APIはこのメソッドの実行とは無関係に常時正常に実行可能です。 実際に環境マッピングが行われるためには、環境マッピング用のテクスチャ データを用意してsetSphereTexture()メソッドで設定するとともに、フィギュア データにおいても反射光(Specular)が有効となっている必要があります。
パラメータ:
b - 環境マッピング処理を有効にする場合は true を、無効にする場合は false を指定します。

setAmbientLight

public void setAmbientLight(int intensity)
環境光の強さを設定します。
光源対応処理が有効になっている場合、環境光は常に有効です。
デフォルトは強さ 0 です。
パラメータ:
intensity - 環境光の強さを指定します。 4096 を指定した時に 1.00 (100%) となります。
例外:
java.lang.IllegalArgumentException - 引数 intensity に負の値か、4096 より大きい値が指定された場合に発生します。

setDirectionLight

public void setDirectionLight(Vector3D direction,
                              int intensity)
平行光源の強さと方向を設定します。
光源対応処理が有効になっている場合、平行光源は常に有効です。
このメソッドでは方向ベクトルの要素を内部でコピーするため、メソッドから戻った後に 方向ベクトルを変更したりしても光源方向は変化しません。 デフォルトは方向(0,0,1)、強さ 4096 です。
パラメータ:
direction - 平行光源の方向を表す、視点座標系でのベクトルを指定します。
intensity - 平行光源の強さを指定します。 4096 を指定した時に 1.00 (100%) となります。
例外:
java.lang.NullPointerException - 引数 direction が null の場合に発生します。
java.lang.IllegalArgumentException - 引数 intensity に負の値か、4096 より大きい値が指定された場合に発生します。

enableSemiTransparent

public void enableSemiTransparent(boolean flag)
半透明処理の有効化/無効化を行います。デフォルトは無効です。
光源対応機能の有効/無効(enableLight(boolean))とは 無関係に半透明効果が得られます。
ただし、半透明効果を得るには、モデルデータ自体の「半透明属性」が有効 になっている必要があります。
パラメータ:
flag - 半透明処理を有効にする場合は true を、無効にする場合は false を指定します。

setClipRect3D

public void setClipRect3D(int x,
                          int y,
                          int width,
                          int height)
キャンバス全体描画領域のうち3D描画のためのクリッピング領域を設定します。
パラメータ:
x - クリッピング領域の矩形の左上の X 座標を指定します。
y - クリッピング領域の矩形の左上の Y 座標を指定します。
width - クリッピング領域の矩形の幅を指定します。
height - クリッピング領域の矩形の高さを指定します。


NTT DoCoMo,Inc.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

「iモード」、「iアプリ/アイアプリ」はNTTドコモの商標です。