Class Panel3D

All Implemented Interfaces:
MouseListener, MouseMotionListener, MouseWheelListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible
Direct Known Subclasses:
Chart3DPanel

public class Panel3D
extends JPanel
implements MouseListener, MouseMotionListener, MouseWheelListener
A panel that displays a set of 3D objects from a particular viewing point. The view point is maintained by the Drawable3D but the panel provides convenience methods to get/set it.

NOTE: This class is serializable, but the serialization format is subject to change in future releases and should not be relied upon for persisting instances of this class.
See Also:
Serialized Form
  • Constructor Details

    • Panel3D

      public Panel3D​(Drawable3D drawable)
      Creates a new panel with the specified Drawable3D to display.
      Parameters:
      drawable - the content to display (null not permitted).
  • Method Details

    • getDrawable

      Returns the Drawable3D object that is displayed in this panel. This is specified via the panel constructor and there is no setter method to change it.
      Returns:
      The Drawable3D object (never null).
    • getMargin

      public double getMargin()
      Returns the margin, expressed as a percentage, that controls the amount of space to leave around the edges of the 3D content when the zoomToFit() method is called. The default value is 0.25 (25 percent).
      Returns:
      The margin.
    • setMargin

      public void setMargin​(double margin)
      Sets the margin that controls the amount of space to leave around the edges of the 3D content when the zoomToFit() method is called.
      Parameters:
      margin - the margin (as a percentage, where 0.25 = 25 percent).
    • getMinViewingDistance

      public double getMinViewingDistance()
      Returns the minimum viewing distance. Zooming by mouse wheel or other means will not move the viewing point closer than this. The value is computed in the constructor from the dimensions of the drawable object.
      Returns:
      The minimum viewing distance.
    • getMaxViewingDistanceMultiplier

      Returns the multiplier for the maximum viewing distance (a multiple of the minimum viewing distance). The default value is 8.0.
      Returns:
      The multiplier.
      Since:
      1.3
    • setMaxViewingDistanceMultiplier

      public void setMaxViewingDistanceMultiplier​(double multiplier)
      Sets the multiplier used to calculate the maximum viewing distance.
      Parameters:
      multiplier - the new multiplier.
      Since:
      1.3
    • getPanIncrement

      public double getPanIncrement()
      Returns the angle delta for each pan left or right. The default value is Math.PI / 60.
      Returns:
      The angle delta (in radians).
    • setPanIncrement

      public void setPanIncrement​(double panIncrement)
      Sets the standard increment for panning left and right (a rotation specified in radians).
      Parameters:
      panIncrement - the increment (in radians).
    • getRotateIncrement

      public double getRotateIncrement()
      Returns the angle delta for each rotate up or down. The default value is Math.PI / 60.
      Returns:
      The angle delta (in radians).
    • setRotateIncrement

      public void setRotateIncrement​(double rotateIncrement)
      Sets the vertical (up and down) rotation increment (in radians).
      Parameters:
      rotateIncrement - the increment (in radians).
    • getRollIncrement

      public double getRollIncrement()
      Returns the angle delta for each roll operation. The default value is Math.PI / 60.
      Returns:
      The angle delta (in radians).
    • setRollIncrement

      public void setRollIncrement​(double rollIncrement)
      Sets the roll increment in radians.
      Parameters:
      rollIncrement - the increment (in radians).
    • getViewPoint

      Returns the view point that is maintained by the Drawable3D instance on display.
      Returns:
      The view point (never null).
    • setViewPoint

      public void setViewPoint​(ViewPoint3D vp)
      Sets a new view point and repaints the panel.
      Parameters:
      vp - the view point (null not permitted).
    • getLastClickPoint

      protected Point getLastClickPoint()
      Returns the last click point (possibly null).
      Returns:
      The last click point (possibly null).
    • getRenderingInfo

      Returns the rendering info from the previous call to draw().
      Returns:
      The rendering info (possibly null).
    • panLeftRight

      public void panLeftRight​(double angle)
      Rotates the view point around from left to right by the specified angle and repaints the 3D scene. The direction relative to the world coordinates depends on the orientation of the view point.
      Parameters:
      angle - the angle of rotation (in radians).
    • zoomToFit

      public void zoomToFit()
      Adjusts the viewing distance so that the chart fits the current panel size. A margin is left (see getMargin() around the edges to leave room for labels etc.
    • zoomToFit

      public void zoomToFit​(Dimension2D size)
      Adjusts the viewing distance so that the chart fits the specified size. A margin is left (see getMargin() around the edges to leave room for labels etc.
      Parameters:
      size - the target size (null not permitted).
    • paintComponent

      public void paintComponent​(Graphics g)
      Paints the panel by asking the drawable to render a 2D projection of the objects it is managing.
      Overrides:
      paintComponent in class JComponent
      Parameters:
      g - the graphics target (null not permitted, assumed to be an instance of Graphics2D).
    • registerForTooltips

      public void registerForTooltips()
      Registers this component with the tool tip manager.
      Since:
      1.3
    • unregisterForTooltips

      public void unregisterForTooltips()
      Unregisters this component with the tool tip manager.
      Since:
      1.3
    • mouseClicked

      public void mouseClicked​(MouseEvent e)
      Specified by:
      mouseClicked in interface MouseListener
    • mouseEntered

      public void mouseEntered​(MouseEvent e)
      Specified by:
      mouseEntered in interface MouseListener
    • mouseExited

      public void mouseExited​(MouseEvent e)
      Specified by:
      mouseExited in interface MouseListener
    • mousePressed

      public void mousePressed​(MouseEvent e)
      Specified by:
      mousePressed in interface MouseListener
    • mouseReleased

      public void mouseReleased​(MouseEvent e)
      Specified by:
      mouseReleased in interface MouseListener
    • mouseDragged

      public void mouseDragged​(MouseEvent e)
      Specified by:
      mouseDragged in interface MouseMotionListener
    • mouseMoved

      public void mouseMoved​(MouseEvent e)
      Specified by:
      mouseMoved in interface MouseMotionListener
    • mouseWheelMoved

      public void mouseWheelMoved​(MouseWheelEvent mwe)
      Receives notification of a mouse wheel movement and responds by moving the viewpoint in or out (zooming).
      Specified by:
      mouseWheelMoved in interface MouseWheelListener
      Parameters:
      mwe - the mouse wheel event.