Package uk.ac.starlink.topcat.plot

# Class Plot3DWindow

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
uk.ac.starlink.topcat.AuxWindow
uk.ac.starlink.topcat.plot.GraphicsWindow
uk.ac.starlink.topcat.plot.Plot3DWindow

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `EventListener`, `Accessible`, `RootPaneContainer`, `WindowConstants`, `TopcatListener`

Direct Known Subclasses:
  `Cartesian3DWindow`, `SphereWindow`

public abstract class Plot3DWindow extends GraphicsWindow implements TopcatListener
Graphics window for viewing 3D scatter plots.

Since:
  22 Nov 2005
Author:
  Mark Taylor
See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class uk.ac.starlink.topcat.plot.GraphicsWindow

`GraphicsWindow.ExportAction, GraphicsWindow.ReplotListener`

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

`JFrame.AccessibleJFrame`

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

`Frame.AccessibleAWTFrame`

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

`Window.AccessibleAWTWindow, Window.Type`

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

`accessibleContext, rootPane, rootPaneCheckingEnabled`

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

`CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR`

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

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

### Fields inherited from interface javax.swing.WindowConstants

`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

## Constructor Summary

Constructors
Constructor
Description
`Plot3DWindow(String viewName, String[] axisNames, int naux, Component parent, ErrorModeSelectionModel[] errorModeModels, uk.ac.starlink.ttools.plot.Plot3D plot)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected uk.ac.starlink.ttools.plot.PlotState`
`createPlotState()`
Constructs a new PlotState.
`protected void`
`doReplot(uk.ac.starlink.ttools.plot.PlotState state)`
Performs an actual plot.
`uk.ac.starlink.ttools.plot.StyleSet`
`getDefaultStyles(int npoint)`
Returns a StyleSet which can supply markers.
`ToggleButtonModel`
`getNorthModel()`
Returns the model which toggles whether the orientation of the plot always points up on the screen.
`protected JComponent`
`getPlotPanel()`
Returns the component containing the graphics output of this window.
`uk.ac.starlink.ttools.plot.PlotState`
`getPlotState()`
Returns an object which characterises the choices the user has made in the GUI to indicate the plot that s/he wants to see.
`void`
`modelChanged(TopcatEvent evt)`
Invoked when the model has changed in some way.
`void`
`setRotation(double[] matrix)`
Sets the viewing angle.

### Methods inherited from class uk.ac.starlink.topcat.plot.GraphicsWindow

`addExtraAxes, addNewSubsets, calculateRanges, createErrorModeMenu, createErrorModeModels, createErrorRendererMenu, createMarkerStyleMenu, createPointSelector, createStyleEditor, dispose, fixDefaultErrorRenderers, getAuxAxisCount, getAxisEditAction, getAxisWindow, getColumnIndex, getDataRanges, getErrorModeModels, getExportMenu, getExtrasPanel, getFlipModels, getGridModel, getLegendModel, getLogModels, getMainRangeCount, getPadRatio, getPlot, getPoints, getPointSelectors, getPointSelectorToolBar, getReplotAction, getReplotListener, getRescaleAction, getStandardMarkStyleSets, getStatusBox, getStyles, getViewRanges, getVisibleAuxAxisCount, init, isLegendInteresting, replot, setGuidePointCount, setMainTable, setPadRatio, setStyles, setVisible`

### Methods inherited from class uk.ac.starlink.topcat.AuxWindow

`addHelp, beep, confirm, createImportTableAction, createSaveTableAction, getBodyPanel, getControlPanel, getHelpMenu, getIconImage, getMainArea, getSponsorLogos, getToolBar, getWindowMenu, makeTitledBorder, makeVisible, placeProgressBar, positionAfter, recursiveSetEnabled, setBusy, setCloseIsExit, setMainHeading`

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

`addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

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

`addNotify, getCursorType, getExtendedState, getFrames, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

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

`addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, show, toBack, toFront`

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

`add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

### Methods inherited from interface java.awt.MenuContainer

`getFont, postEvent`

## Constructor Details

### Plot3DWindow

public Plot3DWindow(String viewName, String[] axisNames, int naux, Component parent, ErrorModeSelectionModel[] errorModeModels, uk.ac.starlink.ttools.plot.Plot3D plot)
Constructor.

Parameters:
  `viewName` - name of the view window
  `axisNames` - array of labels by which each axis is known; the length of this array defines the dimensionality of the plot
  `naux` - number of auxiliary axes
  `parent` - parent window - may be used for positioning
  `errorModeModels` - array of selecction models for error modes
  `plot` - the Plot3D object on which plotting is done

## Method Details

### setRotation

public void setRotation(double[] matrix)
Sets the viewing angle.

Parameters:
  `matrix` - 9-element array giving rotation of data space

### getPlotPanel

protected JComponent getPlotPanel()
Description copied from class: `GraphicsWindow`
Returns the component containing the graphics output of this window. This is the component which is exported or printed etc alongside the legend which is managed by GraphicsWindow. It should therefore contain only the output data, not any user interface decoration.

Specified by:
  `getPlotPanel` in class `GraphicsWindow`
Returns:
  plot container

### createPlotState

protected uk.ac.starlink.ttools.plot.PlotState createPlotState()
Description copied from class: `GraphicsWindow`
Constructs a new PlotState. This is called by `GraphicsWindow.getPlotState()` prior to the PlotState configuration done there. Thus if a subclass wants to provide and configure a particular state (for instance one of a specialised subclass of PlotState) it can override this method to do so. The default implementation just invokes `new PlotState()`.

Overrides:
  `createPlotState` in class `GraphicsWindow`
Returns:
  returns a new PlotState object ready for generic configuration

### getPlotState

public uk.ac.starlink.ttools.plot.PlotState getPlotState()
Description copied from class: `GraphicsWindow`
Returns an object which characterises the choices the user has made in the GUI to indicate the plot that s/he wants to see.

The `GraphicsWindow` implementation of this method as well as populating the state with standard information also calls `PointSelection.readPoints(javax.swing.BoundedRangeModel)` and `GraphicsWindow.calculateRanges(uk.ac.starlink.topcat.plot.PointSelection, uk.ac.starlink.topcat.plot.Points, uk.ac.starlink.ttools.plot.PlotState)` if necessary.

Overrides:
  `getPlotState` in class `GraphicsWindow`
Returns:
  snapshot of the currently-selected plot request

### getDefaultStyles

public uk.ac.starlink.ttools.plot.StyleSet getDefaultStyles(int npoint)
Description copied from class: `GraphicsWindow`
Returns a StyleSet which can supply markers. The `npoint` may be used as a hint for how many points are expected to be drawn with it.

Specified by:
  `getDefaultStyles` in class `GraphicsWindow`
Parameters:
  `npoint` - approximate number of points - use -1 for unknown
Returns:
  style factory

### doReplot

protected void doReplot(uk.ac.starlink.ttools.plot.PlotState state)
Description copied from class: `GraphicsWindow`
Performs an actual plot.

Overrides:
  `doReplot` in class `GraphicsWindow`
Parameters:
  `state` - plot state determining details of plot configuration

### getNorthModel

public ToggleButtonModel getNorthModel()
Returns the model which toggles whether the orientation of the plot always points up on the screen.

Returns:
  keep north action

### modelChanged

public void modelChanged(TopcatEvent evt)
Description copied from interface: `TopcatListener`
Invoked when the model has changed in some way.

Specified by:
  `modelChanged` in interface `TopcatListener`
Parameters:
  `evt` - event description