Interface Point

All Known Implementing Classes:
BlockVec, Pos, Vec

public sealed interface Point permits Vec, Pos, BlockVec
Represents a 3D point.
  • Method Summary

    Modifier and Type
    Method
    Description
    add(double value)
     
    add(double x, double y, double z)
     
    add(Point point)
     
    default BlockVec
     
    default Pos
     
    default Vec
     
    default int
    Gets the floored value of the X component
    default int
    Gets the floored value of the Y component
    default int
    Gets the floored value of the Z component
    default int
     
    default int
     
    default double
    distance(double x, double y, double z)
     
    default double
    distance(Point point)
    Gets the distance between this point and another.
    default double
    distanceSquared(double x, double y, double z)
     
    default double
    Gets the squared distance between this point and another.
    div(double value)
     
    div(double x, double y, double z)
     
    div(Point point)
     
    default boolean
    Checks if the three coordinates x(), y() and z() are equal to 0.
    mul(double value)
     
    mul(double x, double y, double z)
     
    mul(Point point)
     
    default int
     
    default int
     
    default Point
     
    default boolean
    sameBlock(int blockX, int blockY, int blockZ)
     
    default boolean
    Checks if two points are in the same block.
    default boolean
    Checks if two points are in the same chunk.
    default boolean
    samePoint(double x, double y, double z)
     
    default boolean
    samePoint(double x, double y, double z, double epsilon)
    Checks it two points have similar (x/y/z) coordinates within a given epsilon.
    default boolean
    Checks it two points have similar (x/y/z).
    default boolean
    samePoint(Point point, double epsilon)
    Checks it two points have similar (x/y/z) coordinates within a given epsilon.
    default int
    Deprecated.
    use sectionY() instead.
    default int
     
    default int
     
    default int
     
    sub(double value)
     
    sub(double x, double y, double z)
     
    sub(Point point)
     
    withX(double x)
    Creates a point with the specified X coordinate.
    Creates a point with a modified X coordinate based on its value.
    withY(double y)
    Creates a point with the specified Y coordinate.
    Creates a point with a modified Y coordinate based on its value.
    withZ(double z)
    Creates a point with the specified Z coordinate.
    Creates a point with a modified Z coordinate based on its value.
    double
    x()
    Gets the X coordinate.
    double
    y()
    Gets the Y coordinate.
    double
    z()
    Gets the Z coordinate.
  • Method Details

    • x

      @Contract(pure=true) double x()
      Gets the X coordinate.
      Returns:
      the X coordinate
    • y

      @Contract(pure=true) double y()
      Gets the Y coordinate.
      Returns:
      the Y coordinate
    • z

      @Contract(pure=true) double z()
      Gets the Z coordinate.
      Returns:
      the Z coordinate
    • blockX

      @Contract(pure=true) default int blockX()
      Gets the floored value of the X component
      Returns:
      the block X
    • blockY

      @Contract(pure=true) default int blockY()
      Gets the floored value of the Y component
      Returns:
      the block Y
    • blockZ

      @Contract(pure=true) default int blockZ()
      Gets the floored value of the Z component
      Returns:
      the block Z
    • sectionX

      @Contract(pure=true) default int sectionX()
    • sectionY

      @Contract(pure=true) default int sectionY()
    • sectionZ

      @Contract(pure=true) default int sectionZ()
    • chunkX

      @Contract(pure=true) default int chunkX()
    • chunkZ

      @Contract(pure=true) default int chunkZ()
    • regionX

      @Contract(pure=true) default int regionX()
    • regionZ

      @Contract(pure=true) default int regionZ()
    • section

      @Deprecated @Contract(pure=true) default int section()
      Deprecated.
      use sectionY() instead.
    • withX

      @Contract(pure=true) Point withX(DoubleUnaryOperator operator)
      Creates a point with a modified X coordinate based on its value.
      Parameters:
      operator - the operator providing the current X coordinate and returning the new
      Returns:
      a new point
    • withX

      @Contract(pure=true) Point withX(double x)
      Creates a point with the specified X coordinate.
      Parameters:
      x - the new X coordinate
      Returns:
      a new point
    • withY

      @Contract(pure=true) Point withY(DoubleUnaryOperator operator)
      Creates a point with a modified Y coordinate based on its value.
      Parameters:
      operator - the operator providing the current Y coordinate and returning the new
      Returns:
      a new point
    • withY

      @Contract(pure=true) Point withY(double y)
      Creates a point with the specified Y coordinate.
      Parameters:
      y - the new Y coordinate
      Returns:
      a new point
    • withZ

      @Contract(pure=true) Point withZ(DoubleUnaryOperator operator)
      Creates a point with a modified Z coordinate based on its value.
      Parameters:
      operator - the operator providing the current Z coordinate and returning the new
      Returns:
      a new point
    • withZ

      @Contract(pure=true) Point withZ(double z)
      Creates a point with the specified Z coordinate.
      Parameters:
      z - the new Z coordinate
      Returns:
      a new point
    • add

      @Contract(pure=true) Point add(double x, double y, double z)
    • add

      @Contract(pure=true) Point add(Point point)
    • add

      @Contract(pure=true) Point add(double value)
    • sub

      @Contract(pure=true) Point sub(double x, double y, double z)
    • sub

      @Contract(pure=true) Point sub(Point point)
    • sub

      @Contract(pure=true) Point sub(double value)
    • mul

      @Contract(pure=true) Point mul(double x, double y, double z)
    • mul

      @Contract(pure=true) Point mul(Point point)
    • mul

      @Contract(pure=true) Point mul(double value)
    • div

      @Contract(pure=true) Point div(double x, double y, double z)
    • div

      @Contract(pure=true) Point div(Point point)
    • div

      @Contract(pure=true) Point div(double value)
    • relative

      @Contract(pure=true) default Point relative(BlockFace face)
    • distanceSquared

      @Contract(pure=true) default double distanceSquared(double x, double y, double z)
    • distanceSquared

      @Contract(pure=true) default double distanceSquared(Point point)
      Gets the squared distance between this point and another.
      Parameters:
      point - the other point
      Returns:
      the squared distance
    • distance

      @Contract(pure=true) default double distance(double x, double y, double z)
    • distance

      @Contract(pure=true) default double distance(Point point)
      Gets the distance between this point and another. The value of this method is not cached and uses a costly square-root function, so do not repeatedly call this method to get the vector's magnitude. NaN will be returned if the inner result of the sqrt() function overflows, which will be caused if the distance is too long.
      Parameters:
      point - the other point
      Returns:
      the distance
    • samePoint

      default boolean samePoint(double x, double y, double z)
    • samePoint

      default boolean samePoint(Point point)
      Checks it two points have similar (x/y/z).
      Parameters:
      point - the point to compare
      Returns:
      true if the two positions are similar
    • samePoint

      default boolean samePoint(double x, double y, double z, double epsilon)
      Checks it two points have similar (x/y/z) coordinates within a given epsilon.
      Parameters:
      x - the x coordinate to compare
      y - the y coordinate to compare
      z - the z coordinate to compare
      epsilon - the maximum difference allowed between the two points (exclusive)
      Returns:
      true if the two positions are similar within the epsilon
      Throws:
      IllegalArgumentException - if epsilon is less than or equal to 0
    • samePoint

      default boolean samePoint(Point point, double epsilon)
      Checks it two points have similar (x/y/z) coordinates within a given epsilon.
      Parameters:
      point - the point to compare
      epsilon - the maximum difference allowed between the two points (exclusive)
      Returns:
      true if the two positions are similar within the epsilon
      Throws:
      IllegalArgumentException - if epsilon is less than or equal to 0
    • isZero

      default boolean isZero()
      Checks if the three coordinates x(), y() and z() are equal to 0.
      Returns:
      true if the three coordinates are zero
    • sameChunk

      default boolean sameChunk(Point point)
      Checks if two points are in the same chunk.
      Parameters:
      point - the point to compare to
      Returns:
      true if 'this' is in the same chunk as point
    • sameBlock

      default boolean sameBlock(int blockX, int blockY, int blockZ)
    • sameBlock

      default boolean sameBlock(Point point)
      Checks if two points are in the same block.
      Parameters:
      point - the point to compare to
      Returns:
      true if 'this' is in the same block as point
    • asPos

      @Contract(pure=true) default Pos asPos()
    • asVec

      @Contract(pure=true) default Vec asVec()
    • asBlockVec

      @Contract(pure=true) default BlockVec asBlockVec()