|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.ui.graphics3d.Object3D
com.nttdocomo.ui.graphics3d.DrawableObject3D
描画対象として扱われる
具体的には、レンダリング機能である
また、レンダリング時に利用される描画用パラメータのうちで、
ポリゴン等のプリミティブ図形が共通に持っているパラメータを
設定および管理するための、定数およびメソッドを定義しています。
3Dオブジェクト
のクラスを表すための抽象的な基底クラスとして、
描画可能な3Dオブジェクトクラスを定義します。
Graphics3D.renderObject3D(DrawableObject3D, Transform)
メソッド、および、当たり判定を行う
isCross(DrawableObject3D, Transform, Transform)
メソッドに与える、3Dオブジェクトの型になります。
描画が可能であるとは、ポリゴン等のプリミティブ図形を保持できる、
ということを意味します。
フィールドの概要 | |
static int |
BLEND_ADD
加算を表す図形用ブレンドモードの名前です (=64)。 |
static int |
BLEND_ALPHA
アルファブレンドを表す図形用ブレンドモードの名前です (=32)。 |
static int |
BLEND_NORMAL
通常の描画処理(ブレンドなし)を表す図形用ブレンドモードの名前です (=0)。 |
クラス com.nttdocomo.ui.graphics3d.Object3D から継承したフィールド |
TYPE_ACTION_TABLE, TYPE_FIGURE, TYPE_FOG, TYPE_GROUP, TYPE_GROUP_MESH, TYPE_LIGHT, TYPE_NONE, TYPE_PRIMITIVE, TYPE_TEXTURE |
メソッドの概要 | |
boolean |
isCross(DrawableObject3D obj,
Transform t_myself,
Transform t_obj)
この描画可能な3Dオブジェクトと、 指定された描画可能な3Dオブジェクト間の当たり判定処理を 行い、その結果を取得します。 |
abstract void |
setBlendMode(int mode)
図形用ブレンドモードを設定します。 |
abstract void |
setPerspectiveCorrectionEnabled(boolean isOn)
パースペクティブコレクション(テクスチャの歪み補正)の有効化/無効化を設定します。 |
abstract void |
setTransparency(float v)
透明度をパーセントで設定します。 |
クラス com.nttdocomo.ui.graphics3d.Object3D から継承したメソッド |
createInstance, createInstance, dispose, getTime, getType, setTime |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final int BLEND_NORMAL
通常の描画処理(ブレンドなし)を表す図形用ブレンドモードの名前です (=0)。
public static final int BLEND_ALPHA
アルファブレンドを表す図形用ブレンドモードの名前です (=32)。
描画結果は以下のようになります。
(背景 x (100% - 透明度) + プリミティブ x 透明度)
三原色 RGB の各要素について、個別に演算が行われます。 演算時に結果がオーバーフローしたときには、色を示す値は飽和されて 扱われます。
public static final int BLEND_ADD
加算を表す図形用ブレンドモードの名前です (=64)。
描画結果は以下のようになります。
(背景 x 100% + プリミティブ x 透明度)
三原色 RGB の各要素について、個別に演算が行われます。 演算時に結果がオーバーフローしたときには、色を示す値は飽和されて 扱われます。
メソッドの詳細 |
public abstract void setPerspectiveCorrectionEnabled(boolean isOn)
パースペクティブコレクション(テクスチャの歪み補正)の有効化/無効化を設定します。
初期状態では、無効に設定されています。
isOn
- 有効化するならば true を指定します。
しないならば false を指定します。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
public abstract void setBlendMode(int mode)
図形用ブレンドモードを設定します。
mode
- 図形用ブレンドモードを指定します。
BLEND_NORMAL
,
BLEND_ALPHA
,
BLEND_ADD
のいずれかを指定します。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
IllegalArgumentException
- 引数 mode が
BLEND_NORMAL
,
BLEND_ALPHA
,
BLEND_ADD
,
のいずれでもない場合に発生します。
public abstract void setTransparency(float v)
透明度をパーセントで設定します。
透明度は、設定されている図形用ブレンドモードが
BLEND_ALPHA
,
BLEND_ADD
のどちらかのときに有効になります。
v
- 透明度をパーセントで指定します。
100 のときが不透明です。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
IllegalArgumentException
- 引数 v が
Float.NaNの場合、
0 未満の場合、あるいは 100 より大きい場合に発生します。
public boolean isCross(DrawableObject3D obj, Transform t_myself, Transform t_obj)
この描画可能な3Dオブジェクトと、 指定された描画可能な3Dオブジェクト間の当たり判定処理を 行い、その結果を取得します。
二つのオブジェクト間において、交差するポリゴンがあれば true を、 なければ false を戻します。 従って、球の中に小さい球を含むような、形状を包含しているだけのときの 結果は false です。
判定のための計算は、内部的には整数演算になりますので、 誤差が生じる可能性があります。
いずれかの描画可能な3Dオブジェクトが グループ
である場合には、 グループ
に設定されている変換行列に、
引数の内容を乗算した結果を用いて判定します。
グループ
がネストしているときは、
ネスト毎に次々と乗算を行っていき、
その行列に引数の内容を乗算した結果を用います。
いずれかの描画可能な3Dオブジェクトに、ポリゴン
がまったく含まれていないときには、結果は常に false になります。
ポリゴンを持つのは、 フィギュア
オブジェクト
または、 プリミティブ
オブジェクトです。
二つの グループ
オブジェクト間での判定を行わせることが、
典型的な利用方法です。
このメソッドにより、多数のポリゴン同士の当たり判定を得ようとするとき、
その処理は非常に重いものになります。
このとき、実際には複雑である形状を単純化した、ポリゴン数が少ない
形状データを代替に用いて、判定をさせるという手法
を用いることをおすすめします。
この場合は近似条件による判定結果になりますが、高速に結果を取得できます。
※判定機能に関する補足説明
※演算誤差に関する補足説明
obj
- 描画可能な3Dオブジェクトを指定します。t_myself
- この描画可能な3Dオブジェクト用の変換行列を指定します。
null ならば恒等変換を設定した場合と等価です。t_obj
- 引数に指定された描画可能な3Dオブジェクト用の変換行列を指定します。
null ならば恒等変換を設定した場合と等価です。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
NullPointerException
- 引数 obj が null の場合に発生します。
UIException
- 引数 obj が既に dispose()
されたオブジェクトの場合に発生します
(ILLEGAL_STATE)。
UIException
- 引数 obj が グループ
であり、かつ、
その グループ
内に、 既に dispose()
された
フィギュア
オブジェクトまたは
プリミティブ
のオブジェクトが存在する場合に発生します。
(ILLEGAL_STATE)。
UIException
- このオブジェクトが グループ
であり、かつ、
その グループ
内に、 既に dispose()
された
フィギュア
オブジェクトまたは
プリミティブ
のオブジェクトが存在する場合に発生します。
(ILLEGAL_STATE)。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド 3d 蜀 |