Copyright 2011-09-18 Werner Randelshofer

ch.randelshofer.awt.graphics
Class Pipe

java.lang.Object
  extended by java.awt.Graphics
      extended by java.awt.Graphics2D
          extended by ch.randelshofer.awt.graphics.Pipe
Direct Known Subclasses:
AbstractPipe

public abstract class Pipe
extends java.awt.Graphics2D

Abstract superclass for rendering pipes. A Pipe supports only a subset of Graphics2D operations. To achieve all operations, a number of Pipes need to be used together. This design allows for the creation of highly specialized and optimized rendering pipes without putting too much complexity into a single class.

All implemented methods of this class throw an internal error when they are invoked.

Version:
1.0 March 6, 2006 Created.
Author:
Werner Randelshofer

Field Summary
protected  int cx1
          Clip rectangle.
protected  int cx2
          Clip rectangle.
protected  int cy1
          Clip rectangle.
protected  int cy2
          Clip rectangle.
protected  int gh
          The total height of the graphics area.
protected  int gw
          The total width of the graphics area.
 
Constructor Summary
Pipe()
           
 
Method Summary
 void addRenderingHints(java.util.Map hints)
           
 void clip(java.awt.Shape s)
           
 void clipRect(int x, int y, int width, int height)
           
 void copyArea(int x, int y, int width, int height, int dx, int dy)
           
 java.awt.Graphics create()
           
 void dispose()
           
 void draw(java.awt.Shape s)
           
 void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
           
 void drawGlyphVector(java.awt.font.GlyphVector g, float x, float y)
           
 void drawImage(java.awt.image.BufferedImage img, java.awt.image.BufferedImageOp op, int x, int y)
           
 boolean drawImage(java.awt.Image img, java.awt.geom.AffineTransform xform, java.awt.image.ImageObserver obs)
           
 boolean drawImage(java.awt.Image img, int x, int y, java.awt.Color bgcolor, java.awt.image.ImageObserver observer)
           
 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 width, int height, java.awt.Color bgcolor, java.awt.image.ImageObserver observer)
           
 boolean drawImage(java.awt.Image img, int x, int y, int width, int height, java.awt.image.ImageObserver observer)
           
 boolean drawImage(java.awt.Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, java.awt.Color bgcolor, java.awt.image.ImageObserver observer)
           
 boolean drawImage(java.awt.Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, java.awt.image.ImageObserver observer)
           
 void drawOval(int x, int y, int width, int height)
           
 void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
           
 void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
           
 void drawRenderableImage(java.awt.image.renderable.RenderableImage img, java.awt.geom.AffineTransform xform)
           
 void drawRenderedImage(java.awt.image.RenderedImage img, java.awt.geom.AffineTransform xform)
           
 void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
           
 void drawString(java.text.AttributedCharacterIterator iterator, float x, float y)
           
 void drawString(java.text.AttributedCharacterIterator iterator, int x, int y)
           
 void drawString(java.lang.String s, float x, float y)
           
 void drawString(java.lang.String str, int x, int y)
           
 void fill(java.awt.Shape s)
           
 void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
           
 void fillOval(int x, int y, int width, int height)
           
 void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
           
 void fillRect(int x, int y, int width, int height)
           
 void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
           
abstract  void flush()
          Flushes all pending graphics operations of the rendering pipe into its underlying image.
 java.awt.Color getBackground()
           
 java.awt.Shape getClip()
           
 java.awt.Rectangle getClipBounds()
           
 java.awt.Color getColor()
           
 java.awt.Composite getComposite()
           
 java.awt.GraphicsConfiguration getDeviceConfiguration()
           
 java.awt.Font getFont()
           
 java.awt.FontMetrics getFontMetrics(java.awt.Font f)
           
 java.awt.font.FontRenderContext getFontRenderContext()
           
 java.awt.Paint getPaint()
           
 java.lang.Object getRenderingHint(java.awt.RenderingHints.Key hintKey)
           
 java.awt.RenderingHints getRenderingHints()
           
 java.awt.Stroke getStroke()
           
 java.awt.geom.AffineTransform getTransform()
           
 boolean hit(java.awt.Rectangle rect, java.awt.Shape s, boolean onStroke)
           
 void rotate(double theta)
           
 void rotate(double theta, double x, double y)
           
 void scale(double sx, double sy)
           
 void setBackground(java.awt.Color color)
           
 void setClip(int x, int y, int width, int height)
           
 void setClip(java.awt.Shape clip)
           
 void setColor(java.awt.Color c)
           
 void setComposite(java.awt.Composite comp)
           
 void setFont(java.awt.Font font)
           
 void setPaint(java.awt.Paint paint)
           
 void setPaintMode()
           
 void setRenderingHint(java.awt.RenderingHints.Key hintKey, java.lang.Object hintValue)
           
 void setRenderingHints(java.util.Map hints)
           
 void setStroke(java.awt.Stroke s)
           
 void setTransform(java.awt.geom.AffineTransform Tx)
           
 void setXORMode(java.awt.Color c1)
           
 void shear(double shx, double shy)
           
 java.lang.String toString()
           
 void transform(java.awt.geom.AffineTransform Tx)
           
 void translate(double tx, double ty)
           
 
Methods inherited from class java.awt.Graphics2D
draw3DRect, fill3DRect, translate
 
Methods inherited from class java.awt.Graphics
clearRect, create, drawBytes, drawChars, drawLine, drawPolygon, drawRect, fillPolygon, finalize, getClipBounds, getClipRect, getFontMetrics, hitClip
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

gw

protected int gw
The total width of the graphics area. We must never use an x-coordinate < 0 or > gw or we will risk a ArrayIndexOutOfBoundsException. Invariants: gw > 0


gh

protected int gh
The total height of the graphics area. We must never use a y-coordinate < 0 or > gh or we will risk a ArrayIndexOutOfBoundsException. Invariants: gh > 0


cx1

protected int cx1
Clip rectangle. cx1,cy1 = upper left corner cx2,cy2 = lower right corner Invariants: cx1 <= cx2 cy1 <= cy2


cy1

protected int cy1
Clip rectangle. cx1,cy1 = upper left corner cx2,cy2 = lower right corner Invariants: cx1 <= cx2 cy1 <= cy2


cx2

protected int cx2
Clip rectangle. cx1,cy1 = upper left corner cx2,cy2 = lower right corner Invariants: cx1 <= cx2 cy1 <= cy2


cy2

protected int cy2
Clip rectangle. cx1,cy1 = upper left corner cx2,cy2 = lower right corner Invariants: cx1 <= cx2 cy1 <= cy2

Constructor Detail

Pipe

public Pipe()
Method Detail

flush

public abstract void flush()
Flushes all pending graphics operations of the rendering pipe into its underlying image.


getBackground

public java.awt.Color getBackground()
Specified by:
getBackground in class java.awt.Graphics2D

getComposite

public java.awt.Composite getComposite()
Specified by:
getComposite in class java.awt.Graphics2D

getDeviceConfiguration

public java.awt.GraphicsConfiguration getDeviceConfiguration()
Specified by:
getDeviceConfiguration in class java.awt.Graphics2D

getFontRenderContext

public java.awt.font.FontRenderContext getFontRenderContext()
Specified by:
getFontRenderContext in class java.awt.Graphics2D

getPaint

public java.awt.Paint getPaint()
Specified by:
getPaint in class java.awt.Graphics2D

getRenderingHint

public java.lang.Object getRenderingHint(java.awt.RenderingHints.Key hintKey)
Specified by:
getRenderingHint in class java.awt.Graphics2D

getRenderingHints

public java.awt.RenderingHints getRenderingHints()
Specified by:
getRenderingHints in class java.awt.Graphics2D

getStroke

public java.awt.Stroke getStroke()
Specified by:
getStroke in class java.awt.Graphics2D

getTransform

public java.awt.geom.AffineTransform getTransform()
Specified by:
getTransform in class java.awt.Graphics2D

hit

public boolean hit(java.awt.Rectangle rect,
                   java.awt.Shape s,
                   boolean onStroke)
Specified by:
hit in class java.awt.Graphics2D

rotate

public void rotate(double theta)
Specified by:
rotate in class java.awt.Graphics2D

rotate

public void rotate(double theta,
                   double x,
                   double y)
Specified by:
rotate in class java.awt.Graphics2D

scale

public void scale(double sx,
                  double sy)
Specified by:
scale in class java.awt.Graphics2D

setBackground

public void setBackground(java.awt.Color color)
Specified by:
setBackground in class java.awt.Graphics2D

setComposite

public void setComposite(java.awt.Composite comp)
Specified by:
setComposite in class java.awt.Graphics2D

setPaint

public void setPaint(java.awt.Paint paint)
Specified by:
setPaint in class java.awt.Graphics2D

setRenderingHint

public void setRenderingHint(java.awt.RenderingHints.Key hintKey,
                             java.lang.Object hintValue)
Specified by:
setRenderingHint in class java.awt.Graphics2D

setRenderingHints

public void setRenderingHints(java.util.Map hints)
Specified by:
setRenderingHints in class java.awt.Graphics2D

setStroke

public void setStroke(java.awt.Stroke s)
Specified by:
setStroke in class java.awt.Graphics2D

shear

public void shear(double shx,
                  double shy)
Specified by:
shear in class java.awt.Graphics2D

transform

public void transform(java.awt.geom.AffineTransform Tx)
Specified by:
transform in class java.awt.Graphics2D

translate

public void translate(double tx,
                      double ty)
Specified by:
translate in class java.awt.Graphics2D

drawGlyphVector

public void drawGlyphVector(java.awt.font.GlyphVector g,
                            float x,
                            float y)
Specified by:
drawGlyphVector in class java.awt.Graphics2D

drawImage

public boolean drawImage(java.awt.Image img,
                         java.awt.geom.AffineTransform xform,
                         java.awt.image.ImageObserver obs)
Specified by:
drawImage in class java.awt.Graphics2D

drawImage

public void drawImage(java.awt.image.BufferedImage img,
                      java.awt.image.BufferedImageOp op,
                      int x,
                      int y)
Specified by:
drawImage in class java.awt.Graphics2D

drawRenderableImage

public void drawRenderableImage(java.awt.image.renderable.RenderableImage img,
                                java.awt.geom.AffineTransform xform)
Specified by:
drawRenderableImage in class java.awt.Graphics2D

drawRenderedImage

public void drawRenderedImage(java.awt.image.RenderedImage img,
                              java.awt.geom.AffineTransform xform)
Specified by:
drawRenderedImage in class java.awt.Graphics2D

drawString

public void drawString(java.text.AttributedCharacterIterator iterator,
                       float x,
                       float y)
Specified by:
drawString in class java.awt.Graphics2D

drawString

public void drawString(java.lang.String s,
                       float x,
                       float y)
Specified by:
drawString in class java.awt.Graphics2D

copyArea

public void copyArea(int x,
                     int y,
                     int width,
                     int height,
                     int dx,
                     int dy)
Specified by:
copyArea in class java.awt.Graphics

drawArc

public void drawArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Specified by:
drawArc in class java.awt.Graphics

drawImage

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

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         java.awt.Color bgcolor,
                         java.awt.image.ImageObserver observer)
Specified by:
drawImage in class java.awt.Graphics

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         int width,
                         int height,
                         java.awt.image.ImageObserver observer)
Specified by:
drawImage in class java.awt.Graphics

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         int width,
                         int height,
                         java.awt.Color bgcolor,
                         java.awt.image.ImageObserver observer)
Specified by:
drawImage in class java.awt.Graphics

drawImage

public boolean drawImage(java.awt.Image img,
                         int dx1,
                         int dy1,
                         int dx2,
                         int dy2,
                         int sx1,
                         int sy1,
                         int sx2,
                         int sy2,
                         java.awt.image.ImageObserver observer)
Specified by:
drawImage in class java.awt.Graphics

drawImage

public boolean drawImage(java.awt.Image img,
                         int dx1,
                         int dy1,
                         int dx2,
                         int dy2,
                         int sx1,
                         int sy1,
                         int sx2,
                         int sy2,
                         java.awt.Color bgcolor,
                         java.awt.image.ImageObserver observer)
Specified by:
drawImage in class java.awt.Graphics

draw

public void draw(java.awt.Shape s)
Specified by:
draw in class java.awt.Graphics2D

drawString

public void drawString(java.lang.String str,
                       int x,
                       int y)
Specified by:
drawString in class java.awt.Graphics2D

drawString

public void drawString(java.text.AttributedCharacterIterator iterator,
                       int x,
                       int y)
Specified by:
drawString in class java.awt.Graphics2D

fill

public void fill(java.awt.Shape s)
Specified by:
fill in class java.awt.Graphics2D

addRenderingHints

public void addRenderingHints(java.util.Map hints)
Specified by:
addRenderingHints in class java.awt.Graphics2D

setTransform

public void setTransform(java.awt.geom.AffineTransform Tx)
Specified by:
setTransform in class java.awt.Graphics2D

clip

public void clip(java.awt.Shape s)
Specified by:
clip in class java.awt.Graphics2D

create

public java.awt.Graphics create()
Specified by:
create in class java.awt.Graphics

getColor

public java.awt.Color getColor()
Specified by:
getColor in class java.awt.Graphics

setColor

public void setColor(java.awt.Color c)
Specified by:
setColor in class java.awt.Graphics

setPaintMode

public void setPaintMode()
Specified by:
setPaintMode in class java.awt.Graphics

setXORMode

public void setXORMode(java.awt.Color c1)
Specified by:
setXORMode in class java.awt.Graphics

getFont

public java.awt.Font getFont()
Specified by:
getFont in class java.awt.Graphics

setFont

public void setFont(java.awt.Font font)
Specified by:
setFont in class java.awt.Graphics

getFontMetrics

public java.awt.FontMetrics getFontMetrics(java.awt.Font f)
Specified by:
getFontMetrics in class java.awt.Graphics

getClipBounds

public java.awt.Rectangle getClipBounds()
Specified by:
getClipBounds in class java.awt.Graphics

clipRect

public void clipRect(int x,
                     int y,
                     int width,
                     int height)
Specified by:
clipRect in class java.awt.Graphics

setClip

public void setClip(int x,
                    int y,
                    int width,
                    int height)
Specified by:
setClip in class java.awt.Graphics

getClip

public java.awt.Shape getClip()
Specified by:
getClip in class java.awt.Graphics

setClip

public void setClip(java.awt.Shape clip)
Specified by:
setClip in class java.awt.Graphics

fillRect

public void fillRect(int x,
                     int y,
                     int width,
                     int height)
Specified by:
fillRect in class java.awt.Graphics

drawRoundRect

public void drawRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Specified by:
drawRoundRect in class java.awt.Graphics

fillRoundRect

public void fillRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Specified by:
fillRoundRect in class java.awt.Graphics

drawOval

public void drawOval(int x,
                     int y,
                     int width,
                     int height)
Specified by:
drawOval in class java.awt.Graphics

fillOval

public void fillOval(int x,
                     int y,
                     int width,
                     int height)
Specified by:
fillOval in class java.awt.Graphics

fillArc

public void fillArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Specified by:
fillArc in class java.awt.Graphics

drawPolyline

public void drawPolyline(int[] xPoints,
                         int[] yPoints,
                         int nPoints)
Specified by:
drawPolyline in class java.awt.Graphics

drawPolygon

public void drawPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Specified by:
drawPolygon in class java.awt.Graphics

fillPolygon

public void fillPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Specified by:
fillPolygon in class java.awt.Graphics

dispose

public void dispose()
Specified by:
dispose in class java.awt.Graphics

toString

public java.lang.String toString()
Overrides:
toString in class java.awt.Graphics

Copyright 2011-09-18 Werner Randelshofer