Implement gravity and velocity vector.
[gravitysimulator.git] / src / edu / mit / ezyang / gravity / j3d / utils / picking / behaviors / PickSelectBehavior.java
blobdedfb67c7ba49cef0f1306d380e56e652161eac1
1 /*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
6 package edu.mit.ezyang.gravity.j3d.utils.picking.behaviors;
8 import edu.mit.ezyang.gravity.j3d.utils.picking.behaviors.PickSelectCallback;
9 import com.sun.j3d.utils.behaviors.mouse.MouseBehaviorCallback;
10 import com.sun.j3d.utils.geometry.Primitive;
11 import com.sun.j3d.utils.picking.PickResult;
12 import com.sun.j3d.utils.picking.behaviors.PickMouseBehavior;
13 import java.awt.event.MouseEvent;
14 import javax.media.j3d.Bounds;
15 import javax.media.j3d.BranchGroup;
16 import javax.media.j3d.Canvas3D;
17 import javax.media.j3d.Transform3D;
19 /**
21 * @author Edward Z. Yang <ezyang@mit.edu>
23 public class PickSelectBehavior extends PickMouseBehavior implements MouseBehaviorCallback {
24 protected PickSelectCallback callback;
25 public PickSelectBehavior(BranchGroup root, Canvas3D canvas, Bounds bounds) {
26 super(canvas, root, bounds);
27 setSchedulingBounds(bounds);
29 public void setupCallback(PickSelectCallback callback) {
30 this.callback = callback;
32 public void updateScene(int xpos, int ypos) {
33 Primitive primitive = null;
34 if (mevent.getButton() == MouseEvent.BUTTON1) {
35 pickCanvas.setShapeLocation(xpos, ypos);
36 PickResult pr = pickCanvas.pickClosest();
37 if ((pr != null) &&
38 ((primitive = (Primitive) pr.getNode(PickResult.PRIMITIVE)) != null) &&
39 (primitive.getCapability(Primitive.ENABLE_APPEARANCE_MODIFY ))) {
40 if (callback != null) {
41 callback.notifyPick(primitive);
47 /**
48 * Callback method from MouseTranslate
49 * This is used when the Picking callback is enabled
51 public void transformChanged(int type, Transform3D transform) {