sub_arctic.output
Class trace_drawable

java.lang.Object
  |
  +--java.awt.Graphics
        |
        +--sub_arctic.output.drawable
              |
              +--sub_arctic.output.drawable_wrapper
                    |
                    +--sub_arctic.output.trace_drawable

public class trace_drawable
extends drawable_wrapper

This class creates a drawable_wrapper object which does a debugging trace print of its operations as it draws (then forwards the actual drawing operation to its wrapped drawable).


Field Summary
protected  boolean _trace_enabled
          Flag to indicate that tracing is enabled (starts off true).
protected  java.io.PrintStream _trace_out
          PrintStream object we write trace lines to.
 
Fields inherited from class sub_arctic.output.drawable_wrapper
_wrappee
 
Fields inherited from class sub_arctic.output.drawable
_ignore, g
 
Constructor Summary
trace_drawable(drawable rappee)
          Constructor that defaults its trace output to System.out.
trace_drawable(drawable rappee, java.io.PrintStream outfile)
          Simple constructor
trace_drawable(java.awt.Graphics rappee, java.io.PrintStream outfile)
          Constructor working from a Graphics.
 
Method Summary
 void arrowhead_bound(int x1, int y1, int x2, int y2, int arrow_head_len, int arrow_head_angle, double arrow_inset, java.awt.Point min_pt, java.awt.Point max_pt)
          Find the min and max points bounding the arrowhead that would be drawn at the second point on the given line.
 void clearRect(int x, int y, int w, int h)
           
 void clipRect(int x, int y, int w, int h)
           
 void copyArea(int x, int y, int w, int h, int dx, int dy)
           
 java.awt.Graphics create()
          Override create() to create the properly typed wrapper around a copy of the object we wrap.
 java.awt.Graphics create(int x, int y, int w, int h)
          Override create() to create the properly typed wrapper around a copy of the object we wrap.
 void dispose()
           
 void draw_arrowhead(int x1, int y1, int x2, int y2, int arrow_head_len, int arrow_head_angle, double arrow_inset)
          Draw a hollow arrowhead (as lines) at the second end of the given line (this does not draw the line).
 void draw3DRect(int x, int y, int w, int h, boolean raised)
           
 void drawArc(int x, int y, int w, int h, int start_ang, int arc_ang)
           
 void drawBytes(byte[] data, int off, int len, int x, int y)
           
 void drawChars(char[] data, int off, int len, int x, int y)
           
 boolean drawImage(java.awt.Image img, int x, int y, java.awt.Color bgcolor, java.awt.image.ImageObserver obs)
           
 boolean drawImage(java.awt.Image img, int x, int y, java.awt.image.ImageObserver observer)
           
 boolean drawImage(java.awt.Image img, int x, int y, int w, int h, java.awt.Color bgcolor, java.awt.image.ImageObserver obs)
           
 boolean drawImage(java.awt.Image img, int x, int y, int w, int h, java.awt.image.ImageObserver obs)
           
 boolean drawImage(loaded_image img, int x, int y)
          Extended draw image that can deal with a loaded_image w/o an observer.
 boolean drawImage(loaded_image img, int x, int y, java.awt.Color bgcolor)
          Extended draw image that can deal with a loaded_image w/o an observer.
 boolean drawImage(loaded_image img, int x, int y, int w, int h)
          Extended draw image that can deal with a loaded_image w/o an observer.
 boolean drawImage(loaded_image img, int x, int y, int w, int h, java.awt.Color bgcolor)
          Extended draw image that can deal with a loaded_image w/o an observer.
 void drawLine(int x1, int y1, int x2, int y2)
           
 void drawOval(int x, int y, int w, int h)
           
 void drawPolygon(int[] xp, int[] yp, int np)
           
 void drawPolygon(java.awt.Polygon p)
           
 void drawRect(int x, int y, int w, int h)
           
 void drawRoundRect(int x, int y, int w, int h, int arcw, int arch)
           
 void drawString(java.lang.String str, int x, int y)
           
 void end_interactor_draw(interactor of_interactor)
          Method to be called to mark the end of output for a particular interactor.
 void fill_arrowhead(int x1, int y1, int x2, int y2, int arrow_head_len, int arrow_head_angle, double arrow_inset)
          Draw a filled arrowhead polygon at the second end of the given line (this does not draw the line).
 void fill3DRect(int x, int y, int w, int h, boolean raised)
           
 void fillArc(int x, int y, int w, int h, int start_ang, int arc_ang)
           
 void fillOval(int x, int y, int w, int h)
           
 void fillPolygon(int[] xp, int[] yp, int np)
           
 void fillPolygon(java.awt.Polygon p)
           
 void fillRect(int x, int y, int w, int h)
           
 void fillRoundRect(int x, int y, int w, int h, int arcw, int arch)
           
 void finalize()
           
 java.awt.Rectangle getClipBounds()
           
 java.awt.Color getColor()
           
 java.awt.Font getFont()
           
 java.awt.FontMetrics getFontMetrics()
           
 java.awt.FontMetrics getFontMetrics(java.awt.Font f)
           
 boolean mark_interactor_draw(interactor of_interactor, java.lang.Object mark_obj)
          Method to be called to mark a significant point during output for a particular interactor.
 void set_trace_enabled(boolean v)
          Set the flag to indicate whether tracing is enabled.
 void set_trace_out(java.io.PrintStream new_out)
          Set the PrintStream object we write trace lines to.
 void setColor(java.awt.Color c)
           
 void setFont(java.awt.Font font)
           
 void setPaintMode()
           
 void setXORMode(java.awt.Color c)
           
 boolean start_interactor_draw(interactor of_interactor)
          Method to be called to mark the beginning of output for a particular interactor.
 boolean tileImage(loaded_image pattern, int x, int y, int w, int h)
          Tiled drawing of a pattern image over an area.
 java.lang.String toString()
          Convert to a human readable string.
 boolean trace_enabled()
          Flag to indicate that tracing is enabled (starts off true).
 java.io.PrintStream trace_out()
          PrintStream object we write trace lines to.
 void trace(java.lang.String str)
          Produce a line of trace.
 void translate(int x, int y)
           
 
Methods inherited from class sub_arctic.output.drawable_wrapper
copy, copy, graphics, setClip, wrappee
 
Methods inherited from class sub_arctic.output.drawable
arrowhead_bound, clear_rect, clip_rect, copy_area, draw_3D_rect, draw_arc, draw_arrowhead, draw_bytes, draw_chars, draw_image, draw_image, draw_image, draw_image, draw_image, draw_image, draw_image, draw_image, draw_image, draw_image, draw_image, draw_image, draw_line, draw_oval, draw_polygon, draw_polygon, draw_polyline, draw_rect, draw_round_rect, draw_string, drawImage, drawImage, drawImage, drawImage, drawPolyline, drawString, fill_3D_rect, fill_arc, fill_arrowhead, fill_oval, fill_polygon, fill_polygon, fill_rect, fill_round_rect, get_clip_bounds, get_clip, get_color, get_font_metrics, get_font_metrics, get_font, getClip, set_clip, set_clip, set_color, set_font, set_paint_mode, set_XOR_mode, setClip, tile_image
 
Methods inherited from class java.awt.Graphics
getClipBounds, getClipRect, hitClip
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_trace_enabled

protected boolean _trace_enabled
Flag to indicate that tracing is enabled (starts off true).

_trace_out

protected java.io.PrintStream _trace_out
PrintStream object we write trace lines to.
Constructor Detail

trace_drawable

public trace_drawable(drawable rappee,
                      java.io.PrintStream outfile)
Simple constructor
Parameters:
drawable - rappee the drawable we create a wrapper around.
PrintStream - outfile the print stream on which we produce trace output. If null is passed here System.out will be used by default (to turn tracing on or off use set_trace_enabled())

trace_drawable

public trace_drawable(drawable rappee)
Constructor that defaults its trace output to System.out.
Parameters:
drawable - rappee the drawable we create a wrapper around.

trace_drawable

public trace_drawable(java.awt.Graphics rappee,
                      java.io.PrintStream outfile)
Constructor working from a Graphics. We will basically create a plain drawable wrapping the given Graphics object, then use that as the drawable we wrap.
Parameters:
Graphics - rappee the object we are wrapper around.
PrintStream - outfile the print stream on which we produce trace output. If null is passed here System.out will be used by default (to turn tracing on or off use set_trace_enabled())
Method Detail

trace_enabled

public boolean trace_enabled()
Flag to indicate that tracing is enabled (starts off true).
Returns:
boolean indicating whether trace output is currently enabled

set_trace_enabled

public void set_trace_enabled(boolean v)
Set the flag to indicate whether tracing is enabled.
Parameters:
boolean - v new value for trace_enabled flag

trace_out

public java.io.PrintStream trace_out()
PrintStream object we write trace lines to.
Returns:
PrintStream our current output stream

set_trace_out

public void set_trace_out(java.io.PrintStream new_out)
Set the PrintStream object we write trace lines to.
Parameters:
PrintStream - new_out the new output stream

trace

public void trace(java.lang.String str)
Produce a line of trace. If tracing is not enabled, this does nothing.
Parameters:
String - str the text for the trace line.

create

public java.awt.Graphics create()
Override create() to create the properly typed wrapper around a copy of the object we wrap. Note: subclasses will typically need to do this also.
Returns:
Graphics a new trace_drawable object copied from this one.
Overrides:
create in class drawable_wrapper

create

public java.awt.Graphics create(int x,
                                int y,
                                int w,
                                int h)
Override create() to create the properly typed wrapper around a copy of the object we wrap. Note: subclasses will typically need to do this also.
Parameters:
int - x x component of origin of new drawable
int - y y component of origin of new drawable
int - w width of new drawable
int - h height of new drawable
Returns:
Graphics a new trace_drawable object derived from this one.
Overrides:
create in class drawable_wrapper

start_interactor_draw

public boolean start_interactor_draw(interactor of_interactor)
Method to be called to mark the beginning of output for a particular interactor. This is normally called (only) in draw_self(). The return value indicates whether the interactor (and its children) should be drawn (i.e., if false is returned, the drawing should be skipped and draw_self() should simply return).

Parameters:
interactor - of_interactor the interactor we are starting to draw
boolean - whether the drawing of the interactor (and its children) should be performed.
Overrides:
start_interactor_draw in class drawable_wrapper
See Also:
mark_interactor_draw(sub_arctic.lib.interactor, java.lang.Object), end_interactor_draw(sub_arctic.lib.interactor)

mark_interactor_draw

public boolean mark_interactor_draw(interactor of_interactor,
                                    java.lang.Object mark_obj)
Method to be called to mark a significant point during output for a particular interactor. The return value indicates whether the remaining output for the interactor (and its children) should be drawn (i.e., if false is returned, the remaining drawing should be skipped). The type and effect of the mark_obj parameter to this routine (as well as the effect of the routine) is dependent on subclasses that implement special effects via this call.
Parameters:
interactor - of_interactor the interactor we are currently drawing
Object - mark_obj an object giving additional information about the mark
boolean - whether the drawing of the interactor (and its children) should be performed.
Overrides:
mark_interactor_draw in class drawable_wrapper
See Also:
start_interactor_draw(sub_arctic.lib.interactor), end_interactor_draw(sub_arctic.lib.interactor)

end_interactor_draw

public void end_interactor_draw(interactor of_interactor)
Method to be called to mark the end of output for a particular interactor. This is normally called (only) in draw_self().

Parameters:
interactor - of_interactor the interactor we are starting to draw
Overrides:
end_interactor_draw in class drawable_wrapper
See Also:
mark_interactor_draw(sub_arctic.lib.interactor, java.lang.Object), start_interactor_draw(sub_arctic.lib.interactor)

drawImage

public boolean drawImage(loaded_image img,
                         int x,
                         int y)
Extended draw image that can deal with a loaded_image w/o an observer. If the image has not actually been loaded yet, this will block until it has.
Parameters:
loaded_image - img the image to be drawn.
int - x x position to place the image at.
int - y y position to place the image at.
Returns:
boolean undocumented return value from AWT drawImage() routine.
Overrides:
drawImage in class drawable_wrapper

drawImage

public boolean drawImage(loaded_image img,
                         int x,
                         int y,
                         int w,
                         int h)
Extended draw image that can deal with a loaded_image w/o an observer. If the image has not actually been loaded yet, this will block until it has.
Parameters:
loaded_image - img the image to be drawn.
int - x x position to place the image at.
int - y y position to place the image at.
int - w width image will be scaled to.
int - h height image will be scaled to.
Returns:
boolean undocumented return value from AWT drawImage() routine.
Overrides:
drawImage in class drawable_wrapper

drawImage

public boolean drawImage(loaded_image img,
                         int x,
                         int y,
                         java.awt.Color bgcolor)
Extended draw image that can deal with a loaded_image w/o an observer. If the image has not actually been loaded yet, this will block until it has.
Parameters:
loaded_image - img the image to be drawn.
int - x x position to place the image at.
int - y y position to place the image at.
Color - bgcolor background color.
Returns:
boolean undocumented return value from AWT drawImage() routine.
Overrides:
drawImage in class drawable_wrapper

drawImage

public boolean drawImage(loaded_image img,
                         int x,
                         int y,
                         int w,
                         int h,
                         java.awt.Color bgcolor)
Extended draw image that can deal with a loaded_image w/o an observer. If the image has not actually been loaded yet, this will block until it has.
Parameters:
loaded_image - img the image to be drawn.
int - x x position to place the image at.
int - y y position to place the image at.
int - w width image will be scaled to.
int - h height image will be scaled to.
Color - bgcolor background color.
Returns:
boolean undocumented return value from AWT drawImage() routine.
Overrides:
drawImage in class drawable_wrapper

tileImage

public boolean tileImage(loaded_image pattern,
                         int x,
                         int y,
                         int w,
                         int h)
Tiled drawing of a pattern image over an area. The given image is drawn repeatedly to fill the given area.
Parameters:
loaded_image - pattern the pattern to be tiled with the given space.
int - x x position to place the image at.
int - y y position to place the image at.
int - w width of area to tile.
int - h height of area to tile.
Returns:
boolean undocumented return value from AWT drawImage() routine.
Overrides:
tileImage in class drawable_wrapper

fill_arrowhead

public void fill_arrowhead(int x1,
                           int y1,
                           int x2,
                           int y2,
                           int arrow_head_len,
                           int arrow_head_angle,
                           double arrow_inset)
Draw a filled arrowhead polygon at the second end of the given line (this does not draw the line).

Parameters:
int - x1 first x coordinate of the line
int - y1 first y coordinate of the line
int - x2 second x coordinate of the line (arrow head point goes here)
int - y2 second y coordinate of the line (arrow head point goes here)
int - arrow_head_len length of the sides of the arrow head
int - arrow_head_angle angle between each side and the line in degrees
double - arrow_inset percent inset for base of arrow [0..1] (values around 0.60 seem to work well).
Overrides:
fill_arrowhead in class drawable_wrapper

draw_arrowhead

public void draw_arrowhead(int x1,
                           int y1,
                           int x2,
                           int y2,
                           int arrow_head_len,
                           int arrow_head_angle,
                           double arrow_inset)
Draw a hollow arrowhead (as lines) at the second end of the given line (this does not draw the line).

Parameters:
int - x1 first x coordinate of the line.
int - y1 first y coordinate of the line.
int - x2 second x coordinate of the line (arrow head point goes here).
int - y2 second y coordinate of the line (arrow head point goes here).
int - arrow_head_len length of the sides of the arrow head.
int - arrow_head_angle angle between each side and the line in degrees.
double - arrow_inset percent inset for base of arrow [0..1] (values around 0.60 seem to work well).
Overrides:
draw_arrowhead in class drawable_wrapper

arrowhead_bound

public void arrowhead_bound(int x1,
                            int y1,
                            int x2,
                            int y2,
                            int arrow_head_len,
                            int arrow_head_angle,
                            double arrow_inset,
                            java.awt.Point min_pt,
                            java.awt.Point max_pt)
Find the min and max points bounding the arrowhead that would be drawn at the second point on the given line.

Parameters:
int - x1 first x coordinate of the line
int - y1 first y coordinate of the line
int - x2 second x coordinate of the line (arrow head point goes here)
int - y2 second y coordinate of the line (arrow head point goes here)
int - arrow_head_len length of the sides of the arrow head
int - arrow_head_angle angle between each side and the line in degrees
double - arrow_inset percent inset for base of arrow [0..1]
Point - min_pt returns holding the min x,y of the bound
Point - max_pt returns holding the max x,y of the bound
Overrides:
arrowhead_bound in class drawable_wrapper

getColor

public java.awt.Color getColor()
Overrides:
getColor in class drawable_wrapper

setColor

public void setColor(java.awt.Color c)
Overrides:
setColor in class drawable_wrapper

setPaintMode

public void setPaintMode()
Overrides:
setPaintMode in class drawable_wrapper

setXORMode

public void setXORMode(java.awt.Color c)
Overrides:
setXORMode in class drawable_wrapper

getFont

public java.awt.Font getFont()
Overrides:
getFont in class drawable_wrapper

setFont

public void setFont(java.awt.Font font)
Overrides:
setFont in class drawable_wrapper

getFontMetrics

public java.awt.FontMetrics getFontMetrics()
Overrides:
getFontMetrics in class drawable_wrapper

getFontMetrics

public java.awt.FontMetrics getFontMetrics(java.awt.Font f)
Overrides:
getFontMetrics in class drawable_wrapper

getClipBounds

public java.awt.Rectangle getClipBounds()
Overrides:
getClipBounds in class drawable_wrapper

clipRect

public void clipRect(int x,
                     int y,
                     int w,
                     int h)
Overrides:
clipRect in class drawable_wrapper

translate

public void translate(int x,
                      int y)
Overrides:
translate in class drawable_wrapper

dispose

public void dispose()
Overrides:
dispose in class drawable_wrapper

finalize

public void finalize()
Overrides:
finalize in class drawable_wrapper

copyArea

public void copyArea(int x,
                     int y,
                     int w,
                     int h,
                     int dx,
                     int dy)
Overrides:
copyArea in class drawable_wrapper

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
Overrides:
drawLine in class drawable_wrapper

fillRect

public void fillRect(int x,
                     int y,
                     int w,
                     int h)
Overrides:
fillRect in class drawable_wrapper

drawRect

public void drawRect(int x,
                     int y,
                     int w,
                     int h)
Overrides:
drawRect in class drawable_wrapper

clearRect

public void clearRect(int x,
                      int y,
                      int w,
                      int h)
Overrides:
clearRect in class drawable_wrapper

drawRoundRect

public void drawRoundRect(int x,
                          int y,
                          int w,
                          int h,
                          int arcw,
                          int arch)
Overrides:
drawRoundRect in class drawable_wrapper

fillRoundRect

public void fillRoundRect(int x,
                          int y,
                          int w,
                          int h,
                          int arcw,
                          int arch)
Overrides:
fillRoundRect in class drawable_wrapper

draw3DRect

public void draw3DRect(int x,
                       int y,
                       int w,
                       int h,
                       boolean raised)
Overrides:
draw3DRect in class drawable_wrapper

fill3DRect

public void fill3DRect(int x,
                       int y,
                       int w,
                       int h,
                       boolean raised)
Overrides:
fill3DRect in class drawable_wrapper

drawOval

public void drawOval(int x,
                     int y,
                     int w,
                     int h)
Overrides:
drawOval in class drawable_wrapper

fillOval

public void fillOval(int x,
                     int y,
                     int w,
                     int h)
Overrides:
fillOval in class drawable_wrapper

drawArc

public void drawArc(int x,
                    int y,
                    int w,
                    int h,
                    int start_ang,
                    int arc_ang)
Overrides:
drawArc in class drawable_wrapper

fillArc

public void fillArc(int x,
                    int y,
                    int w,
                    int h,
                    int start_ang,
                    int arc_ang)
Overrides:
fillArc in class drawable_wrapper

drawPolygon

public void drawPolygon(int[] xp,
                        int[] yp,
                        int np)
Overrides:
drawPolygon in class drawable_wrapper

drawPolygon

public void drawPolygon(java.awt.Polygon p)
Overrides:
drawPolygon in class drawable_wrapper

fillPolygon

public void fillPolygon(int[] xp,
                        int[] yp,
                        int np)
Overrides:
fillPolygon in class drawable_wrapper

fillPolygon

public void fillPolygon(java.awt.Polygon p)
Overrides:
fillPolygon in class drawable_wrapper

drawString

public void drawString(java.lang.String str,
                       int x,
                       int y)
Overrides:
drawString in class drawable_wrapper

drawChars

public void drawChars(char[] data,
                      int off,
                      int len,
                      int x,
                      int y)
Overrides:
drawChars in class drawable_wrapper

drawBytes

public void drawBytes(byte[] data,
                      int off,
                      int len,
                      int x,
                      int y)
Overrides:
drawBytes in class drawable_wrapper

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         java.awt.image.ImageObserver observer)
Overrides:
drawImage in class drawable_wrapper

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         int w,
                         int h,
                         java.awt.image.ImageObserver obs)
Overrides:
drawImage in class drawable_wrapper

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         java.awt.Color bgcolor,
                         java.awt.image.ImageObserver obs)
Overrides:
drawImage in class drawable_wrapper

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         int w,
                         int h,
                         java.awt.Color bgcolor,
                         java.awt.image.ImageObserver obs)
Overrides:
drawImage in class drawable_wrapper

toString

public java.lang.String toString()
Convert to a human readable string.
Overrides:
toString in class drawable_wrapper