Class PolylineShape

  • All Implemented Interfaces:
    java.awt.Shape

    public class PolylineShape
    extends java.lang.Object
    implements java.awt.Shape
    Class that defines a Polyline shape. This class was originally written by wil - amristar.com.au and integrated into iText by Bruno.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int np
      The total number of points.
      protected int[] x
      All the X-values of the coordinates in the polyline.
      protected int[] y
      All the Y-values of the coordinates in the polyline.
    • Constructor Summary

      Constructors 
      Constructor Description
      PolylineShape​(int[] x, int[] y, int nPoints)
      Creates a PolylineShape.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean contains​(double x, double y)
      A polyline can't contain a point.
      boolean contains​(double x, double y, double w, double h)
      A polyline can't contain a point.
      boolean contains​(java.awt.geom.Point2D p)
      A polyline can't contain a point.
      boolean contains​(java.awt.geom.Rectangle2D r)
      A polyline can't contain a point.
      java.awt.Rectangle getBounds()
      Returns the bounding box of this polyline.
      java.awt.geom.Rectangle2D getBounds2D()
      Returns the bounding box of this polyline.
      java.awt.geom.PathIterator getPathIterator​(java.awt.geom.AffineTransform at)
      Returns an iteration object that defines the boundary of the polyline.
      java.awt.geom.PathIterator getPathIterator​(java.awt.geom.AffineTransform at, double flatness)
      There's no difference with getPathIterator(AffineTransform at); we just need this method to implement the Shape interface.
      boolean intersects​(double x, double y, double w, double h)
      Checks if one of the lines in the polyline intersects with a given rectangle.
      boolean intersects​(java.awt.geom.Rectangle2D r)
      Checks if one of the lines in the polyline intersects with a given rectangle.
      private int[] rect()
      Calculates the origin (X, Y) and the width and height of a rectangle that contains all the segments of the polyline.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • x

        protected int[] x
        All the X-values of the coordinates in the polyline.
      • y

        protected int[] y
        All the Y-values of the coordinates in the polyline.
      • np

        protected int np
        The total number of points.
    • Constructor Detail

      • PolylineShape

        public PolylineShape​(int[] x,
                             int[] y,
                             int nPoints)
        Creates a PolylineShape.
    • Method Detail

      • getBounds2D

        public java.awt.geom.Rectangle2D getBounds2D()
        Returns the bounding box of this polyline.
        Specified by:
        getBounds2D in interface java.awt.Shape
        Returns:
        a Rectangle2D that is the high-precision bounding box of this line.
        See Also:
        Shape.getBounds2D()
      • getBounds

        public java.awt.Rectangle getBounds()
        Returns the bounding box of this polyline.
        Specified by:
        getBounds in interface java.awt.Shape
        See Also:
        Shape.getBounds()
      • rect

        private int[] rect()
        Calculates the origin (X, Y) and the width and height of a rectangle that contains all the segments of the polyline.
      • contains

        public boolean contains​(double x,
                                double y)
        A polyline can't contain a point.
        Specified by:
        contains in interface java.awt.Shape
        See Also:
        Shape.contains(double, double)
      • contains

        public boolean contains​(java.awt.geom.Point2D p)
        A polyline can't contain a point.
        Specified by:
        contains in interface java.awt.Shape
        See Also:
        Shape.contains(java.awt.geom.Point2D)
      • contains

        public boolean contains​(double x,
                                double y,
                                double w,
                                double h)
        A polyline can't contain a point.
        Specified by:
        contains in interface java.awt.Shape
        See Also:
        Shape.contains(double, double, double, double)
      • contains

        public boolean contains​(java.awt.geom.Rectangle2D r)
        A polyline can't contain a point.
        Specified by:
        contains in interface java.awt.Shape
        See Also:
        Shape.contains(java.awt.geom.Rectangle2D)
      • intersects

        public boolean intersects​(double x,
                                  double y,
                                  double w,
                                  double h)
        Checks if one of the lines in the polyline intersects with a given rectangle.
        Specified by:
        intersects in interface java.awt.Shape
        See Also:
        Shape.intersects(double, double, double, double)
      • intersects

        public boolean intersects​(java.awt.geom.Rectangle2D r)
        Checks if one of the lines in the polyline intersects with a given rectangle.
        Specified by:
        intersects in interface java.awt.Shape
        See Also:
        Shape.intersects(java.awt.geom.Rectangle2D)
      • getPathIterator

        public java.awt.geom.PathIterator getPathIterator​(java.awt.geom.AffineTransform at)
        Returns an iteration object that defines the boundary of the polyline.
        Specified by:
        getPathIterator in interface java.awt.Shape
        Parameters:
        at - the specified AffineTransform
        Returns:
        a PathIterator that defines the boundary of this polyline.
        See Also:
        Shape.intersects(java.awt.geom.Rectangle2D)
      • getPathIterator

        public java.awt.geom.PathIterator getPathIterator​(java.awt.geom.AffineTransform at,
                                                          double flatness)
        There's no difference with getPathIterator(AffineTransform at); we just need this method to implement the Shape interface.
        Specified by:
        getPathIterator in interface java.awt.Shape