Class SWTCameraMouseController

java.lang.Object
org.jzy3d.chart.controllers.AbstractController
org.jzy3d.chart.controllers.camera.AbstractCameraController
org.jzy3d.chart.controllers.mouse.camera.SWTCameraMouseController
All Implemented Interfaces:
EventListener, org.eclipse.swt.events.MouseListener, org.eclipse.swt.events.MouseMoveListener, org.eclipse.swt.events.MouseWheelListener, org.eclipse.swt.internal.SWTEventListener, ICameraMouseController

public class SWTCameraMouseController extends org.jzy3d.chart.controllers.camera.AbstractCameraController implements org.eclipse.swt.events.MouseListener, org.eclipse.swt.events.MouseMoveListener, org.eclipse.swt.events.MouseWheelListener
SWT camera mouse controller, modeled on AWTCameraMouseController but kept to the 3D camera essentials (rotate / shift / zoom).

The AWT controller's 2D selection rendering relies on AWTView.addRenderer2d + AWTGraphicsUtils which are not available on the PanamaGL/SWT pipeline, so this controller does not embed a 2D rectangle selection. Add your own SWT overlay if needed.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected org.jzy3d.maths.Coord2d
     
    protected org.jzy3d.chart.controllers.RateLimiter
     

    Fields inherited from class org.jzy3d.chart.controllers.camera.AbstractCameraController

    perf, threadController, updateViewDefault

    Fields inherited from class org.jzy3d.chart.controllers.AbstractController

    controllerListeners, target
  • Constructor Summary

    Constructors
    Constructor
    Description
     
     
    SWTCameraMouseController(Chart chart, org.jzy3d.chart.controllers.RateLimiter limiter)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    org.jzy3d.chart.controllers.RateLimiter
     
    protected boolean
    handleSlaveThread(org.eclipse.swt.events.MouseEvent e)
    Toggle the auto-rotation slave thread the same way as AWTCameraMouseController: a double-click starts it, any other click stops it.
    void
    mouseDoubleClick(org.eclipse.swt.events.MouseEvent e)
     
    void
    mouseDown(org.eclipse.swt.events.MouseEvent e)
     
    void
    mouseMove(org.eclipse.swt.events.MouseEvent e)
     
    void
    mouseScrolled(org.eclipse.swt.events.MouseEvent e)
     
    void
    mouseUp(org.eclipse.swt.events.MouseEvent e)
     
    void
    register(Chart chart)
     
    void
    setRateLimiter(org.jzy3d.chart.controllers.RateLimiter rateLimiter)
     
    void
     

    Methods inherited from class org.jzy3d.chart.controllers.camera.AbstractCameraController

    addSlaveThreadController, addThread, getLODPerf, getSlaveThreadController, getThread, isUpdateViewDefault, removeSlaveThreadController, rotate, rotate, rotate, setLODPerf, setUpdateViewDefault, shift, shift, startThreadController, stopThreadController, zoomX, zoomX, zoomY, zoomY, zoomZ, zoomZ

    Methods inherited from class org.jzy3d.chart.controllers.AbstractController

    addControllerEventListener, fireControllerEvent, getChart, getCharts, removeControllerEventListener

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • rateLimiter

      protected org.jzy3d.chart.controllers.RateLimiter rateLimiter
    • prevMouse

      protected org.jzy3d.maths.Coord2d prevMouse
  • Constructor Details

    • SWTCameraMouseController

      public SWTCameraMouseController()
    • SWTCameraMouseController

      public SWTCameraMouseController(Chart chart)
    • SWTCameraMouseController

      public SWTCameraMouseController(Chart chart, org.jzy3d.chart.controllers.RateLimiter limiter)
  • Method Details

    • register

      public void register(Chart chart)
      Overrides:
      register in class org.jzy3d.chart.controllers.AbstractController
    • unregister

      public void unregister(Chart chart)
      Overrides:
      unregister in class org.jzy3d.chart.controllers.AbstractController
    • dispose

      public void dispose()
      Overrides:
      dispose in class org.jzy3d.chart.controllers.camera.AbstractCameraController
    • getRateLimiter

      public org.jzy3d.chart.controllers.RateLimiter getRateLimiter()
    • setRateLimiter

      public void setRateLimiter(org.jzy3d.chart.controllers.RateLimiter rateLimiter)
    • mouseDown

      public void mouseDown(org.eclipse.swt.events.MouseEvent e)
      Specified by:
      mouseDown in interface org.eclipse.swt.events.MouseListener
    • mouseUp

      public void mouseUp(org.eclipse.swt.events.MouseEvent e)
      Specified by:
      mouseUp in interface org.eclipse.swt.events.MouseListener
    • mouseDoubleClick

      public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e)
      Specified by:
      mouseDoubleClick in interface org.eclipse.swt.events.MouseListener
    • mouseMove

      public void mouseMove(org.eclipse.swt.events.MouseEvent e)
      Specified by:
      mouseMove in interface org.eclipse.swt.events.MouseMoveListener
    • mouseScrolled

      public void mouseScrolled(org.eclipse.swt.events.MouseEvent e)
      Specified by:
      mouseScrolled in interface org.eclipse.swt.events.MouseWheelListener
    • handleSlaveThread

      protected boolean handleSlaveThread(org.eclipse.swt.events.MouseEvent e)
      Toggle the auto-rotation slave thread the same way as AWTCameraMouseController: a double-click starts it, any other click stops it. Returns true if the thread was just started, false otherwise (stopped or no controller bound).