Class PointList

java.lang.Object
org.eclipse.draw2d.geometry.PointList
All Implemented Interfaces:
Serializable, Translatable

public class PointList extends Object implements Serializable, Translatable
Represents a List of Points. This class is used for building an int[]. The array is internal, and is constructed and queried by the client using Points. SWT uses integer arrays when painting polylines and polygons.
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs an empty PointList.
    PointList(int size)
    Constructs a PointList with initial capacity size, but no points.
    PointList(int[] points)
    Constructs a PointList with the given points.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addAll(PointList source)
    Appends all of the given points to this PointList.
    void
    addPoint(int x, int y)
    Adds the input point values to this PointList.
    void
    Adds Point p to this PointList.
    Returns the smallest Rectangle which contains all Points.
    Creates a copy
    Returns the first Point in the list.
    Returns the last point in the list.
    Returns the midpoint of the list of Points.
    getPoint(int index)
    Returns the Point in the list at the specified index.
    getPoint(Point p, int index)
    Copies the x and y values at given index into a specified Point.
    void
    insertPoint(Point p, int index)
    Inserts a given point at a specified index.
    boolean
    Determines whether any of the line segments represented by this PointList intersect the given Rectangle.
    void
    performScale(double factor)
    Scales this object by the scale factor.
    void
    performTranslate(int dx, int dy)
    Translates this object horizontally by dx and vertically by dy.
    boolean
    polygonContainsPoint(int x, int y)
     
    boolean
    polylineContainsPoint(int x, int y, int tolerance)
     
    void
    Removes all the points stored by this list.
    removePoint(int index)
    Removes the point at the specified index from the PointList, and returns it.
    void
    Reverses the order of the points in the list.
    void
    setPoint(Point pt, int index)
    Overwrites a point at a given index in the list with the specified Point.
    void
    setSize(int newSize)
    Sets the size of this PointList.
    int
    Returns the number of points in this PointList.
    int[]
    Returns the contents of this PointList as an integer array.
    void
    translate(int x, int y)
    Moves the origin (0,0) of the coordinate system of all the points to the Point (x,y).
    final void
    Moves the origin (0,0) of the coordinate system of all the points to the Point pt.
    void
    Transposes all x and y values.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.eclipse.draw2d.geometry.Translatable

    performTranslate, performTranslate, performTranslate
  • Constructor Details

    • PointList

      public PointList()
      Constructs an empty PointList.
      Since:
      2.0
    • PointList

      public PointList(int[] points)
      Constructs a PointList with the given points.
      Parameters:
      points - int array where two consecutive ints form the coordinates of a point
      Since:
      3.1
    • PointList

      public PointList(int size)
      Constructs a PointList with initial capacity size, but no points.
      Parameters:
      size - Number of points to hold.
      Since:
      2.0
  • Method Details

    • addAll

      public void addAll(PointList source)
      Appends all of the given points to this PointList.
      Parameters:
      source - the source pointlist
    • addPoint

      public void addPoint(Point p)
      Adds Point p to this PointList.
      Parameters:
      p - the point to be added
      Since:
      2.0
      See Also:
    • addPoint

      public void addPoint(int x, int y)
      Adds the input point values to this PointList.
      Parameters:
      x - X value of a point to add
      y - Y value of a point to add
      Since:
      2.0
    • getBounds

      public Rectangle getBounds()
      Returns the smallest Rectangle which contains all Points.
      Returns:
      The smallest Rectangle which contains all Points.
      Since:
      2.0
    • getCopy

      public PointList getCopy()
      Creates a copy
      Returns:
      PointList A copy of this PointList
    • getFirstPoint

      public Point getFirstPoint()
      Returns the first Point in the list.
      Returns:
      The first point in the list.
      Throws:
      IndexOutOfBoundsException - if the list is empty
      Since:
      2.0
    • getLastPoint

      public Point getLastPoint()
      Returns the last point in the list.
      Returns:
      The last Point in the list
      Throws:
      IndexOutOfBoundsException - if the list is empty
      Since:
      2.0
    • getMidpoint

      public Point getMidpoint()
      Returns the midpoint of the list of Points. The midpoint is the median of the List, unless there are 2 medians (size is even), then the middle of the medians is returned.
      Returns:
      The midpoint
      Throws:
      IndexOutOfBoundsException - if the list is empty
    • getPoint

      public Point getPoint(int index)
      Returns the Point in the list at the specified index.
      Parameters:
      index - Index of the desired Point
      Returns:
      The requested Point
      Throws:
      IndexOutOfBoundsException - If the specified index is out of range
      Since:
      2.0
    • getPoint

      public Point getPoint(Point p, int index)
      Copies the x and y values at given index into a specified Point. This method exists to avoid the creation of a new Point.
      Parameters:
      p - The Point which will be set with the <x, y> values
      index - The index being requested
      Returns:
      The parameter p is returned for convenience
      Since:
      2.0
      See Also:
    • insertPoint

      public void insertPoint(Point p, int index)
      Inserts a given point at a specified index.
      Parameters:
      p - Point to be inserted.
      index - Position where the point is to be inserted.
      Throws:
      IndexOutOfBoundsException - if the index is invalid
      Since:
      2.0
      See Also:
    • intersects

      public boolean intersects(Rectangle r)
      Determines whether any of the line segments represented by this PointList intersect the given Rectangle. If a segment touches the given rectangle, that's considered intersection.
      Parameters:
      r - the rectangle
      Returns:
      true if the given rectangle intersects any of the line segments represented by this PointList
      Since:
      3.1
    • performScale

      public void performScale(double factor)
      Description copied from interface: Translatable
      Scales this object by the scale factor.
      Specified by:
      performScale in interface Translatable
      Parameters:
      factor - The scale factor
      See Also:
    • performTranslate

      public void performTranslate(int dx, int dy)
      Description copied from interface: Translatable
      Translates this object horizontally by dx and vertically by dy.
      Specified by:
      performTranslate in interface Translatable
      Parameters:
      dx - The amount to translate horizontally
      dy - The amount to translate vertically
      See Also:
    • removeAllPoints

      public void removeAllPoints()
      Removes all the points stored by this list. Resets all the properties based on the point information.
      Since:
      2.0
    • removePoint

      public Point removePoint(int index)
      Removes the point at the specified index from the PointList, and returns it.
      Parameters:
      index - Index of the point to be removed.
      Returns:
      The point which has been removed
      Throws:
      IndexOutOfBoundsException - if the removal index is beyond the list capacity
      Since:
      2.0
      See Also:
    • reverse

      public void reverse()
      Reverses the order of the points in the list.
      Since:
      3.2
    • setPoint

      public void setPoint(Point pt, int index)
      Overwrites a point at a given index in the list with the specified Point.
      Parameters:
      pt - Point which is to be stored at the index.
      index - Index where the given point is to be stored.
      Since:
      2.0
    • setSize

      public void setSize(int newSize)
      Sets the size of this PointList.
      Parameters:
      newSize - the new size
    • size

      public int size()
      Returns the number of points in this PointList.
      Returns:
      The number of points
      Since:
      2.0
    • toIntArray

      public int[] toIntArray()
      Returns the contents of this PointList as an integer array. The returned array is by reference. Any changes made to the array will also be changing the original PointList.
      Returns:
      the integer array of points by reference
      Since:
      2.0
    • translate

      public final void translate(Point pt)
      Moves the origin (0,0) of the coordinate system of all the points to the Point pt. This updates the position of all the points in this PointList.
      Parameters:
      pt - Position by which all the points will be shifted.
      Since:
      2.0
      See Also:
    • translate

      public void translate(int x, int y)
      Moves the origin (0,0) of the coordinate system of all the points to the Point (x,y). This updates the position of all the points in this PointList.
      Parameters:
      x - Amount by which all the points will be shifted on the X axis.
      y - Amount by which all the points will be shifted on the Y axis.
      Since:
      2.0
      See Also:
    • transpose

      public void transpose()
      Transposes all x and y values. Useful for orientation changes.
      Since:
      3.2
    • polygonContainsPoint

      public boolean polygonContainsPoint(int x, int y)
      Parameters:
      x - - X coordinate of the point
      y - - Y coordinate of the point
      Returns:
      true if specified point belongs to the polygon drawn using this PointList
      Since:
      3.5
      See Also:
    • polylineContainsPoint

      public boolean polylineContainsPoint(int x, int y, int tolerance)
      Parameters:
      x - - X coordinate of the point
      y - - Y coordinate of the point
      tolerance - - allowed distance between point and polyline segment
      Returns:
      true if the least distance between specified point and polyline drawn using this PointList is less then specified tolerance
      Since:
      3.5
      See Also: