|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
形状の衝突判定時に、衝突情報とともに通知を受けるためのインターフェースです。
Collision
クラスのisHitメソッド、isPickedメソッドにて、Hit/Pickした時に、衝突情報を使って
処理を行いたい場合、次のようにします。
Collision
クラスのsetObserver
メソッドにより、
Collision
オブジェクトに設定する。
Collision
クラスのisHitメソッド、
isPickedメソッド内部で同期的に呼び出されます。
Collision
クラスの説明にあるサンプルコードを参照してください。
メソッドの概要 | |
boolean |
onHit(Shape shape,
int boneId0,
BoundingVolume[] bv,
int[] boneId1,
boolean[] isInvolved,
Vector3D[] point)
衝突判定対象が BVFigure オブジェクトの時、Collision クラスのisHitメソッドにてHitした場合に
呼ばれます。
|
void |
onHit(Shape shape0,
Shape shape1,
boolean isInvolved,
Vector3D point)
Collision クラスのisHitメソッドにてHitした場合に呼ばれます。
|
void |
onHit(Shape shape,
Sphere sphere,
float contactPos,
Vector3D normal,
float distance)
衝突判定対象が Shape とSphere の軌跡の時、Collision クラスのisHitメソッドにてHitした場合に
呼ばれます。
|
void |
onPick(Ray ray,
Figure fig,
IntersectionAttribute[] attr)
Collision クラスのisPicked メソッドにてPickした場合に呼ばれます。
|
メソッドの詳細 |
public void onHit(Shape shape0, Shape shape1, boolean isInvolved, Vector3D point)
Collision
クラスのisHitメソッドにてHitした場合に呼ばれます。
Collision
クラスの次のメソッドで、引数notifyをtrueにしてHitした場合に呼ばれます。
shape0 | shape1 | 内包状態として渡される値 | 交点データ |
---|---|---|---|
Point | BV | true or false | なし (内包状態がfalseの場合、交点はPointと同じになるため、交点データとしては返しません) |
Line (Ray ) | Triangle | false | あり |
Line (Ray ) | Plane | false | あり |
Line | BV | true | なし |
Line (Ray ) | BV | false | あり |
Triangle | Triangle | false | なし |
Triangle | Plane | false | なし |
Triangle | BV | true or false | なし |
Plane | Plane | false | なし |
Plane | BV | false | なし |
BV | BV | true or false | なし |
shape0
- 衝突判定対象のShape
オブジェクトの片方が渡されます。shape1
- 衝突判定対象のShape
オブジェクトの他方が渡されます。isInvolved
- 片方がBoundingVolume
オブジェクトで、この内部に他方のオブジェクトが
内包されているかどうかのboolean値が渡されます。内包されている場合trueが渡され、内包されていない場合falseが渡されます。point
- 交点を表わすVector3Dオブジェクトが渡されます。交点が無い場合はnullが渡されます。public boolean onHit(Shape shape, int boneId0, BoundingVolume[] bv, int[] boneId1, boolean[] isInvolved, Vector3D[] point)
衝突判定対象がBVFigure
オブジェクトの時、Collision
クラスのisHitメソッドにてHitした場合に
呼ばれます。
Collision
クラスの次のメソッドで、引数notifyをtrueにしてHitした場合に呼ばれます。
Collision.isHit(Shape shape, BVFigure bvFig, boolean isAllHit, boolean notify)
Collision.isHit(BVFigure bvFig0, BVFigure bvFig1, boolean isAllHit0,
boolean isAllHit1, boolean notify)
BoundingVolume
ごとの判定処理で、Hitするたびに呼ばれます。
もう呼び出される必要がない場合はfalseを返してください。
shape | 内包状態として渡される値 | 交点データ |
---|---|---|
Point | true or false | なし (内包状態がfalseの場合、交点はPointと同じになるため、交点データとしては返しません) |
Line | true | なし |
Line (Ray ) | false | あり |
Triangle | true or false | なし |