Class HtmlGraphics2d

java.lang.Object
java.awt.Graphics
java.awt.Graphics2D
nl.tudelft.simulation.dsol.web.animation.HtmlGraphics2d

public class HtmlGraphics2d extends Graphics2D
HTMLGraphics.java.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Author:
Alexander Verbraeck
  • Field Details

    • background

      Color background
      the current color of the background for drawing.
    • color

      Color color
      the current drawing color.
    • font

      Font font
      the current font.
    • canvas

      Canvas canvas
      the drawing canvas.
    • fontMetrics

      FontMetrics fontMetrics
      the cached current font properties.
    • paint

      Paint paint
      the current paint.
    • stroke

      Stroke stroke
      the current stroke.
    • renderingHints

      RenderingHints renderingHints
      TODO: the current rendering hints.
    • affineTransform

      AffineTransform affineTransform
      the current affine transform.
    • composite

      Composite composite
      TODO: the current composite. What is that?
    • commands

      StringBuffer commands
      the commands to send over the channel to the HTML5 code.
  • Constructor Details

    • HtmlGraphics2d

      public HtmlGraphics2d()
  • Method Details

    • clearCommand

      public void clearCommand()
      Clear the commands and put the start tag in.
    • closeAndGetCommands

      public String closeAndGetCommands()
      Close the commands and put the end tag in.
      Returns:
      the current set of commands
    • addDraw

      protected void addDraw(String drawCommand, Object... params)
      Add a draw command.
      Parameters:
      drawCommand - String; the tag for the draw command
      params - Object...; the params for the draw command
    • addAffineTransform

      protected void addAffineTransform()
      add AffineTransform to the command.
    • addColor

      protected void addColor(Color c)
      add Color to the command.
      Parameters:
      c - Color; the color
    • addFontData

      protected void addFontData()
      add font data to the command, font-name, font-size, bold/italic/plain.
    • addTransformFill

      protected void addTransformFill(String fillCommand, Object... params)
      Add fill command, transform.m11(h-scale), transform.m12(h-skew), transform.m21(v-skew), transform.m22(v-scale), transform.dx(h-translate), transform.dy(v-translate), color.r, color.g, color.b, color.alpha, color.transparency, params...
      Parameters:
      fillCommand - String; the tag to use
      params - Object...; the params to send
    • addTransformDraw

      protected void addTransformDraw(String drawCommand, Object... params)
      Add command, transform.m11(h-scale), transform.m12(h-skew), transform.m21(v-skew), transform.m22(v-scale), transform.dx(h-translate), transform.dy(v-translate), linecolor.r, linecolor.g, linecolor.b, linecolor.alpha, linecolor.transparency, line-width, params...
      Parameters:
      drawCommand - String; the tag to use
      params - Object...; the params
    • addTransformPathFloat

      protected void addTransformPathFloat(Path2D.Float path, boolean fill)
      Add a path2D to the command. In case of fill:
      FILL, transform.m11(h-scale), transform.m12(h-skew), transform.m21(v-skew), transform.m22(v-scale), transform.dx(h-translate), transform.dy(v-translate), fillcolor.r, fillcolor.g, fillcolor.b, fillcolor.alpha, fillcolor.transparency, winding_rule[WIND_EVEN_ODD/WIND_NON_ZERO], COMMAND, coords, COMMAND, coords, ...
      In case of draw:
      DRAW, transform.m11(h-scale), transform.m12(h-skew), transform.m21(v-skew), transform.m22(v-scale), transform.dx(h-translate), transform.dy(v-translate), strokecolor.r, strokecolor.g, strokecolor.b, strokecolor.alpha, strokecolor.transparency, line_width, COMMAND, coords, COMMAND, coords, ...
      where command can be one of the following:
      - CLOSE, followed by no coordinates
      - CUBICTO, followed by 3 coordinates (6 numbers)
      - LINETO, followed by 1 coordinate (2 numbers)
      - MOVETO, followed by 1 coordinate (2 numbers)
      - QUADTO, followed by 2 coordinates (4 numbers)
      Parameters:
      path - Path2D.Float; the path to draw
      fill - boolean;
    • addTransformPathDouble

      protected void addTransformPathDouble(Path2D.Double path, boolean fill)
      Add a path2D to the command. In case of fill:
      FILL, transform.m11(h-scale), transform.m12(h-skew), transform.m21(v-skew), transform.m22(v-scale), transform.dx(h-translate), transform.dy(v-translate), fillcolor.r, fillcolor.g, fillcolor.b, fillcolor.alpha, fillcolor.transparency, winding_rule[WIND_EVEN_ODD/WIND_NON_ZERO], COMMAND, coords, COMMAND, coords, ...
      In case of draw:
      DRAW, transform.m11(h-scale), transform.m12(h-skew), transform.m21(v-skew), transform.m22(v-scale), transform.dx(h-translate), transform.dy(v-translate), strokecolor.r, strokecolor.g, strokecolor.b, strokecolor.alpha, strokecolor.transparency, line_width, COMMAND, coords, COMMAND, coords, ...
      where command can be one of the following:
      - CLOSE, followed by no coordinates
      - CUBICTO, followed by 3 coordinates (6 numbers)
      - LINETO, followed by 1 coordinate (2 numbers)
      - MOVETO, followed by 1 coordinate (2 numbers)
      - QUADTO, followed by 2 coordinates (4 numbers)
      Parameters:
      path - Path2D.Double; the path to draw
      fill - boolean;
    • addTransformText

      protected void addTransformText(String drawCommand, Object... params)
      Add string, 0=command, 1=transform.m11(h-scale), 2=transform.m12(h-skew), 3=transform.m21(v-skew), 4=transform.m22(v-scale), 5=transform.dx(h-translate), 6=transform.dy(v-translate), 7=color.r, 8=color.g, 9=color.b, 10=color.alpha, 11=color.transparency, 12=fontname, 13=fontsize, 14=fontstyle(normal/italic/bold), 15=x, 16=y, 17=text.
      Parameters:
      drawCommand - String; the tag to use
      params - Object...; the params
    • draw

      public void draw(Shape shape)
      Specified by:
      draw in class Graphics2D
    • drawFillShape

      protected void drawFillShape(Shape shape, boolean fill)
      Draw or fill a shape.
      Parameters:
      shape - Shape; the shape
      fill - boolean; filled or not
    • drawImage

      public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
      Specified by:
      drawImage in class Graphics2D
    • drawImage

      public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
      Specified by:
      drawImage in class Graphics2D
    • drawRenderedImage

      public void drawRenderedImage(RenderedImage img, AffineTransform xform)
      Specified by:
      drawRenderedImage in class Graphics2D
    • drawRenderableImage

      public void drawRenderableImage(RenderableImage img, AffineTransform xform)
      Specified by:
      drawRenderableImage in class Graphics2D
    • drawString

      public void drawString(String str, int x, int y)
      Specified by:
      drawString in class Graphics2D
    • drawString

      public void drawString(String str, float x, float y)
      Specified by:
      drawString in class Graphics2D
    • drawString

      public void drawString(AttributedCharacterIterator iterator, int x, int y)
      Specified by:
      drawString in class Graphics2D
    • drawString

      public void drawString(AttributedCharacterIterator iterator, float x, float y)
      Specified by:
      drawString in class Graphics2D
    • drawGlyphVector

      public void drawGlyphVector(GlyphVector g, float x, float y)
      Specified by:
      drawGlyphVector in class Graphics2D
    • fill

      public void fill(Shape shape)
      Specified by:
      fill in class Graphics2D
    • hit

      public boolean hit(Rectangle rect, Shape s, boolean onStroke)
      Specified by:
      hit in class Graphics2D
    • getDeviceConfiguration

      public GraphicsConfiguration getDeviceConfiguration()
      Specified by:
      getDeviceConfiguration in class Graphics2D
    • setComposite

      public void setComposite(Composite comp)
      Specified by:
      setComposite in class Graphics2D
    • setPaint

      public void setPaint(Paint paint)
      Specified by:
      setPaint in class Graphics2D
    • setStroke

      public void setStroke(Stroke s)
      Specified by:
      setStroke in class Graphics2D
    • setRenderingHint

      public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
      Specified by:
      setRenderingHint in class Graphics2D
    • getRenderingHint

      public Object getRenderingHint(RenderingHints.Key hintKey)
      Specified by:
      getRenderingHint in class Graphics2D
    • setRenderingHints

      public void setRenderingHints(Map<?,?> hints)
      Specified by:
      setRenderingHints in class Graphics2D
    • addRenderingHints

      public void addRenderingHints(Map<?,?> hints)
      Specified by:
      addRenderingHints in class Graphics2D
    • getRenderingHints

      public RenderingHints getRenderingHints()
      Specified by:
      getRenderingHints in class Graphics2D
    • translate

      public void translate(int x, int y)
      Specified by:
      translate in class Graphics2D
    • translate

      public void translate(double tx, double ty)
      Specified by:
      translate in class Graphics2D
    • rotate

      public void rotate(double theta)
      Specified by:
      rotate in class Graphics2D
    • rotate

      public void rotate(double theta, double x, double y)
      Specified by:
      rotate in class Graphics2D
    • scale

      public void scale(double sx, double sy)
      Specified by:
      scale in class Graphics2D
    • shear

      public void shear(double shx, double shy)
      Specified by:
      shear in class Graphics2D
    • transform

      public void transform(AffineTransform Tx)
      Specified by:
      transform in class Graphics2D
    • setTransform

      public void setTransform(AffineTransform Tx)
      Specified by:
      setTransform in class Graphics2D
    • getTransform

      public AffineTransform getTransform()
      Specified by:
      getTransform in class Graphics2D
    • getPaint

      public Paint getPaint()
      Specified by:
      getPaint in class Graphics2D
    • getComposite

      public Composite getComposite()
      Specified by:
      getComposite in class Graphics2D
    • setBackground

      public void setBackground(Color color)
      Specified by:
      setBackground in class Graphics2D
    • getBackground

      public Color getBackground()
      Specified by:
      getBackground in class Graphics2D
    • getStroke

      public Stroke getStroke()
      Specified by:
      getStroke in class Graphics2D
    • clip

      public void clip(Shape s)
      Specified by:
      clip in class Graphics2D
    • getFontRenderContext

      public FontRenderContext getFontRenderContext()
      Specified by:
      getFontRenderContext in class Graphics2D
    • create

      public Graphics create()
      Specified by:
      create in class Graphics
    • getColor

      public Color getColor()
      Specified by:
      getColor in class Graphics
    • setColor

      public void setColor(Color c)
      Specified by:
      setColor in class Graphics
    • setPaintMode

      public void setPaintMode()
      Specified by:
      setPaintMode in class Graphics
    • setXORMode

      public void setXORMode(Color c1)
      Specified by:
      setXORMode in class Graphics
    • getFont

      public Font getFont()
      Specified by:
      getFont in class Graphics
    • setFont

      public void setFont(Font font)
      Specified by:
      setFont in class Graphics
    • getFontMetrics

      public FontMetrics getFontMetrics(Font f)
      Specified by:
      getFontMetrics in class Graphics
    • getClipBounds

      public Rectangle getClipBounds()
      Specified by:
      getClipBounds in class Graphics
    • clipRect

      public void clipRect(int x, int y, int width, int height)
      Specified by:
      clipRect in class Graphics
    • setClip

      public void setClip(int x, int y, int width, int height)
      Specified by:
      setClip in class Graphics
    • getClip

      public Shape getClip()
      Specified by:
      getClip in class Graphics
    • setClip

      public void setClip(Shape clip)
      Specified by:
      setClip in class Graphics
    • copyArea

      public void copyArea(int x, int y, int width, int height, int dx, int dy)
      Specified by:
      copyArea in class Graphics
    • drawLine

      public void drawLine(int x1, int y1, int x2, int y2)
      Specified by:
      drawLine in class Graphics
    • fillRect

      public void fillRect(int x, int y, int width, int height)
      Specified by:
      fillRect in class Graphics
    • clearRect

      public void clearRect(int x, int y, int width, int height)
      Specified by:
      clearRect in class Graphics
    • drawRoundRect

      public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
      Specified by:
      drawRoundRect in class Graphics
    • fillRoundRect

      public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
      Specified by:
      fillRoundRect in class Graphics
    • drawOval

      public void drawOval(int x, int y, int width, int height)
      Specified by:
      drawOval in class Graphics
    • fillOval

      public void fillOval(int x, int y, int width, int height)
      Specified by:
      fillOval in class Graphics
    • drawArc

      public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
      Specified by:
      drawArc in class Graphics
    • fillArc

      public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
      Specified by:
      fillArc in class Graphics
    • drawPolyline

      public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
      Specified by:
      drawPolyline in class Graphics
    • drawPolygon

      public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
      Specified by:
      drawPolygon in class Graphics
    • fillPolygon

      public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
      Specified by:
      fillPolygon in class Graphics
    • drawImage

      public boolean drawImage(Image img, int x, int y, ImageObserver observer)
      Specified by:
      drawImage in class Graphics
    • drawImage

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

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

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

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

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

      public void dispose()
      Specified by:
      dispose in class Graphics