Class AxisPlaneCoordinateSequence

java.lang.Object
org.locationtech.jts.operation.distance3d.AxisPlaneCoordinateSequence
All Implemented Interfaces:
Cloneable, CoordinateSequence

public class AxisPlaneCoordinateSequence extends Object implements CoordinateSequence
A CoordinateSequence wrapper which projects 3D coordinates into one of the three Cartesian axis planes, using the standard orthonormal projection (i.e. simply selecting the appropriate ordinates into the XY ordinates). The projected data is represented as 2D coordinates.
  • Field Details

    • XY_INDEX

      private static final int[] XY_INDEX
    • XZ_INDEX

      private static final int[] XZ_INDEX
    • YZ_INDEX

      private static final int[] YZ_INDEX
    • seq

      private CoordinateSequence seq
    • indexMap

      private int[] indexMap
  • Constructor Details

    • AxisPlaneCoordinateSequence

      private AxisPlaneCoordinateSequence(CoordinateSequence seq, int[] indexMap)
  • Method Details

    • projectToXY

      public static CoordinateSequence projectToXY(CoordinateSequence seq)
      Creates a wrapper projecting to the XY plane.
      Parameters:
      seq - the sequence to be projected
      Returns:
      a sequence which projects coordinates
    • projectToXZ

      public static CoordinateSequence projectToXZ(CoordinateSequence seq)
      Creates a wrapper projecting to the XZ plane.
      Parameters:
      seq - the sequence to be projected
      Returns:
      a sequence which projects coordinates
    • projectToYZ

      public static CoordinateSequence projectToYZ(CoordinateSequence seq)
      Creates a wrapper projecting to the YZ plane.
      Parameters:
      seq - the sequence to be projected
      Returns:
      a sequence which projects coordinates
    • 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.
    • getCoordinate

      public Coordinate getCoordinate(int i)
      Description copied from interface: CoordinateSequence
      Returns (possibly a copy of) the i'th coordinate in this sequence. Whether or not the Coordinate returned is the actual underlying Coordinate or merely a copy depends on the implementation.

      Note that in the future the semantics of this method may change to guarantee that the Coordinate returned is always a copy. Callers should not to assume that they can modify a CoordinateSequence by modifying the object returned by this method.

      Specified by:
      getCoordinate in interface CoordinateSequence
      Parameters:
      i - the index of the coordinate to retrieve
      Returns:
      the i'th coordinate in the sequence
    • getCoordinateCopy

      public Coordinate getCoordinateCopy(int i)
      Description copied from interface: CoordinateSequence
      Returns a copy of the i'th coordinate in this sequence. This method optimizes the situation where the caller is going to make a copy anyway - if the implementation has already created a new Coordinate object, no further copy is needed.
      Specified by:
      getCoordinateCopy in interface CoordinateSequence
      Parameters:
      i - the index of the coordinate to retrieve
      Returns:
      a copy of the i'th coordinate in the sequence
    • 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
    • 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
    • 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
    • getZ

      public double getZ(int index)
    • 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])
    • size

      public int size()
      Description copied from interface: CoordinateSequence
      Returns the number of coordinates in this sequence.
      Specified by:
      size in interface CoordinateSequence
      Returns:
      the size of the sequence
    • 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
    • toCoordinateArray

      public Coordinate[] toCoordinateArray()
      Description copied from interface: CoordinateSequence
      Returns (possibly copies of) the Coordinates in this collection. Whether or not the Coordinates returned are the actual underlying Coordinates or merely copies depends on the implementation. Note that if this implementation does not store its data as an array of Coordinates, this method will incur a performance penalty because the array needs to be built from scratch.
      Specified by:
      toCoordinateArray in interface CoordinateSequence
      Returns:
      a array of coordinates containing the point values in this sequence
    • 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
    • clone

      public Object clone()
      Description copied from interface: CoordinateSequence
      Returns a deep copy of this collection. Called by Geometry#clone.
      Specified by:
      clone in interface CoordinateSequence
      Overrides:
      clone in class Object
      Returns:
      a copy of the coordinate sequence containing copies of all points
    • copy

      Description copied from interface: CoordinateSequence
      Returns a deep copy of this collection.
      Specified by:
      copy in interface CoordinateSequence
      Returns:
      a copy of the coordinate sequence containing copies of all points