Class RenderableTextSource<L extends OtsShape,T extends RenderableTextSource<L,T>>

java.lang.Object
org.opentrafficsim.draw.RenderableTextSource<L,T>
Type Parameters:
L - locatable type
T - text animation type
All Implemented Interfaces:
nl.tudelft.simulation.dsol.animation.Locatable, OtsShape
Direct Known Subclasses:
BusStopAnimation.Text, DefaultCarAnimation.Text, GtuGeneratorPositionAnimation.Queue, LaneAnimation.Text, LaneDetectorAnimation.LoopDetectorData.LoopDetectorText, LaneDetectorAnimation.SinkData.SinkText, LaneDetectorAnimation.Text, LinkAnimation.Text, NodeAnimation.Text, TrafficLightAnimation.Text, TrafficLightDetectorAnimation.Text

public abstract class RenderableTextSource<L extends OtsShape,T extends RenderableTextSource<L,T>> extends Object implements OtsShape
Display a text for another Locatable object.

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, Peter Knoppers, Wouter Schakel
  • Field Details

  • Constructor Details

    • RenderableTextSource

      public RenderableTextSource(L source, Supplier<String> text, float dx, float dy, TextAlignment textAlignment, Color color, float fontSize, float minFontSize, float maxFontSize, nl.tudelft.simulation.naming.context.Contextualized contextualized, RenderableTextSource.ContrastToBackground background, RenderableTextSource.ScaleDependentRendering scaleDependentRendering)
      Construct a new TextAnimation.
      Parameters:
      source - the object for which the text is displayed
      text - the text to display
      dx - the horizontal movement of the text, in meters
      dy - the vertical movement of the text, in meters
      textAlignment - where to place the text
      color - the color of the text
      fontSize - the size of the font; default = 2.0 (meters)
      minFontSize - minimum font size resulting from scaling
      maxFontSize - maximum font size resulting from scaling
      contextualized - context provider.
      background - allows querying the background color and adaptation of the actual color of the text to ensure contrast
      scaleDependentRendering - suppress rendering when font scale is too small
    • RenderableTextSource

      public RenderableTextSource(L source, Supplier<String> text, float dx, float dy, TextAlignment textAlignment, Color color, float fontSize, float minFontSize, float maxFontSize, nl.tudelft.simulation.naming.context.Contextualized contextualized, RenderableTextSource.ScaleDependentRendering scaleDependentRendering)
      Construct a new TextAnimation without contrast to background protection and no minimum font scale.
      Parameters:
      source - the object for which the text is displayed
      text - the text to display
      dx - the horizontal movement of the text, in meters
      dy - the vertical movement of the text, in meters
      textAlignment - where to place the text
      color - the color of the text
      fontSize - the size of the font; default = 2.0 (meters)
      minFontSize - minimum font size resulting from scaling
      maxFontSize - maximum font size resulting from scaling
      contextualized - context provider
      scaleDependentRendering - render text only when bigger than minimum scale
    • RenderableTextSource

      public RenderableTextSource(L source, Supplier<String> text, float dx, float dy, TextAlignment textAlignment, Color color, nl.tudelft.simulation.naming.context.Contextualized contextualized, RenderableTextSource.ScaleDependentRendering scaleDependentRendering)
      Constructor.
      Parameters:
      source - the object for which the text is displayed
      text - the text to display
      dx - the horizontal movement of the text, in meters
      dy - the vertical movement of the text, in meters
      textAlignment - where to place the text
      color - the color of the text
      contextualized - context provider
      scaleDependentRendering - render text only when bigger than minimum scale
  • Method Details

    • setDynamic

      public T setDynamic(boolean dynamic)
      Sets whether the location of this text is dynamic.
      Parameters:
      dynamic - whether the location of this text is dynamic.
      Returns:
      for method chaining.
    • getLocation

      public DirectedPoint2d getLocation()
      Specified by:
      getLocation in interface nl.tudelft.simulation.dsol.animation.Locatable
      Specified by:
      getLocation in interface OtsShape
    • getSource

      public L getSource()
      Returns the source.
      Returns:
      the source
    • getRelativeBounds

      public final Bounds2d getRelativeBounds()
      Specified by:
      getRelativeBounds in interface nl.tudelft.simulation.dsol.animation.Locatable
      Specified by:
      getRelativeBounds in interface OtsShape
    • getAbsoluteContour

      public Polygon2d getAbsoluteContour()
      Specified by:
      getAbsoluteContour in interface OtsShape
    • getRelativeContour

      public Polygon2d getRelativeContour()
      Specified by:
      getRelativeContour in interface OtsShape
    • paint

      public void paint(Graphics2D graphics, ImageObserver observer)
      paint() method so it can be overridden or extended.
      Parameters:
      graphics - the graphics object
      observer - the observer
    • destroy

      public final void destroy(nl.tudelft.simulation.naming.context.Contextualized contextProvider)
      Destroy the text animation.
      Parameters:
      contextProvider - the object with a Context
    • getDx

      protected final float getDx()
      Retrieve dx.
      Returns:
      the value of dx
    • getDy

      protected final float getDy()
      Retrieve dy.
      Returns:
      the value of dy
    • setXY

      protected final void setXY(float x, float y)
      Sets a new offset.
      Parameters:
      x - dx
      y - dy
    • getZ

      public double getZ()
      Specified by:
      getZ in interface nl.tudelft.simulation.dsol.animation.Locatable
    • getTextAlignment

      protected TextAlignment getTextAlignment()
      Retrieve the text alignment.
      Returns:
      the text alignment
    • getFontSize

      protected float getFontSize()
      Retrieve the font size.
      Returns:
      the font size
    • getFont

      protected Font getFont()
      Retrieve the font.
      Returns:
      the font
    • getText

      protected String getText()
      Retrieve the current text.
      Returns:
      the current text
    • setText

      public void setText(Supplier<String> text)
      Update the text.
      Parameters:
      text - the new text
    • getColor

      protected Color getColor()
      Retrieve the current color.
      Returns:
      the current color
    • setColor

      protected void setColor(Color color)
      Update the color.
      Parameters:
      color - the new color
    • isFlip

      public boolean isFlip()
      Retrieve the current flip status.
      Returns:
      the current flip status
    • setFlip

      public void setFlip(boolean flip)
      Update the flip status.
      Parameters:
      flip - the new flip status
    • isRotate

      public boolean isRotate()
      Retrieve the current rotation status.
      Returns:
      the current rotation status
    • setRotate

      public void setRotate(boolean rotate)
      Update the rotation status.
      Parameters:
      rotate - the new rotation status
    • isScale

      public boolean isScale()
      Retrieve the current scale status.
      Returns:
      the current scale status
    • setScale

      public void setScale(boolean scale)
      Update the scale status.
      Parameters:
      scale - the new scale status
    • isTranslate

      public boolean isTranslate()
      Retrieve the current translate status.
      Returns:
      the current translate status
    • setTranslate

      public void setTranslate(boolean translate)
      Update the translate status.
      Parameters:
      translate - the new translate status
    • isScaleY

      public boolean isScaleY()
      Return whether to scale the renderable in the Y-direction when there is a compressed Y-axis or not.
      Returns:
      whether to scale the renderable in the Y-direction when there is a compressed Y-axis or not
    • setScaleY

      public void setScaleY(boolean scaleY)
      Set whether to scale the renderable in the Y-direction when there is a compressed Y-axis or not.
      Parameters:
      scaleY - whether to scale the renderable in the Y-direction when there is a compressed Y-axis or not
    • isScaleObject

      public boolean isScaleObject()
      Return whether to scale the renderable in the X/Y-direction with the value of RenderableScale.objectScaleFactor or not.
      Returns:
      whether to scale the renderable in the X/Y-direction with the value of RenderableScale.objectScaleFactor or not
    • setScaleObject

      public void setScaleObject(boolean scaleObject)
      Set whether to scale the renderable in the X/Y-direction with the value of RenderableScale.objectScaleFactor or not.
      Parameters:
      scaleObject - whether to scale the renderable in the X/Y-direction with the value of RenderableScale.objectScaleFactor or not
    • getScaleDependentRendering

      protected RenderableTextSource.ScaleDependentRendering getScaleDependentRendering()
      Retrieve the scale dependent rendering qualifier (used in cloning).
      Returns:
      the rendering qualifier of this TextAnimation