|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
形状の衝突判定時に、衝突情報とともに通知を受けるためのインターフェースです。
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 | なし |