X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=vtk%2Fsrc%2Fvtk%2FvtkRenderWindowPanel.java;h=7ce59ac8ec1feca7d8d812e50fd919be55a1b985;hb=0f1acf557db4515528bc452c037db0831fd34ecf;hp=c8e9244d9615ed08f5addf299d5225fecd87a2f3;hpb=471c46e9a685e20de958d77166461aebc7a7b6ee;p=simantics%2F3d.git diff --git a/vtk/src/vtk/vtkRenderWindowPanel.java b/vtk/src/vtk/vtkRenderWindowPanel.java index c8e9244d..7ce59ac8 100644 --- a/vtk/src/vtk/vtkRenderWindowPanel.java +++ b/vtk/src/vtk/vtkRenderWindowPanel.java @@ -3,6 +3,7 @@ package vtk; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; +import java.awt.event.MouseWheelEvent; /** * vtkRenderWindowPanel is a vtkCanvas which allows additional vtkRenderers to @@ -13,89 +14,105 @@ import java.awt.event.MouseEvent; * @author Kitware */ public class vtkRenderWindowPanel extends vtkCanvas { - private static final long serialVersionUID = 1L; - - public vtkRenderWindowPanel() { - cam = new vtkCamera(); - lgt = new vtkLight(); + private static final long serialVersionUID = 1L; + + public vtkRenderWindowPanel() { + cam = new vtkCamera(); + lgt = new vtkLight(); + } + + public vtkRenderWindowPanel(vtkRenderWindow win) { + super(win); + cam = new vtkCamera(); + lgt = new vtkLight(); + } + + public synchronized void Render() { + if (!rendering) { + rendering = true; + if (rw != null) { + if (windowset == 0) { + // set the window id and the active camera + RenderCreate(rw); + Lock(); + rw.SetSize(getWidth(), getHeight()); + UnLock(); + windowset = 1; + // notify observers that we have a renderwindow created + // windowSetObservable.notifyObservers(); + } + Lock(); + rw.Render(); + UnLock(); + } + rendering = false; } + } - public vtkRenderWindowPanel(vtkRenderWindow win) { - super(win); - cam = new vtkCamera(); - lgt = new vtkLight(); - } + public void mousePressed(MouseEvent e) { + Lock(); + rw.SetDesiredUpdateRate(5.0); + lastX = e.getX(); + lastY = e.getY(); - public synchronized void Render() { - if (!rendering) { - rendering = true; - if (rw != null) { - if (windowset == 0) { - // set the window id and the active camera - RenderCreate(rw); - Lock(); - rw.SetSize(getWidth(), getHeight()); - UnLock(); - windowset = 1; - // notify observers that we have a renderwindow created - // windowSetObservable.notifyObservers(); - } - Lock(); - rw.Render(); - UnLock(); - } - rendering = false; - } - } + ctrlPressed = (e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK ? 1 : 0; + shiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) == InputEvent.SHIFT_MASK ? 1 : 0; - public void mousePressed(MouseEvent e) { - Lock(); - rw.SetDesiredUpdateRate(5.0); - lastX = e.getX(); - lastY = e.getY(); + iren.SetEventInformationFlipY(e.getX(), e.getY(), ctrlPressed, shiftPressed, '0', 0, "0"); - ctrlPressed = (e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK ? 1 : 0; - shiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) == InputEvent.SHIFT_MASK ? 1 : 0; + if ((e.getModifiers() & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) { + iren.LeftButtonPressEvent(); + } - iren.SetEventInformationFlipY(e.getX(), e.getY(), ctrlPressed, shiftPressed, '0', 0, "0"); + else if ((e.getModifiers() & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) { + iren.MiddleButtonPressEvent(); + } - if ((e.getModifiers() & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) { - iren.LeftButtonPressEvent(); - } + else if ((e.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) { + iren.RightButtonPressEvent(); + } - else if ((e.getModifiers() & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) { - iren.MiddleButtonPressEvent(); - } + UnLock(); + } - else if ((e.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) { - iren.RightButtonPressEvent(); - } + public void mouseDragged(MouseEvent e) { + ctrlPressed = (e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK ? 1 : 0; + shiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) == InputEvent.SHIFT_MASK ? 1 : 0; - UnLock(); - } + iren.SetEventInformationFlipY(e.getX(), e.getY(), ctrlPressed, shiftPressed, '0', 0, "0"); - public void mouseDragged(MouseEvent e) { - ctrlPressed = (e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK ? 1 : 0; - shiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) == InputEvent.SHIFT_MASK ? 1 : 0; + Lock(); + iren.MouseMoveEvent(); + UnLock(); + } - iren.SetEventInformationFlipY(e.getX(), e.getY(), ctrlPressed, shiftPressed, '0', 0, "0"); + public void mouseWheelMoved(MouseWheelEvent e) { + ctrlPressed = (e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK ? 1 : 0; + shiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) == InputEvent.SHIFT_MASK ? 1 : 0; - Lock(); - iren.MouseMoveEvent(); - UnLock(); + Lock(); + if (e.getWheelRotation() > 0) { + iren.SetEventInformationFlipY(e.getX(), e.getY(), ctrlPressed, shiftPressed, '0', 0, "0"); + iren.MouseWheelBackwardEvent(); + } + else if (e.getWheelRotation() < 0) { + iren.SetEventInformationFlipY(e.getX(), e.getY(), ctrlPressed, shiftPressed, '0', 0, "0"); + iren.MouseWheelForwardEvent(); } + UnLock(); + } - public void keyPressed(KeyEvent e) { - char keyChar = e.getKeyChar(); + public void keyPressed(KeyEvent e) { + char keyChar = e.getKeyChar(); - ctrlPressed = (e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK ? 1 : 0; - shiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) == InputEvent.SHIFT_MASK ? 1 : 0; + ctrlPressed = (e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK ? 1 : 0; + shiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) == InputEvent.SHIFT_MASK ? 1 : 0; - iren.SetEventInformationFlipY(lastX, lastY, ctrlPressed, shiftPressed, keyChar, 0, String.valueOf(keyChar)); + iren.SetEventInformationFlipY(lastX, lastY, ctrlPressed, shiftPressed, keyChar, 0, String.valueOf(keyChar)); - Lock(); - iren.KeyPressEvent(); - iren.CharEvent(); - UnLock(); - } + Lock(); + iren.KeyPressEvent(); + iren.CharEvent(); + UnLock(); + } }