X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.vtk%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fvtk%2Fawt%2FvtkCameraAndSelectorAction.java;h=eef4e2478fa545ed611fbb4e0bcdc2381fed2bcc;hb=refs%2Fchanges%2F50%2F4550%2F1;hp=26d6843b19ca7725154c25929a139f6ef1159429;hpb=588f20ae6b9f08b615f32d27fed7ee28e14c2b4c;p=simantics%2F3d.git diff --git a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/awt/vtkCameraAndSelectorAction.java b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/awt/vtkCameraAndSelectorAction.java index 26d6843b..eef4e247 100644 --- a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/awt/vtkCameraAndSelectorAction.java +++ b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/awt/vtkCameraAndSelectorAction.java @@ -17,6 +17,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import javax.vecmath.Point2d; +import javax.vecmath.Point2i; import javax.vecmath.Point3d; import org.eclipse.jface.viewers.ISelection; @@ -194,6 +196,10 @@ public class vtkCameraAndSelectorAction extends vtkAwtAction implements ISelecti resetCameraClippingRange(); } } + if (hoverActor.size() > 0) { + hoverActor.clear(); + fireHoverChanged(); + } lastX = x; lastY = y; panel.Render(); @@ -209,6 +215,8 @@ public class vtkCameraAndSelectorAction extends vtkAwtAction implements ISelecti return; if (e.getButton() != MouseEvent.BUTTON1) return; + lastX = e.getX(); + lastY = e.getY(); vtkProp spick[] = panel.pick(e.getX(), e.getY()); if (spick != null && spick.length > 0) { for (vtkProp selectActor : spick) { @@ -291,6 +299,30 @@ public class vtkCameraAndSelectorAction extends vtkAwtAction implements ISelecti } } + @Override + public void mouseExited(MouseEvent e) { + if (hoverActor.size() > 0) { + hoverActor.clear(); + fireHoverChanged(); + } + } + + /** + * Returns mouse position in AWT screen coordinates. + * @return + */ + public Point2i getMousePositionAWT() { + return new Point2i(lastX, lastY); + } + + /** + * Returns mouse position in VTK screen coordinates. + * @return + */ + public Point2d getMousePosition() { + return new Point2d(lastX, rw.GetSize()[1]-lastY); + } + public List getSelectActor() { return selectActors; }