Module org.jfree.chart3d
Package org.jfree.chart3d.graphics3d.swing

# Class Panel3D

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.jfree.chart3d.graphics3d.swing.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

## Nested Class Summary

## Nested classes/interfaces inherited from class javax.swing.JPanel

`JPanel.AccessibleJPanel`

## Nested classes/interfaces inherited from class javax.swing.JComponent

`JComponent.AccessibleJComponent`

## Nested classes/interfaces inherited from class java.awt.Container

`Container.AccessibleAWTContainer`

## Nested classes/interfaces inherited from class java.awt.Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

## Field Summary

### Fields inherited from class javax.swing.JComponent

`listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

### Fields inherited from class java.awt.Component

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

## Constructor Summary

Constructors
Constructor
Description
`Panel3D(Drawable3D drawable)`
Creates a new panel with the specified `Drawable3D` to display.

## Method Summary

Modifier and Type
Method
Description
`Drawable3D`
`getDrawable()`
Returns the `Drawable3D` object that is displayed in this panel.
`protected Point`
`getLastClickPoint()`
Returns the last click point (possibly `null`).
`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.
`double`
`getMaxViewingDistanceMultiplier()`
Returns the multiplier for the maximum viewing distance (a multiple of the minimum viewing distance).
`double`
`getMinViewingDistance()`
Returns the minimum viewing distance.
`double`
`getPanIncrement()`
Returns the angle delta for each pan left or right.
`protected RenderingInfo`
`getRenderingInfo()`
Returns the rendering info from the previous call to draw().
`double`
`getRollIncrement()`
Returns the angle delta for each roll operation.
`double`
`getRotateIncrement()`
Returns the angle delta for each rotate up or down.
`ViewPoint3D`
`getViewPoint()`
Returns the view point that is maintained by the `Drawable3D` instance on display.
`void`
`mouseClicked(MouseEvent e)`
`void`
`mouseDragged(MouseEvent e)`
`void`
`mouseEntered(MouseEvent e)`
`void`
`mouseExited(MouseEvent e)`
`void`
`mouseMoved(MouseEvent e)`
`void`
`mousePressed(MouseEvent e)`
`void`
`mouseReleased(MouseEvent e)`
`void`
`mouseWheelMoved(MouseWheelEvent mwe)`
Receives notification of a mouse wheel movement and responds by moving the viewpoint in or out (zooming).
`void`
`paintComponent(Graphics g)`
Paints the panel by asking the drawable to render a 2D projection of the objects it is managing.
`void`
`panLeftRight(double angle)`
Rotates the view point around from left to right by the specified angle and repaints the 3D scene.
`void`
`registerForTooltips()`
Registers this component with the tool tip manager.
`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.
`void`
`setMaxViewingDistanceMultiplier(double multiplier)`
Sets the multiplier used to calculate the maximum viewing distance.
`void`
`setPanIncrement(double panIncrement)`
Sets the standard increment for panning left and right (a rotation specified in radians).
`void`
`setRollIncrement(double rollIncrement)`
Sets the roll increment in radians.
`void`
`setRotateIncrement(double rotateIncrement)`
Sets the vertical (up and down) rotation increment (in radians).
`void`
`setViewPoint(ViewPoint3D vp)`
Sets a new view point and repaints the panel.
`void`
`unregisterForTooltips()`
Unregisters this component with the tool tip manager.
`void`
`zoomToFit()`
Adjusts the viewing distance so that the chart fits the current panel size.
`void`
`zoomToFit(Dimension2D size)`
Adjusts the viewing distance so that the chart fits the specified size.

### Methods inherited from class javax.swing.JPanel

`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

### Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

### Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

### Methods inherited from class java.awt.Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## 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

public Drawable3D 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

public double 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

public ViewPoint3D 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

protected RenderingInfo 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.