Class VectorUtil

java.lang.Object
com.hypixel.hytale.builtin.hytalegenerator.VectorUtil

public class VectorUtil extends Object
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
     
    static interface 
     
    static interface 
     
    static class 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static double
    angle(org.joml.Vector3d a, org.joml.Vector3d b)
     
    static boolean
    areasOverlap(org.joml.Vector3d minA, org.joml.Vector3d maxA, org.joml.Vector3d minB, org.joml.Vector3d maxB)
     
    static void
    assignFloored(org.joml.Vector3i to, org.joml.Vector3d from)
     
    static void
    bitShiftLeft(int shift, org.joml.Vector3i vector)
     
    static void
    bitShiftRight(int shift, org.joml.Vector3i vector)
     
    static double
    determinant(org.joml.Vector3dc v1, org.joml.Vector3dc v2)
     
    static double
    determinant(org.joml.Vector3d a, org.joml.Vector3d b, org.joml.Vector3d c)
     
    static it.unimi.dsi.fastutil.doubles.DoubleObjectPair<org.joml.Vector3d>
    distanceAndNearestPointOnSegment3d(org.joml.Vector3d point, org.joml.Vector3d p0, org.joml.Vector3d p1)
     
    static double
    distanceToLine3d(org.joml.Vector3d point, org.joml.Vector3d p0, org.joml.Vector3d p1, org.joml.Vector3d rLineVec, org.joml.Vector3d rPointVec, org.joml.Vector3d rLineUnitVec, org.joml.Vector3d rPointVecScaled, org.joml.Vector3d rNearestPoint)
     
    static double
    distanceToSegment3d(org.joml.Vector3dc point, org.joml.Vector3dc p0, org.joml.Vector3dc p1)
     
    static org.joml.Vector3i
     
    static org.joml.Vector3i
    fromOperation(org.joml.Vector3i v1, org.joml.Vector3i v2, VectorUtil.BiOperation3i operation)
     
    static boolean
    isAnyGreater(org.joml.Vector2d point, org.joml.Vector2d limit)
     
    static boolean
    isAnyGreater(org.joml.Vector2i point, org.joml.Vector2i limit)
     
    static boolean
    isAnyGreater(org.joml.Vector3d point, org.joml.Vector3d limit)
     
    static boolean
    isAnyGreater(org.joml.Vector3i point, org.joml.Vector3i limit)
     
    static boolean
    isAnySmaller(org.joml.Vector2d point, org.joml.Vector2d limit)
     
    static boolean
    isAnySmaller(org.joml.Vector2i point, org.joml.Vector2i limit)
     
    static boolean
    isAnySmaller(org.joml.Vector3d point, org.joml.Vector3d limit)
     
    static boolean
    isAnySmaller(org.joml.Vector3i point, org.joml.Vector3i limit)
     
    static boolean
    isInside(org.joml.Vector2d point, org.joml.Vector2d min, org.joml.Vector2d max)
     
    static boolean
    isInside(org.joml.Vector3d point, org.joml.Vector3d min, org.joml.Vector3d max)
     
    static boolean
    isInside(org.joml.Vector3i point, org.joml.Vector3i min, org.joml.Vector3i max)
     
    static boolean
    isSmaller(org.joml.Vector2d point, org.joml.Vector2d limit)
     
    static boolean
    isSmaller(org.joml.Vector2i point, org.joml.Vector2i limit)
     
    static boolean
    isSmaller(org.joml.Vector3d point, org.joml.Vector3d limit)
     
    static boolean
    isZero(org.joml.Vector3dc vec)
     
    static boolean
    isZero(org.joml.Vector3ic vec)
     
    static void
    nearestPointOnLine3d(org.joml.Vector3d point, org.joml.Vector3d p0, org.joml.Vector3d p1, org.joml.Vector3d vector_out, org.joml.Vector3d rLineVec, org.joml.Vector3d rPointVec, org.joml.Vector3d rLineUnitVec, org.joml.Vector3d rPointVecScaled)
     
    static org.joml.Vector3d
    nearestPointOnSegment3d(org.joml.Vector3d point, org.joml.Vector3d p0, org.joml.Vector3d p1)
     
    static void
    nextDown(org.joml.Vector3d vec)
     
    static void
    nextUp(org.joml.Vector3d vec)
     
    static List<org.joml.Vector2i>
    orderByDistanceFrom(org.joml.Vector2i origin, List<org.joml.Vector2i> vectors)
    Orders the provided list of vectors in order of closest to farthest from the origin.
    static void
    orthogonalVector(org.joml.Vector3d vec, org.joml.Vector3d dest)
     
    static void
    randomize(Random random, org.joml.Vector3d vector_out)
    Writes a random direction, distributed uniformly over the unit sphere.
    static void
    rotateAroundAxis(org.joml.Vector3d vec, org.joml.Vector3d axis, double theta)
     
    static void
    rotateVectorByAxisAngle(org.joml.Vector3d vec, org.joml.Vector3d axis, double angle)
     
    static boolean[]
    shortestSegmentBetweenTwoSegments(org.joml.Vector3d a0, org.joml.Vector3d a1, org.joml.Vector3d b0, org.joml.Vector3d b1, boolean clamp, org.joml.Vector3d p0Out, org.joml.Vector3d p1Out)
     
    static String
    toString(org.joml.Vector3dc vec)
     
    static String
    toString(org.joml.Vector3ic vec)
     

    Methods inherited from class Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • VectorUtil

      public VectorUtil()
  • Method Details

    • toString

      @Nonnull public static String toString(@Nonnull org.joml.Vector3dc vec)
    • toString

      @Nonnull public static String toString(@Nonnull org.joml.Vector3ic vec)
    • randomize

      public static void randomize(@Nonnull Random random, @Nonnull org.joml.Vector3d vector_out)
      Writes a random direction, distributed uniformly over the unit sphere.

      Uses Marsaglia's rejection method from "Choosing a Point from the Surface of a Sphere", Annals of Mathematical Statistics 43(2), 645-646 (1972).

      Parameters:
      random - determines the random outcome
      vector_out - is written to, and receives a unit vector
    • nextUp

      public static void nextUp(@Nonnull org.joml.Vector3d vec)
    • nextDown

      public static void nextDown(@Nonnull org.joml.Vector3d vec)
    • orthogonalVector

      public static void orthogonalVector(@Nonnull org.joml.Vector3d vec, @Nonnull org.joml.Vector3d dest)
    • isZero

      public static boolean isZero(@Nonnull org.joml.Vector3dc vec)
    • isZero

      public static boolean isZero(@Nonnull org.joml.Vector3ic vec)
    • assignFloored

      public static void assignFloored(@Nonnull org.joml.Vector3i to, @Nonnull org.joml.Vector3d from)
    • areasOverlap

      public static boolean areasOverlap(@Nonnull org.joml.Vector3d minA, @Nonnull org.joml.Vector3d maxA, @Nonnull org.joml.Vector3d minB, @Nonnull org.joml.Vector3d maxB)
    • distanceToSegment3d

      public static double distanceToSegment3d(@Nonnull org.joml.Vector3dc point, @Nonnull org.joml.Vector3dc p0, @Nonnull org.joml.Vector3dc p1)
    • distanceToLine3d

      public static double distanceToLine3d(@Nonnull org.joml.Vector3d point, @Nonnull org.joml.Vector3d p0, @Nonnull org.joml.Vector3d p1, @Nonnull org.joml.Vector3d rLineVec, @Nonnull org.joml.Vector3d rPointVec, @Nonnull org.joml.Vector3d rLineUnitVec, @Nonnull org.joml.Vector3d rPointVecScaled, @Nonnull org.joml.Vector3d rNearestPoint)
    • nearestPointOnSegment3d

      @Nonnull public static org.joml.Vector3d nearestPointOnSegment3d(@Nonnull org.joml.Vector3d point, @Nonnull org.joml.Vector3d p0, @Nonnull org.joml.Vector3d p1)
    • nearestPointOnLine3d

      public static void nearestPointOnLine3d(@Nonnull org.joml.Vector3d point, @Nonnull org.joml.Vector3d p0, @Nonnull org.joml.Vector3d p1, @Nonnull org.joml.Vector3d vector_out, @Nonnull org.joml.Vector3d rLineVec, @Nonnull org.joml.Vector3d rPointVec, @Nonnull org.joml.Vector3d rLineUnitVec, @Nonnull org.joml.Vector3d rPointVecScaled)
    • shortestSegmentBetweenTwoSegments

      public static boolean[] shortestSegmentBetweenTwoSegments(@Nonnull org.joml.Vector3d a0, @Nonnull org.joml.Vector3d a1, @Nonnull org.joml.Vector3d b0, @Nonnull org.joml.Vector3d b1, boolean clamp, @Nonnull org.joml.Vector3d p0Out, @Nonnull org.joml.Vector3d p1Out)
    • determinant

      public static double determinant(@Nonnull org.joml.Vector3dc v1, @Nonnull org.joml.Vector3dc v2)
    • determinant

      public static double determinant(@Nonnull org.joml.Vector3d a, @Nonnull org.joml.Vector3d b, @Nonnull org.joml.Vector3d c)
    • distanceAndNearestPointOnSegment3d

      @Nonnull public static it.unimi.dsi.fastutil.doubles.DoubleObjectPair<org.joml.Vector3d> distanceAndNearestPointOnSegment3d(@Nonnull org.joml.Vector3d point, @Nonnull org.joml.Vector3d p0, @Nonnull org.joml.Vector3d p1)
    • angle

      public static double angle(@Nonnull org.joml.Vector3d a, @Nonnull org.joml.Vector3d b)
    • rotateAroundAxis

      public static void rotateAroundAxis(@Nonnull org.joml.Vector3d vec, @Nonnull org.joml.Vector3d axis, double theta)
    • rotateVectorByAxisAngle

      public static void rotateVectorByAxisAngle(@Nonnull org.joml.Vector3d vec, @Nonnull org.joml.Vector3d axis, double angle)
    • isInside

      public static boolean isInside(@Nonnull org.joml.Vector3i point, @Nonnull org.joml.Vector3i min, @Nonnull org.joml.Vector3i max)
    • isInside

      public static boolean isInside(@Nonnull org.joml.Vector3d point, @Nonnull org.joml.Vector3d min, @Nonnull org.joml.Vector3d max)
    • isAnySmaller

      public static boolean isAnySmaller(@Nonnull org.joml.Vector3d point, @Nonnull org.joml.Vector3d limit)
    • isSmaller

      public static boolean isSmaller(@Nonnull org.joml.Vector3d point, @Nonnull org.joml.Vector3d limit)
    • isAnyGreater

      public static boolean isAnyGreater(@Nonnull org.joml.Vector3d point, @Nonnull org.joml.Vector3d limit)
    • isAnySmaller

      public static boolean isAnySmaller(@Nonnull org.joml.Vector3i point, @Nonnull org.joml.Vector3i limit)
    • isAnyGreater

      public static boolean isAnyGreater(@Nonnull org.joml.Vector3i point, @Nonnull org.joml.Vector3i limit)
    • isInside

      public static boolean isInside(@Nonnull org.joml.Vector2d point, @Nonnull org.joml.Vector2d min, @Nonnull org.joml.Vector2d max)
    • isAnySmaller

      public static boolean isAnySmaller(@Nonnull org.joml.Vector2d point, @Nonnull org.joml.Vector2d limit)
    • isSmaller

      public static boolean isSmaller(@Nonnull org.joml.Vector2d point, @Nonnull org.joml.Vector2d limit)
    • isAnyGreater

      public static boolean isAnyGreater(@Nonnull org.joml.Vector2d point, @Nonnull org.joml.Vector2d limit)
    • isAnySmaller

      public static boolean isAnySmaller(@Nonnull org.joml.Vector2i point, @Nonnull org.joml.Vector2i limit)
    • isSmaller

      public static boolean isSmaller(@Nonnull org.joml.Vector2i point, @Nonnull org.joml.Vector2i limit)
    • isAnyGreater

      public static boolean isAnyGreater(@Nonnull org.joml.Vector2i point, @Nonnull org.joml.Vector2i limit)
    • fromOperation

      @Nonnull public static org.joml.Vector3i fromOperation(@Nonnull org.joml.Vector3i v1, @Nonnull org.joml.Vector3i v2, @Nonnull VectorUtil.BiOperation3i operation)
    • fromOperation

      @Nonnull public static org.joml.Vector3i fromOperation(@Nonnull VectorUtil.NakedOperation3i operation)
    • bitShiftRight

      public static void bitShiftRight(int shift, @Nonnull org.joml.Vector3i vector)
    • bitShiftLeft

      public static void bitShiftLeft(int shift, @Nonnull org.joml.Vector3i vector)
    • orderByDistanceFrom

      @Nonnull public static List<org.joml.Vector2i> orderByDistanceFrom(@Nonnull org.joml.Vector2i origin, @Nonnull List<org.joml.Vector2i> vectors)
      Orders the provided list of vectors in order of closest to farthest from the origin.