|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.ui.graphics3d.collision.AbstractShape
com.nttdocomo.ui.graphics3d.collision.Triangle
Triangleを表わすクラスです。
Shape
インターフェースの説明を参照してください。
フィールドの概要 |
インタフェース com.nttdocomo.ui.graphics3d.collision.Shape から継承したフィールド |
TRANS_BV_SHAPE, TRANS_BV_WORLD, TRANS_BV_WORLD_NOSCALE, TRANS_SHAPE_WORLD, TRANS_SHAPE_WORLD_NOSCALE, TYPE_AAB_BOX, TYPE_AAB_CAPSULE, TYPE_AAB_CYLINDER, TYPE_BOX, TYPE_CAPSULE, TYPE_CYLINDER, TYPE_LINE, TYPE_PLANE, TYPE_POINT, TYPE_RAY, TYPE_SPHERE, TYPE_TRIANGLE |
コンストラクタの概要 | |
Triangle(Vector3D v0,
Vector3D v1,
Vector3D v2)
3頂点を指定してTriangleオブジェクトを生成します。 |
メソッドの概要 | |
void |
createMesh(int rgb,
int mode,
float v)
テスト描画用の Primitive オブジェクトを生成します。 |
Vector3D |
getNormal(boolean isTrans)
Triangleオブジェクトの法線ベクトルを取得します。 |
Vector3D[] |
getVertices(boolean isTrans)
Triangleオブジェクトの頂点位置を取得します。 |
boolean |
isHittingFromBackFaceEnabled()
裏側から、 Line またはRay が衝突する場合も、衝突していると判定するかどうかの設定状態を
取得します。
|
void |
set(Vector3D v0,
Vector3D v1,
Vector3D v2)
3頂点を指定してTriangleオブジェクトを設定します。 |
void |
setHittingFromBackFaceEnabled(boolean enable)
裏側から、 Line またはRay が衝突する場合も、衝突していると判定するかどうかを設定します。
|
クラス com.nttdocomo.ui.graphics3d.collision.AbstractShape から継承したメソッド |
deleteMesh, getAttribute, getMesh, getMeshTransform, getScale, getShapeType, getTransform, setAttribute, setTransform |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public Triangle(Vector3D v0, Vector3D v1, Vector3D v2)
3頂点を指定してTriangleオブジェクトを生成します。
v0
- 頂点0を表わすVector3Dオブジェクトを指定します。v1
- 頂点1を表わすVector3Dオブジェクトを指定します。v2
- 頂点2を表わすVector3Dオブジェクトを指定します。
NullPointerException
- 引数v0、v1、v2の1つ以上がnullの場合に発生します。
IllegalArgumentException
- 引数v0、v1、v2が1直線上にある場合(3点が重なる場合も含む)に発生します。
メソッドの詳細 |
public void set(Vector3D v0, Vector3D v1, Vector3D v2)
3頂点を指定してTriangleオブジェクトを設定します。
v0
- 頂点0を表わすVector3Dオブジェクトを指定します。v1
- 頂点1を表わすVector3Dオブジェクトを指定します。v2
- 頂点2を表わすVector3Dオブジェクトを指定します。
NullPointerException
- 引数v0、v1、v2の1つ以上がnullの場合に発生します。
IllegalArgumentException
- 引数v0、v1、v2が1直線上にある場合(3点が重なる場合も含む)に発生します。
public Vector3D[] getVertices(boolean isTrans)
Triangleオブジェクトの頂点位置を取得します。
isTrans
- ワールド座標系に変換されたデータを取得する場合はtrueを指定します。
Shape座標系におけるデータを取得する場合はfalseを指定します。
public Vector3D getNormal(boolean isTrans)
Triangleオブジェクトの法線ベクトルを取得します。
isTrans
- ワールド座標系に変換されたデータを取得する場合はtrueを指定します。
Shape座標系におけるデータを取得する場合はfalseを指定します。
public void createMesh(int rgb, int mode, float v)
Shape
の記述:
テスト描画用のPrimitive
オブジェクトを生成します。
開発時の図形位置の確認用としての利用を前提としたメソッドです。
描画の方法は、getMesh
メソッドでPrimitive
オブジェクトを取得し、getMeshTransform
メソッドで
一次変換行列を取得して、これらをGraphics3D
のrenderObject3D
メソッドの引数に渡して描画します。
生成したPrimitive
オブジェクトは、形状クラスで保持されます。
setメソッドで形状を変更した場合は、createMesh
メソッドでPrimitive
オブジェクトを
再生成してください。それ以外の場合は再生成する必要はありませんが、描画ごとに
getMesh
メソッドでPrimitive
オブジェクトを取得して使用するようにしてください。
(AABVでは、ワールド座標軸に平行になるようにPrimitive
オブジェクトの頂点データが変更
されます)
不要になった場合はdeleteMesh
メソッドで削除してください。
色、ブレンドモード、透明度の設定に関する制限に関しては、Primitive
クラスを参照してください。
ブレンドモードにDrawableObject3D.BLEND_ALPHA
、透明度に50%のような値を使用すると、
図形位置の確認がしやすくなります。
※ 図形サイズ・位置に関する注意事項
生成される頂点座標は、本パッケージの内部処理で使用しているfloat型から、Primitiveの
頂点座標で使われているshort型の範囲(-32768以上かつ32767 以下)にマッピングされるため、
範囲に収まらないサイズ・位置の場合、正常に描画されないことがあります。
また、Ray
、Plane
は、描画上は有限の大きさとなり、端が存在します。
rgb
- 0x00rrggbbの形式で、Primitiveオブジェクトの色を指定します。上位8ビットは無視されます。mode
- ブレンドモードを指定します。DrawableObject3D.BLEND_NORMAL
、DrawableObject3D.BLEND_ALPHA
、DrawableObject3D.BLEND_ADD
のいずれかを指定します。v
- 透明度をパーセントで指定します。100の時が不透明です。
IllegalArgumentException
- 引数modeがDrawableObject3D.BLEND_NORMAL
, DrawableObject3D.BLEND_ALPHA
, DrawableObject3D.BLEND_ADD
のいずれかでもない場合に発生します。
IllegalArgumentException
- 引数vがFloatNaNの場合、0未満の場合、あるいは100より大きい場合に発生します。
public void setHittingFromBackFaceEnabled(boolean enable)
裏側から、Line
またはRay
が衝突する場合も、衝突していると判定するかどうかを設定します。
trueに設定すると、Line
またはRay
の始点が裏側(法線方向の反対側)に位置して、Line
またはRay
が
衝突する場合にも、Collision
クラスのisHitメソッドで衝突していると判定します。
初期設定はfalseで、表側から衝突する場合だけ衝突していると判定します。
enable
- 裏側から、Line
またはRay
が衝突する場合も、衝突していると判定するかどうか
を指定します。衝突と判定する場合はtrueを指定します。衝突と判定しない場合はfalseを指定します。public boolean isHittingFromBackFaceEnabled()
Line
またはRay
が衝突する場合に、衝突と判定する場合はtrueを返します。衝突と判定しない場合はfalseを返します。
|