package org.simantics.plant3d.gizmo;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import java.util.Collection;
import javax.vecmath.Vector2d;
import javax.vecmath.Vector3d;
+import org.eclipse.swt.events.MouseMoveListener;
import org.simantics.g3d.math.MathTools;
import org.simantics.g3d.math.Ray;
import org.simantics.g3d.scenegraph.RenderListener;
import org.simantics.g3d.shape.Cone;
import org.simantics.g3d.shape.Cylinder;
import org.simantics.g3d.shape.Mesh;
-import org.simantics.g3d.vtk.common.InteractiveVtkPanel;
+import org.simantics.g3d.vtk.common.VtkView;
import org.simantics.g3d.vtk.gizmo.vtkGizmo;
import org.simantics.g3d.vtk.shape.MeshActor;
+import org.simantics.g3d.vtk.swt.InteractiveVtkComposite;
import org.simantics.g3d.vtk.utils.vtkUtil;
import vtk.vtkProp;
MeshActor actor;
- InteractiveVtkPanel panel;
+ VtkView panel;
private RenderListener listener;
- private MouseMotionListener mouseListener;
+ //private MouseMotionListener mouseListener;
+ private MouseMoveListener mouseListener;
Point3d start;
Point3d end;
Tuple3d splitPoint = null;
- public SplitPointSelectionGizmo(InteractiveVtkPanel panel) {
+ public SplitPointSelectionGizmo(VtkView panel) {
this.panel = panel;
int res = 16;
actor = new MeshActor();
actor.setMesh(tube_x);
+ panel.addDeletable(actor);
this.listener = new RenderListener() {
@Override
public void preRender() {
- Ray ray = vtkUtil.createMouseRay(getRenderer(), mousePos.x, mousePos.y);
+ Ray ray = vtkUtil.createMouseRay(SplitPointSelectionGizmo.this.panel.getRenderer(), mousePos.x, mousePos.y);
//ray.dir.add(ray.pos);
//if (MathTools.intersectLineLine(start, end, ray.pos, ray.dir, pa, pb)) {
double mu[] = new double[2];
}
};
- this.mouseListener = new MouseMotionListener() {
+// this.mouseListener = new MouseMotionListener() {
+//
+// @Override
+// public void mouseMoved(MouseEvent e) {
+// mousePos.x = e.getX();
+// mousePos.y = e.getY();
+// SplitPointSelectionGizmo.this.panel.refresh();
+// }
+//
+// @Override
+// public void mouseDragged(MouseEvent e) {
+// mousePos.x = e.getX();
+// mousePos.y = e.getY();
+// SplitPointSelectionGizmo.this.panel.refresh();
+// }
+// };
+ this.mouseListener = new MouseMoveListener() {
@Override
- public void mouseMoved(MouseEvent e) {
- mousePos.x = e.getX();
- mousePos.y = e.getY();
- SplitPointSelectionGizmo.this.panel.repaint();
- }
-
- @Override
- public void mouseDragged(MouseEvent e) {
- mousePos.x = e.getX();
- mousePos.y = e.getY();
- SplitPointSelectionGizmo.this.panel.repaint();
+ public void mouseMove(org.eclipse.swt.events.MouseEvent e) {
+ mousePos.x = e.x;
+ mousePos.y = e.y;
+ SplitPointSelectionGizmo.this.panel.refresh();
+
}
};
}
@Override
- public void attach(Object renderingPart) {
+ public void attach(VtkView renderingPart) {
super.attach(renderingPart);
panel.addListener(listener);
- panel.addMouseMotionListener(mouseListener);
+ // FIXME
+ //panel.addMouseMotionListener(mouseListener);
+ ((InteractiveVtkComposite)panel).getComponent().addMouseMoveListener(mouseListener);
}
@Override
public void deattach() {
panel.removeListener(listener);
- panel.removeMouseMotionListener(mouseListener);
+ // FIXME
+ //panel.removeMouseMotionListener(mouseListener);
super.deattach();
}