com.lowagie.text.pdf.internal

## Class PolylineShape

- java.lang.Object
- - com.lowagie.text.pdf.internal.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
`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 and Description
`PolylineShape(int[] x, int[] y, int nPoints)` Creates a PolylineShape.

### Method Summary

Methods
`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`