org.mbari.siam.moos.utils.chart.graph
Class Contour

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Canvas
          extended by org.mbari.siam.moos.utils.chart.graph.Graph2D
              extended by org.mbari.siam.moos.utils.chart.graph.G2Dint
                  extended by org.mbari.siam.moos.utils.chart.graph.Contour
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class Contour
extends G2Dint

This class extends the interactive graphics class G2Dint to incorporate contouring.

Version:
$Revision: 1.2 $, $Date: 2011/08/17 19:09:20 $.
Author:
Leigh Brookshaw
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Canvas
java.awt.Canvas.AccessibleAWTCanvas
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  boolean autoLabels
          If true the labels will be calculated for each contour level.
protected  boolean autoLevels
          If set the class calculates the contour levels based on the data minimum and maximum.
protected  java.awt.Color contourColor
          Color to draw non labelled contour line
protected  java.util.Vector[] curves
          Vector array containing the Contour curves.
protected  boolean drawlabels
          If false labels are not drawn
protected  double[] grid
          The data grid, a 2D array stored in linear form.
protected  boolean gridLimits
           
protected  java.awt.Color labelcolor
          Color to use in drawing Labels
protected  java.awt.Font labelfont
          Font to use in drawing Labels
protected  java.awt.Color labelledColor
          Color to draw labelled contour line
protected  int labelLevels
          Which levels will get labels.
protected  int labelPrecision
          Precision to use in drawing Labels.
protected  TextLine[] labels
          The label for each contour level
protected  int labelSignificant
          Number of Significant figures to use in drawing Labels.
protected  int labelStyle
          Style to use in drawing Labels.
protected  double[] levels
           
protected  boolean logLevels
           
 boolean noContours
          Boolean value if true Contours will not be calculated
protected  int nx
          Dimension of the contour grid in the X direction
protected  int ny
          Dimension of the contour grid in the Y direction
protected  double xmax
          The X maximum limit of the data grid
protected  double xmin
          The X minimum limit of the data grid
protected  double ymax
          The Y maximum limit of the data grid
protected  double ymin
          The Y minimum limit of the data grid
protected  double zmax
          The maximum value of the grid values
protected  double zmin
          The minimum value of the grid values
 
Fields inherited from class org.mbari.siam.moos.utils.chart.graph.G2Dint
drag, userlimits, xaxis, yaxis
 
Fields inherited from class org.mbari.siam.moos.utils.chart.graph.Graph2D
axis, borderBottom, borderLeft, borderRight, borderTop, clearAll, DataBackground, datarect, dataset, drawgrid, drawzero, frame, framecolor, gridcolor, lastText, load_thread, loadingData, markers, paintAll, square, zerocolor
 
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
 
Constructor Summary
Contour()
          Instantaite the class
 
Method Summary
 void attachContours()
          Attach contours so that they will be plotted.
protected  void calculateCurves()
           
 void deleteContours()
          Delete all the Contours
 void detachContours()
          Detach contours so that they will not be plotted.
 int[] getDim()
          return the dimensions of the grid
 double[] getGrid()
          Return the grid
 int getLabelPrecision()
          Get the label precision.
 int getLabelSignificance()
          Get the number of significant figures for labels.
 int getLabelStyle()
          Get the label style, either TextLine.SCIENTIFIC or TextLine.ALGEBRAIC.
 double[] getLevels()
          Return the contour levels.
 double[] getRange()
          Return the range of the grid
 boolean keyDown(java.awt.Event e, int key)
          Add extra events to the G2Dint event handler.
 boolean loadGrid(java.net.URL file)
          Load the grid to contour from a URL.
 void paintFirst(java.awt.Graphics g, java.awt.Rectangle r)
          A hook into the Graph2D.paint method.
 void paintLast(java.awt.Graphics g, java.awt.Rectangle rect)
          A hook into the Graph2D.paint method.
 void setAutoLevels(boolean b)
          If true contour levels are calculated automatically.
 void setContourColor(java.awt.Color c)
          Set the contour's color.
 void setDrawLabels(boolean b)
          If true contour levels are not labeled.
 void setGrid(double[] grid, int nx, int ny)
          Set the grid to be contoured.
 void setLabelColor(java.awt.Color c)
          Set the Color to be used with all the labels.
 void setLabelFont(java.awt.Font f)
          Set the font to be used with All the labels
 void setLabelledContourColor(java.awt.Color c)
          Set the labelled contour's color.
 void setLabelLevels(int i)
          Set the contour levels that are to have labels.
 void setLabelPrecision(int p)
          Set the label precision.
 void setLabels(TextLine[] labels, int nl)
          Manually set the Contour labels.
 void setLabelSignificance(int s)
          Set the label significant figures.
 void setLabelStyle(int s)
          Set the label style, either TextLine.SCIENTIFIC or TextLine.ALGEBRAIC.
 void setLevels(double[] levels, int nl)
          Manually set the contour levels.
 void setLimitsToGrid(boolean b)
          If true the limits of the plot will be the grid limits.
 void setLogLevels(boolean b)
          If true contour levels are calculated on a log scale.
 void setNLevels(int l)
          Set the number of contour levels.
 void setRange(double xmin, double xmax, double ymin, double ymax)
          Set the range of the grid
 
Methods inherited from class org.mbari.siam.moos.utils.chart.graph.G2Dint
action, attachAxis, createXAxis, createYAxis, getClosestPoint, mouseDown, mouseDrag, mouseMove, mouseUp, update
 
Methods inherited from class org.mbari.siam.moos.utils.chart.graph.Graph2D
attachDataSet, createAxis, detachAxes, detachAxis, detachDataSet, detachDataSets, drawAxis, drawFrame, finishedloading, ForceSquare, getDataRectangle, getMarkers, getXmax, getXmin, getYmax, getYmin, loadDataSet, loadFile, loadmessage, paint, paintBeforeData, setDataBackground, setGraphBackground, setMarkers, startedloading
 
Methods inherited from class java.awt.Canvas
addNotify, createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy
 
Methods inherited from class java.awt.Component
add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseEnter, mouseExit, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

nx

protected int nx
Dimension of the contour grid in the X direction


ny

protected int ny
Dimension of the contour grid in the Y direction


curves

protected java.util.Vector[] curves
Vector array containing the Contour curves. Each index in the array contains curves at a given contour level


autoLevels

protected boolean autoLevels
If set the class calculates the contour levels based on the data minimum and maximum. Default value true.


logLevels

protected boolean logLevels

gridLimits

protected boolean gridLimits

levels

protected double[] levels

labels

protected TextLine[] labels
The label for each contour level


labelfont

protected java.awt.Font labelfont
Font to use in drawing Labels


labelcolor

protected java.awt.Color labelcolor
Color to use in drawing Labels


labelStyle

protected int labelStyle
Style to use in drawing Labels. TextLine.SCIENTIFIC or TextLine.ALGEBRAIC.


labelPrecision

protected int labelPrecision
Precision to use in drawing Labels.


labelSignificant

protected int labelSignificant
Number of Significant figures to use in drawing Labels.


labelLevels

protected int labelLevels
Which levels will get labels. If it is equal to 1 every level gets a label, equal to 2 every second level etc. If it is equal to 0 no labels are displayed.


drawlabels

protected boolean drawlabels
If false labels are not drawn


autoLabels

protected boolean autoLabels
If true the labels will be calculated for each contour level. These might not look all that hot.


contourColor

protected java.awt.Color contourColor
Color to draw non labelled contour line


labelledColor

protected java.awt.Color labelledColor
Color to draw labelled contour line


grid

protected double[] grid
The data grid, a 2D array stored in linear form. It is assumed that [0,0] is the bottom left corner and the data is ordered by row.


xmin

protected double xmin
The X minimum limit of the data grid


xmax

protected double xmax
The X maximum limit of the data grid


ymin

protected double ymin
The Y minimum limit of the data grid


ymax

protected double ymax
The Y maximum limit of the data grid


zmin

protected double zmin
The minimum value of the grid values


zmax

protected double zmax
The maximum value of the grid values


noContours

public boolean noContours
Boolean value if true Contours will not be calculated

Constructor Detail

Contour

public Contour()
Instantaite the class

Method Detail

loadGrid

public boolean loadGrid(java.net.URL file)
Load the grid to contour from a URL. There are 2 formats for the data optionally the limits of the grid can be parsed.
  The expected format of the data 
           1st Number:   nx
           2nd Number:   ny
           nx*ny numbers following

  Optionally
           1st Number:   nx
           2nd Number:   ny
           3rd Number:   xmin
           4th Number:   xmax
           5th Number:   ymin
           6th Number:   ymax
           nx*ny numbers following
  

If xmin, xmax, ymin, ymax are not specified they are assumed to be [1.0,nx,1.0,ny]

Parameters:
file - URL of the file to load
Returns:
true of the load was successful.

setRange

public void setRange(double xmin,
                     double xmax,
                     double ymin,
                     double ymax)
Set the range of the grid

Parameters:
xmin - Minimum X value
xmax - Maximum X value
ymin - Minimum Y value
ymax - Maximum Y value

getRange

public double[] getRange()
Return the range of the grid

Returns:
An array contining xmin,xmax,ymin,ymax.

getDim

public int[] getDim()
return the dimensions of the grid

Returns:
An array containing the number of columns, number of rows.

getGrid

public double[] getGrid()
Return the grid

Returns:
An array of size nx by ny contining the data grid.

setLevels

public void setLevels(double[] levels,
                      int nl)
Manually set the contour levels.

Parameters:
levels - An array containing the contour levels
nl - The number of contour levels in the arrray

setLabels

public void setLabels(TextLine[] labels,
                      int nl)
Manually set the Contour labels.

Parameters:
labels - An array containing the labels.
nl - Number of labels in the Array.

setLabelFont

public void setLabelFont(java.awt.Font f)
Set the font to be used with All the labels

Parameters:
f - Font

setLabelColor

public void setLabelColor(java.awt.Color c)
Set the Color to be used with all the labels.

Parameters:
c - Color

setGrid

public void setGrid(double[] grid,
                    int nx,
                    int ny)
Set the grid to be contoured.

Parameters:
grid - Array of values
nx - Number of columns
ny - Number of rows

deleteContours

public void deleteContours()
Delete all the Contours


detachContours

public void detachContours()
Detach contours so that they will not be plotted.


attachContours

public void attachContours()
Attach contours so that they will be plotted.


setContourColor

public void setContourColor(java.awt.Color c)
Set the contour's color.

Parameters:
c - Color

setLabelledContourColor

public void setLabelledContourColor(java.awt.Color c)
Set the labelled contour's color.

Parameters:
c - Color

getLevels

public double[] getLevels()
Return the contour levels.

Returns:
An array containing the contour levels

setLimitsToGrid

public void setLimitsToGrid(boolean b)
If true the limits of the plot will be the grid limits. If false the limits of the plot will be the contours.

Parameters:
b - boolean

setLabelLevels

public void setLabelLevels(int i)
Set the contour levels that are to have labels.
    if 0 no labels are drawn
    if 1 every level gets a label
    If 2 every 2nd level gets a label
    etc.
 


setLogLevels

public void setLogLevels(boolean b)
If true contour levels are calculated on a log scale.

Parameters:
b - boolean

setNLevels

public void setNLevels(int l)
Set the number of contour levels.

Parameters:
l - Number of contour levels

setAutoLevels

public void setAutoLevels(boolean b)
If true contour levels are calculated automatically.

Parameters:
b - boolean

setDrawLabels

public void setDrawLabels(boolean b)
If true contour levels are not labeled.

Parameters:
b - boolean

setLabelStyle

public void setLabelStyle(int s)
Set the label style, either TextLine.SCIENTIFIC or TextLine.ALGEBRAIC.

Parameters:
s - Style

getLabelStyle

public int getLabelStyle()
Get the label style, either TextLine.SCIENTIFIC or TextLine.ALGEBRAIC.

Returns:
style

setLabelPrecision

public void setLabelPrecision(int p)
Set the label precision.

Parameters:
p - Precision

getLabelPrecision

public int getLabelPrecision()
Get the label precision.

Returns:
precision

setLabelSignificance

public void setLabelSignificance(int s)
Set the label significant figures.

Parameters:
s - number of significant figures

getLabelSignificance

public int getLabelSignificance()
Get the number of significant figures for labels.

Returns:
number of significant figures

keyDown

public boolean keyDown(java.awt.Event e,
                       int key)
Add extra events to the G2Dint event handler. If 'l' is pressed repaint without the labels If 'L' is pressed repaint with the labels.

Overrides:
keyDown in class G2Dint

paintFirst

public void paintFirst(java.awt.Graphics g,
                       java.awt.Rectangle r)
Description copied from class: Graph2D
A hook into the Graph2D.paint method. This is called before anything is plotted. The rectangle passed is the dimension of the canvas minus the border dimensions.

Overrides:
paintFirst in class Graph2D
Parameters:
g - Graphics state
r - Rectangle containing the graph

paintLast

public void paintLast(java.awt.Graphics g,
                      java.awt.Rectangle rect)
Description copied from class: Graph2D
A hook into the Graph2D.paint method. This is called after everything has been drawn. The rectangle passed is the dimension of the data window.

Overrides:
paintLast in class Graph2D
Parameters:
g - Graphics state
rect - Rectangle containing the data

calculateCurves

protected void calculateCurves()


Copyright © 2003 MBARI.

The Monterey Bay Aquarium Research Institute (MBARI) provides this documentation and code "as is", with no warranty, express or implied, of its quality or consistency. It is provided without support and without obligation on the part of MBARI to assist in its use, correction, modification, or enhancement.