|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.ui.graphics3d.Object3D
com.nttdocomo.ui.graphics3d.Light
光源データを保持する、光源クラスを定義します。
光源の最大数は機種依存です。
最大値は
光源オブジェクトは、光源のモード情報、および、
光源のモードと二つのベクトルの関係は、以下のようになっています。
getMaxLights()
メソッドにより取得できます。
この値は、レンダリング機能である
Graphics3D.renderObject3D(DrawableObject3D, Transform)
メソッド呼び出し時に、同時にサポートされる光源の最大数です。
三次元ベクトル
オブジェクトを二つ保持します。
ベクトルの一つは光源の位置を、もう一つは光源の向きを意味します。
ベクトル情報は、いずれもワールド座標による指定です。
レンダリング時に、方向ベクトルがゼロベクトルであり、
モードが DIRECTIONAL または SPOT の場合には、
自動でベクトル (0, 0, -1) に補正されて扱われます。
光源のモード
位置ベクトル
方向ベクトル
AMBIENT 無効 無効 DIRECTIONAL 無効 有効 OMNI 有効 無効 SPOT 有効 有効
setTime(int)
メソッド呼び出しによって
現在時刻が変更されても、保持しているデータ内容は変化しません。
フィールドの概要 | |
static int |
AMBIENT
環境光源を表す光源のモードの名前です(=128)。 |
static int |
DIRECTIONAL
平行光源を表す光源のモードの名前です(=129)。 |
static int |
OMNI
点光源を表す光源のモードの名前です(=130)。 |
static int |
SPOT
スポット光源を表す光源のモードの名前です(=131)。 |
クラス 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 |
コンストラクタの概要 | |
Light()
光源オブジェクトを生成します。 |
メソッドの概要 | |
static int |
getMaxLights()
レンダリング時に適用可能な光源の最大数を取得します。 |
Vector3D |
getPosition()
光源の位置を取得します。 |
Vector3D |
getVector()
光源の向きを取得します。 |
void |
setAttenuation(float constant,
float linear,
float quadratic)
光源の減衰に関するパラメータを設定します。 |
void |
setColor(int RGB)
光源の色を設定します。 |
void |
setIntensity(float intensity)
光源の強度を設定します。 |
void |
setMode(int mode)
光源のモードを設定します。 |
void |
setPosition(Vector3D v)
光源の位置を設定します。 |
void |
setSpotAngle(float angle)
スポット光源モード用の角度を設定します。 |
void |
setSpotExponent(float exponent)
スポット光源モード用の輝度分布を設定します。 |
void |
setVector(Vector3D 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 AMBIENT
環境光源を表す光源のモードの名前です(=128)。
public static final int DIRECTIONAL
平行光源を表す光源のモードの名前です(=129)。
public static final int OMNI
点光源を表す光源のモードの名前です(=130)。
public static final int SPOT
スポット光源を表す光源のモードの名前です(=131)。
コンストラクタの詳細 |
public Light()
光源オブジェクトを生成します。
初期状態は以下のようになります。
DIRECTIONAL
メソッドの詳細 |
public void setPosition(Vector3D v)
光源の位置を設定します。
三次元ベクトル
オブジェクトへの参照を保持します。
このメソッドが呼び出されたあとに、該当するベクトルの内容が変化
したときには、光源の設定内容が変化します。
このメソッドによる設定内容は、光源のタイプが
DIRECTIONAL
または AMBIENT
のときは利用されません。
v
- ベクトルオブジェクトを指定します。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
NullPointerException
- 引数 v が null の場合に発生します。
public Vector3D getPosition()
光源の位置を取得します。
この光源オブジェクトが保持している、三次元ベクトル
オブジェクトへの参照を返します。
該当するベクトルの内容が変化したときには、光源の設定内容は変化します。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
public void setVector(Vector3D v)
光源の向きを設定します。
三次元ベクトル
オブジェクトへの参照を保持します。
このメソッドが呼び出されたあとに、該当するベクトルの内容が変化
したときには、光源の設定内容が変化します。
このメソッドによる設定内容は、光源のタイプが
OMNI
または AMBIENT
のときは利用されません。
v
- ベクトルオブジェクトを指定します。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
NullPointerException
- 引数 v が null の場合に発生します。
public Vector3D getVector()
光源の向きを取得します。
この光源オブジェクトが保持している、三次元ベクトル
オブジェクトへの参照を返します。
該当するベクトルの内容が変化したときには、光源の設定内容は変化します。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
public void setMode(int mode)
光源のモードを設定します。
mode
- 光源のモード値を指定します。
AMBIENT
,
DIRECTIONAL
,
OMNI
,
SPOT
のいずれかの値なことが必要です。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
IllegalArgumentException
- 引数 mode が
AMBIENT
,
DIRECTIONAL
,
OMNI
,
SPOT
のいずれかではない場合に発生します。
public void setIntensity(float intensity)
光源の強度を設定します。
intensity
- 光源の強度を指定します。
通常の光源設定では、値は 0 から 1 の範囲になりますが、
光の高度なブレンド機能などを有する環境では、その範囲外の値も
意味を持ちます。そのような機能が無い環境下では、
レンダリング時に、この値は区間 [0,1] に丸められて利用されます。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
IllegalArgumentException
- 引数 intensity が Float.NaN の場合に発生します。
public void setColor(int RGB)
光源の色を設定します。
RGB
- 0x00RRGGBB の形式で、光源の色を指定します。
上位 8 ビットは無視されます。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
public void setSpotAngle(float angle)
スポット光源モード用の角度を設定します。
このメソッドによる設定内容は、光源のタイプが
SPOT
のときに限り反映されます。
angle
- スポット光源の
円錐の
角度 (degree) を指定します。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
IllegalArgumentException
- 引数 angle が
区間
[0, 90] の範囲外の場合に発生します。
public void setSpotExponent(float exponent)
スポット光源モード用の輝度分布を設定します。
このメソッドによる設定内容は、光源のタイプが
SPOT
のときに限り反映されます。
exponent
- スポット光源の輝度分布を指定します。
0 のときは均一な明るさに、
128 のときは濃淡がはっきりした明るさの分布になります。
UIException
- 既に dispose()
されたオブジェクトに対して呼ばれた場合に発生します
(ILLEGAL_STATE)。
IllegalArgumentException
- 引数 exponent が
区間
[0, 128] の範囲外の場合に発生します。
public void setAttenuation(float constant, float linear, float quadratic)