Class CoordinateArraySequence

java.lang.Object
org.locationtech.jts.geom.impl.CoordinateArraySequence
All Implemented Interfaces:
Serializable, Cloneable, CoordinateSequence

public class CoordinateArraySequence extends Object implements CoordinateSequence, Serializable
A CoordinateSequence backed by an array of Coordinates. This is the implementation that Geometrys use by default. Coordinates returned by #toArray and #getCoordinate are live -- modifications to them are actually changing the CoordinateSequence's underlying data. A dimension may be specified for the coordinates in the sequence, which may be 2 or 3. The actual coordinates will always have 3 ordinates, but the dimension is useful as metadata in some situations.
Version:
1.7
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • dimension

      private int dimension
      The actual dimension of the coordinates in the sequence. Allowable values are 2 or 3.
    • coordinates

      private Coordinate[] coordinates
  • Constructor Details

    • CoordinateArraySequence

      public CoordinateArraySequence(Coordinate[] coordinates)
      Constructs a sequence based on the given array of Coordinates (the array is not copied). The coordinate dimension defaults to 3.
      Parameters:
      coordinates - the coordinate array that will be referenced.
    • CoordinateArraySequence

      public CoordinateArraySequence(Coordinate[] coordinates, int dimension)
      Constructs a sequence based on the given array of Coordinates (the array is not copied).
      Parameters:
      coordinates - the coordinate array that will be referenced.
      dimension - the dimension of the coordinates
    • CoordinateArraySequence

      public CoordinateArraySequence(int size)
      Constructs a sequence of a given size, populated with new Coordinates.
      Parameters:
      size - the size of the sequence to create
    • CoordinateArraySequence

      public CoordinateArraySequence(int size, int dimension)
      Constructs a sequence of a given size, populated with new Coordinates.
      Parameters:
      size - the size of the sequence to create
      dimension - the dimension of the coordinates
    • CoordinateArraySequence

      public CoordinateArraySequence(CoordinateSequence coordSeq)
      Creates a new sequence based on a deep copy of the given CoordinateSequence. The coordinate dimension is set to equal the dimension of the input.
      Parameters:
      coordSeq - the coordinate sequence that will be copied.
  • Method Details

    • getDimension

      public int getDimension()
      Description copied from interface: CoordinateSequence
      Returns the dimension (number of ordinates in each coordinate) for this sequence.
      Specified by:
      getDimension in interface CoordinateSequence
      Returns:
      the dimension of the sequence.
      See Also:
    • getCoordinate

      public Coordinate getCoordinate(int i)
      Get the Coordinate with index i.
      Specified by:
      getCoordinate in interface CoordinateSequence
      Parameters:
      i - the index of the coordinate
      Returns:
      the requested Coordinate instance
    • getCoordinateCopy

      public Coordinate getCoordinateCopy(int i)
      Get a copy of the Coordinate with index i.
      Specified by:
      getCoordinateCopy in interface CoordinateSequence
      Parameters:
      i - the index of the coordinate
      Returns:
      a copy of the requested Coordinate
    • getCoordinate

      public void getCoordinate(int index, Coordinate coord)
      Description copied from interface: CoordinateSequence
      Copies the i'th coordinate in the sequence to the supplied Coordinate. Only the first two dimensions are copied.
      Specified by:
      getCoordinate in interface CoordinateSequence
      Parameters:
      index - the index of the coordinate to copy
      coord - a Coordinate to receive the value
      See Also:
    • getX

      public double getX(int index)
      Description copied from interface: CoordinateSequence
      Returns ordinate X (0) of the specified coordinate.
      Specified by:
      getX in interface CoordinateSequence
      Parameters:
      index -
      Returns:
      the value of the X ordinate in the index'th coordinate
      See Also:
    • getY

      public double getY(int index)
      Description copied from interface: CoordinateSequence
      Returns ordinate Y (1) of the specified coordinate.
      Specified by:
      getY in interface CoordinateSequence
      Parameters:
      index -
      Returns:
      the value of the Y ordinate in the index'th coordinate
      See Also:
    • getOrdinate

      public double getOrdinate(int index, int ordinateIndex)
      Description copied from interface: CoordinateSequence
      Returns the ordinate of a coordinate in this sequence. Ordinate indices 0 and 1 are assumed to be X and Y. Ordinates indices greater than 1 have user-defined semantics (for instance, they may contain other dimensions or measure values).
      Specified by:
      getOrdinate in interface CoordinateSequence
      Parameters:
      index - the coordinate index in the sequence
      ordinateIndex - the ordinate index in the coordinate (in range [0, dimension-1])
      See Also:
    • clone

      public Object clone()
      Deprecated.
      Creates a deep copy of the Object
      Specified by:
      clone in interface CoordinateSequence
      Overrides:
      clone in class Object
      Returns:
      The deep copy
    • copy

      public CoordinateArraySequence copy()
      Creates a deep copy of the CoordinateArraySequence
      Specified by:
      copy in interface CoordinateSequence
      Returns:
      The deep copy
    • size

      public int size()
      Returns the size of the coordinate sequence
      Specified by:
      size in interface CoordinateSequence
      Returns:
      the number of coordinates
    • setOrdinate

      public void setOrdinate(int index, int ordinateIndex, double value)
      Description copied from interface: CoordinateSequence
      Sets the value for a given ordinate of a coordinate in this sequence.
      Specified by:
      setOrdinate in interface CoordinateSequence
      Parameters:
      index - the coordinate index in the sequence
      ordinateIndex - the ordinate index in the coordinate (in range [0, dimension-1])
      value - the new ordinate value
      See Also:
    • toCoordinateArray

      public Coordinate[] toCoordinateArray()
      This method exposes the internal Array of Coordinate Objects
      Specified by:
      toCoordinateArray in interface CoordinateSequence
      Returns:
      the Coordinate[] array.
    • expandEnvelope

      public Envelope expandEnvelope(Envelope env)
      Description copied from interface: CoordinateSequence
      Expands the given Envelope to include the coordinates in the sequence. Allows implementing classes to optimize access to coordinate values.
      Specified by:
      expandEnvelope in interface CoordinateSequence
      Parameters:
      env - the envelope to expand
      Returns:
      a ref to the expanded envelope
    • toString

      public String toString()
      Returns the string Representation of the coordinate array
      Overrides:
      toString in class Object
      Returns:
      The string