Class Position3D

  • All Implemented Interfaces:
    Serializable, Cloneable, Position, Cloneable

    public class Position3D
    extends Object
    implements Position, Serializable, Cloneable
    Holds the coordinates for a three-dimensional position within some coordinate reference system.
    Author:
    Niels Charlier
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      double x  
      double y  
      double z  
    • Constructor Summary

      Constructors 
      Constructor Description
      Position3D()
      Constructs a position initialized to (0,0,0) with a null coordinate reference system.
      Position3D​(double x, double y, double z)
      Constructs a 3D position from the specified ordinates.
      Position3D​(Position point)
      Constructs a position initialized to the same values than the specified point.
      Position3D​(CoordinateReferenceSystem crs)
      Constructs a position with the specified coordinate reference system.
      Position3D​(CoordinateReferenceSystem crs, double x, double y, double z)
      Constructs a 2D position from the specified ordinates in the specified CRS.
    • Field Detail

      • x

        public double x
      • y

        public double y
      • z

        public double z
    • Constructor Detail

      • Position3D

        public Position3D()
        Constructs a position initialized to (0,0,0) with a null coordinate reference system.
      • Position3D

        public Position3D​(CoordinateReferenceSystem crs)
        Constructs a position with the specified coordinate reference system.
        Parameters:
        crs - The coordinate reference system, or null.
      • Position3D

        public Position3D​(double x,
                          double y,
                          double z)
        Constructs a 3D position from the specified ordinates.
        Parameters:
        x - The x value.
        y - The y value.
        z - The z value.
      • Position3D

        public Position3D​(CoordinateReferenceSystem crs,
                          double x,
                          double y,
                          double z)
        Constructs a 2D position from the specified ordinates in the specified CRS.
        Parameters:
        crs - The coordinate reference system, or null.
        x - The x value.
        y - The y value.
        z - The z value.
      • Position3D

        public Position3D​(Position point)
        Constructs a position initialized to the same values than the specified point.
        Parameters:
        point - The point to copy.
    • Method Detail

      • getDirectPosition

        public Position getDirectPosition()
        Returns always this, the direct position for this position.
        Specified by:
        getDirectPosition in interface Position
        Returns:
        The direct position (may be this).
      • setCoordinateReferenceSystem

        public void setCoordinateReferenceSystem​(CoordinateReferenceSystem crs)
        Set the coordinate reference system in which the coordinate is given.
        Parameters:
        crs - The new coordinate reference system, or null.
      • getDimension

        public final int getDimension()
        The length of coordinate sequence (the number of entries). This is always 3 for DirectPosition3D objects.
        Specified by:
        getDimension in interface Position
        Returns:
        The dimensionality of this position.
      • getCoordinate

        public double[] getCoordinate()
        Returns a sequence of numbers that hold the coordinate of this position in its reference system.
        Specified by:
        getCoordinate in interface Position
        Returns:
        The coordinates
      • getOrdinate

        public final double getOrdinate​(int dimension)
                                 throws IndexOutOfBoundsException
        Returns the ordinate at the specified dimension.
        Specified by:
        getOrdinate in interface Position
        Parameters:
        dimension - The dimension in the range 0 to 2 inclusive.
        Returns:
        The coordinate at the specified dimension.
        Throws:
        IndexOutOfBoundsException - if the specified dimension is out of bounds.
      • setOrdinate

        public final void setOrdinate​(int dimension,
                                      double value)
                               throws IndexOutOfBoundsException
        Sets the ordinate value along the specified dimension.
        Specified by:
        setOrdinate in interface Position
        Parameters:
        dimension - the dimension for the ordinate of interest.
        value - the ordinate value of interest.
        Throws:
        IndexOutOfBoundsException - if the specified dimension is out of bounds.
      • toString

        public String toString()
        Returns a string representation of this coordinate.
        Overrides:
        toString in class Object
      • hashCode

        public int hashCode()
        Returns a hash value for this coordinate. This method implements the Position.hashCode() contract.
        Specified by:
        hashCode in interface Position
        Overrides:
        hashCode in class Object
        Returns:
        A hash code value for this position.
      • equals

        public boolean equals​(Object object)
        Compares this point with the specified object for equality. If the given object implements the Position interface, then the comparison is performed as specified in its Position.equals(java.lang.Object) contract.
        Specified by:
        equals in interface Position
        Overrides:
        equals in class Object
        Parameters:
        object - The object to compare with this position.
        Returns:
        true if the given object is equals to this position.
      • clone

        public Position3D clone()
        Returns a clone of this point.
        Specified by:
        clone in interface Cloneable
        Overrides:
        clone in class Object
        Returns:
        A clone of this position.
        See Also:
        Object.clone()