05/08/08 21:37:31
>>640
ありがとん。以下のやり方で出来たよ。
PickMouseBehaviorを派生したクラスのupdateSceneをオーバーライドした。
分かっちゃえばなんてこと無いけど、やっぱり細かい事でいちいちクラス分け杉な気もす。
public void updateScene(int xpos,int ypos)
{
TransformGroup tg = null;
Point3d [] pickedPrimitive = null;
pickCanvas.setMode(PickTool.GEOMETRY_INTERSECT_INFO);
// マウスの座標を与える
pickCanvas.setShapeLocation(xpos,ypos);
pickCanvas.setTolerance(10);
// マウスの位置に一番近いノード
PickResult res = pickCanvas.pickClosest();
if(res != null){
Shape3D shape = (Shape3D)res.getNode(PickResult.SHAPE3D);
PickIntersection pi = res.getIntersection(0);
//交差したポリゴンの各頂点を返す
pickedPrimitive = pi.getPrimitiveCoordinates();
for(int i=0; i<pickedPrimitive.length; i++) {
System.out.println(pickedPrimitive[i]);
}
}
}