Class Polyline

All Implemented Interfaces:
AutoCloseable

public class Polyline extends CompositeCurve implements AutoCloseable
Represents a polyline.
See Also:
  • Method Details

    • finalize

      protected void finalize()
      Overrides:
      finalize in class CompositeCurve
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Overrides:
      close in class CompositeCurve
    • getPointCount

      public long getPointCount()
      Returns the number of points in the polyline.
      Returns:
      the number of points in the polyline.
    • getPoint

      @NotNull public Coordinate getPoint(long index) throws IllegalArgumentException
      Returns the coordinate for the requested index.
      Parameters:
      index - the index of the requested point.
      Returns:
      the point at the index.
      Throws:
      IllegalArgumentException - when requesting an invalid index.
    • getPoints

      @NotNull public List<@NotNull Coordinate> getPoints()
      Returns the list of points of this polyline.
      Returns:
      the list of points of this polyline.
    • getInterpolationType

      @NotNull public LineInterpolationType getInterpolationType()
      Returns the interpolation type of the line segment.

      One of

      Returns:
      the interpolation type of the line segment.
    • translate

      @NotNull public Polyline translate(@NotNull Coordinate translation)
      Translates the entire polyline.

      Note: when the polyline is defined in a geodetic reference and uses geodetic interpolation, the translation is not performed by translating the points one by one. Instead, a translation method is used that better preserves the shape of the polyline when moving it towards (or away from) the poles.

      Parameters:
      translation - the translation vector
      Returns:
      a new, translated geometry
    • movePoint

      @NotNull public Polyline movePoint(long index, @NotNull Coordinate newLocation) throws IllegalArgumentException
      Creates a new Polyline with a moved control point.
      Parameters:
      index - the index of the point to move. Should be in [0, getPointCount() - 1].
      newLocation - the new location of the point
      Returns:
      a new geometry
      Throws:
      IllegalArgumentException - for an invalid index
    • insertPoint

      @NotNull public Polyline insertPoint(long index, @NotNull Coordinate newLocation) throws IllegalArgumentException
      Creates a new Polyline with an newly inserted control point.
      Parameters:
      index - the index of the newly inserted control point. Should be in [0, getPointCount()]. For index 0, a new point will be added at the start of the Polyline. For index getPointCount(), a new point will be added at the end of the Polyline. For other index values, a point will be added between 2 other points.
      newLocation - the location of the new point
      Returns:
      a new geometry
      Throws:
      IllegalArgumentException - for an invalid index
    • removePoint

      @NotNull public Polyline removePoint(long index) throws IllegalArgumentException
      Creates a new Polyline with a control point removed.

      This methods returns a copy of the polyline if its point count is less or equal to 2.

      Parameters:
      index - the index of the point to be removed. Should be in [0, getPointCount() - 1].
      Returns:
      a new geometry
      Throws:
      IllegalArgumentException - for an invalid index