Hi all!

In my application, i used to pick some shape3d with :
...
geometry.setCapability(Geometry.ALLOW_INTERSECT);
shape.setGeometry(geometry);
PickTool.setCapabilities(shape, PickTool.INTERSECT_FULL);
shape.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE);
...

and with this pickbehavior

public class PickBehavior
   extends PickMouseBehavior
   implements MouseListener {

private PickCanvas pickCanvas;

public PickBehavior(Canvas3D canvas, BranchGroup root,
                     Bounds bounds) {
   super(canvas, root, bounds);
   canvas.addMouseListener(this);
   this.setSchedulingBounds(bounds);
   root.addChild(this);
   pickCanvas = new PickCanvas(canvas, root);
   pickCanvas.setTolerance(0.05f);
   pickCanvas.setMode(PickTool.GEOMETRY);
 }

public void updateScene(int xpos, int ypos) {
   PickResult pickResult = null;
   Shape3D selectedShape;
   try {
     pickCanvas.setShapeLocation(xpos, ypos);
     pickResult = pickCanvas.pickClosest();
   }
   catch (Exception e) {
     return; //ce n'est pas un shape selectionnable
   }
   if (pickResult != null) {
     selectedShape = (Shape3D) pickResult.getNode(PickResult.SHAPE3D);
    select(selectedShape);
   }
 }

...

}


this works very fine, but if I want to change the geometry, with shape.setGeometry() shape becomes not pickable, and other shapes near it too... I think that there is a method to say "Geometry has changed, Node has changed, please update!" but I 've not found it...

Thanks for your help!

Damien Maillet
IRD CGG
[EMAIL PROTECTED]

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to