## org.j3d.geom.overlay
Class ScribbleOverlay

public class ScribbleOverlay
extends org.j3d.geom.overlay.MouseOverlay

  An overlay allows the user to scribble on the screen, over the top of the 3D display.

Version:
  $Revision: 1.6 $
Author:
  Justin Couch

Field Detail

### lineList

    private java.util.ArrayList lineList

  A mapping of the color value to lines drawn in that color. Each element of the list is an instance of LineDetails. The line is in drawing order so that we may have a set of LineDetails with the same color more than once in the list.

### currentColor

    private java.awt.Color currentColor

  The current colour that we are drawing new lines in

### currentLine

    private org.j3d.geom.overlay.LineData currentLine

  The current line that we are adding points to

### currentLineDetails

    private org.j3d.geom.overlay.LineDetails currentLineDetails

  The current set of lines that match the current color

### worldPoint

    private java.awt.Point worldPoint

  Working variable to prevent garbage generation

Constructor Detail

### ScribbleOverlay

    public ScribbleOverlay(javax.media.j3d.Canvas3D canvas,
                           java.awt.Dimension size)

  Create a new scribble overlay that bases its size on the canvas it overlays. The default line colour is white. If the bounds are null, the overlay works for the entire canvas.

Parameters:
  `canvas` - The canvas that is scribbled on
  `size` - The size of the overlay in pixels

### ScribbleOverlay

    public ScribbleOverlay(javax.media.j3d.Canvas3D canvas,
                           java.awt.Dimension size,
                           java.awt.Color lineColor)

  Create a new scribble overlay using the given line color. If the bounds are null, the overlay works for the entire canvas.

Parameters:
  `canvas` - The canvas that is scribbled on
  `size` - The size of the overlay in pixels
  `lineColor` - The colour to start the first line with

Method Detail

### initialize

    public void initialize()

  Initialise the overlay to build mouse input support

### paint

    public void paint(java.awt.Graphics2D g)

  Paint the overlay with the given graphics context. All lines are drawn in their alloted colors.

Parameters:
  `g` - The graphics context to paint with

### mousePressed

    public void mousePressed(java.awt.event.MouseEvent evt)

  Process a mouse press event to start a new line in the given color.

Parameters:
  `evt` - The event that caused this method to be called

### mouseReleased

    public void mouseReleased(java.awt.event.MouseEvent evt)

  Process a mouse release event.

Parameters:
  `evt` - The event that caused this method to be called

### mouseDragged

    public void mouseDragged(java.awt.event.MouseEvent evt)

  Process a mouse drag event. Adds another segment to the line.

Parameters:
  `evt` - The event that caused this method to be called

### setLineColor

    public void setLineColor(java.awt.Color color)

  Set the line colour that any new lines will be drawn in. All currently held lines will maintain their alloted color. A value of null will throw an exception.

Parameters:
  `color` - The new color to use

### clear

    public void clear()

  Clear the current screen. This removes all of the current lines from the active drawn list.