|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.ui.graphics3d.collision.ViewVolume
視錐台におけるBoundingVolumeの可視判定を行うクラスです。
一次変換等の計算の結果、形状のいずれかの長さが0になって形状の次元数がさがる (例えば、Boxが平面になる等)場合の可視判定結果は保証されません。
コンストラクタの概要 | |
ViewVolume()
ViewVolumeオブジェクトを生成します。 |
メソッドの概要 | |
boolean |
isViewable(BoundingVolume bv)
BoundingVolume オブジェクトの可視判定をします。
|
boolean |
isViewable(BVFigure bvFig)
BVFigure オブジェクトの可視判定をします。
|
void |
setParallelView(int width,
int height)
投影面の幅と高さを指定して平行投影の視錐台のサイズを設定します。 |
void |
setPerspectiveView(float near,
float far,
float angle)
視野角を指定して透視投影の視錐台のサイズを設定します。 |
void |
setPerspectiveView(float near,
float far,
int width,
int height)
ニアクリップ面における投影面の幅および高さを指定して、透視投影の視錐台のサイズを設定します。 |
void |
setTransform(Transform trans)
ワールド座標系に対して視錐台をセットする際の一次変換行列を設定します。 |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public ViewVolume()
ViewVolumeオブジェクトを生成します。
生成後、isViewableメソッドを実行する前に、
setParallelViewメソッドまたはsetPerspectiveView
メソッドにより、視錐台のサイズを設定してください。
メソッドの詳細 |
public void setParallelView(int width, int height)
投影面の幅と高さを指定して平行投影の視錐台のサイズを設定します。
平行投影時には、ニアクリップ面の距離は0に、ファークリップ面の距離は 32767の固定となります。
width
- 投影面の幅を指定します。height
- 投影面の高さを指定します。
IllegalArgumentException
- 引数 width, height のいずれかが 0 以下の場合に発生します。
public void setPerspectiveView(float near, float far, int width, int height)
ニアクリップ面における投影面の幅および高さを指定して、透視投影の視錐台のサイズを設定します。
near
- Near平面のZ座標を指定します。far
- Far平面のZ座標を指定します。width
- Near平面における投影面の幅を指定します。height
- Near平面における投影面の高さを指定します。
IllegalArgumentException
- 引数 width, height のいずれかが 0 以下の場合に発生します。
IllegalArgumentException
- 引数 near, far が、0 < near < far < 32768 を満たしていない場合に発生します。
public void setPerspectiveView(float near, float far, float angle)
視野角を指定して透視投影の視錐台のサイズを設定します。
near
- Near平面のZ座標を指定します。far
- Far平面のZ座標を指定します。angle
- 視野角(degree)を指定します。 有効範囲は、0度 < 視野角 < 180度です。
IllegalArgumentException
- 引数 angle が 0 以下または 180 以上の場合に発生します。
IllegalArgumentException
- 引数 near, far が、0 < near < far < 32768 を満たしていない場合に発生します。
public boolean isViewable(BoundingVolume bv)
BoundingVolume
オブジェクトの可視判定をします。
BoundingVolume
オブジェクトの一部が視錐台の内側にあれば、可視状態にあると判定します。
bv
- BoundingVolume
オブジェクトを指定します。
UIException
- setParallelViewメソッドまたはsetPerspectiveViewメソッドにより、視錐台のサイズが
設定されていない場合に発生します。(ILLEGAL_STATE)。
NullPointerException
- 引数bvがnullの場合に発生します。
public boolean isViewable(BVFigure bvFig)
BVFigure
オブジェクトの可視判定をします。
BVFigure
オブジェクトにセットされている、Figure全体のBoundingVolume
オブジェクトの一部
が視錐台の内側にあれば、可視状態にあると判定します。
BVFigure
オブジェクトに、Figure全体のBoundingVolume
オブジェクトがセットされていない場合は、
falseを返します。
bvFig
- BVFigure
オブジェクトを指定します。
BoundingVolume
オブジェクトの一部
が視錐台の内側にあればtrueを返します。
BoundingVolume
オブジェクトの全体が外側にあればfalseを返します。
UIException
- setParallelViewメソッドまたはsetPerspectiveViewメソッドにより、視錐台のサイズが
設定されていない場合に発生します。(ILLEGAL_STATE)。
NullPointerException
- 引数bvFigがnullの場合に発生します。
public void setTransform(Transform trans)
ワールド座標系に対して視錐台をセットする際の一次変換行列を設定します。
初期値は単位行列で、視錐台のローカル座標系がワールド座標系 と一致します。設定する行列の3×3部分が直交行列となり、全方向同一スケールとなるように指定してください。 そうでない場合の可視判定は保証されません。
trans
- ワールド座標系に対して視錐台をセットする際の一次変換行列を設定します。
nullを設定すると単位行列として扱われ、視錐台のローカル座標系がワールド座標系と一致します。
IllegalArgumentException
- 引数transの1〜3列の列ベクトルに零ベクトルがある場合に発生します。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
NTT DOCOMO,INC.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。