Class NPCPhysicsMath

java.lang.Object
com.hypixel.hytale.server.npc.util.NPCPhysicsMath

public class NPCPhysicsMath extends Object
  • Field Details

  • Constructor Details

    • NPCPhysicsMath

      private NPCPhysicsMath()
  • Method Details

    • near

      public static boolean near(@Nonnull Vector3d v, @Nonnull Vector3d w)
    • near

      public static boolean near(@Nonnull Vector3d v, @Nonnull Vector3d w, double epsilonLength)
    • near

      public static boolean near(double v, double w)
    • near

      public static boolean near(double v, double w, double epsilonLength)
    • headingFromDirection

      public static float headingFromDirection(double x, double z, float def)
    • pitchFromDirection

      public static float pitchFromDirection(double x, double y, double z, float def)
    • getViewDirection

      @Nonnull public static Vector3d getViewDirection(@Nonnull Vector3f lookDirection, @Nonnull Vector3d outDirection)
    • cosAngleBetweenVectors

      public static double cosAngleBetweenVectors(@Nonnull Vector3d v, @Nonnull Vector3d w)
    • cosAngleBetweenVectors

      public static double cosAngleBetweenVectors(@Nonnull Vector3d v, double vLen, @Nonnull Vector3d w, double wLen)
    • cosAngleBetweenUnitVectors

      public static double cosAngleBetweenUnitVectors(@Nonnull Vector3d v, @Nonnull Vector3d w)
    • realignVector

      public static void realignVector(@Nonnull Vector3d v, @Nonnull Vector3d w, double cosine, @Nonnull Vector3d result)
    • realignVector

      public static void realignVector(@Nonnull Vector3d v, double vLen, @Nonnull Vector3d w, double wLen, double cosine, @Nonnull Vector3d result)
    • realignUnitVector

      public static void realignUnitVector(@Nonnull Vector3d v, @Nonnull Vector3d w, double cosine, @Nonnull Vector3d result)
    • realignVectorReturnDirection

      public static boolean realignVectorReturnDirection(@Nonnull Vector3d v, double vLen, @Nonnull Vector3d w, double wLen, double cosine, @Nonnull Vector3d result)
    • createOrthogonalvector

      @Nonnull public static Vector3d createOrthogonalvector(@Nonnull Vector3d in, @Nonnull Vector3d out)
    • inViewSector

      public static boolean inViewSector(double xViewer, double zViewer, float heading, float coneAngle, double xObject, double zObject)
    • isInViewCone

      public static boolean isInViewCone(double xViewer, double yViewer, double zViewer, double xViewDirection, double yViewDirection, double zViewDirection, float cosConeHalfAngle, double xObject, double yObject, double zObject)
    • isInViewCone

      public static boolean isInViewCone(double xViewDirection, double yViewDirection, double zViewDirection, float cosConeHalfAngle, double xObject, double yObject, double zObject)
    • isInViewCone

      public static boolean isInViewCone(@Nonnull Vector3d viewer, @Nonnull Vector3d viewDirection, float cosConeHalfAngle, @Nonnull Vector3d object)
    • isInViewCone

      public static boolean isInViewCone(@Nonnull Vector3d viewer, @Nonnull Vector3d viewDirection, float cosConeHalfAngle, @Nonnull Vector3d object, @Nonnull Vector3d componentSelector)
    • turnAngle

      public static float turnAngle(float from, float to)
    • clampRotation

      public static float clampRotation(float rotation, float maxAngle)
    • intersectLineSphere

      public static int intersectLineSphere(@Nonnull Vector3d center, double radius, @Nonnull Vector3d p, @Nonnull Vector3d q, @Nonnull Vector3d x1, @Nonnull Vector3d x2, boolean segmentOnly)
    • intersectLineSphereLerp

      public static double intersectLineSphereLerp(@Nonnull Vector3d center, double radius, @Nonnull Vector3d p, @Nonnull Vector3d q, @Nonnull Vector3d t1, @Nonnull Vector3d t2, @Nonnull Vector3d componentSelector)
    • intersectLineSphereLerp

      public static double intersectLineSphereLerp(@Nonnull Vector3d center, double radius, @Nonnull Vector3d p, @Nonnull Vector3d q, @Nonnull Vector3d componentSelector)
    • dotProduct

      public static double dotProduct(@Nonnull Vector3d base, @Nonnull Vector3d p, @Nonnull Vector3d q)
    • dotProduct

      public static double dotProduct(@Nonnull Vector3d base, @Nonnull Vector3d p, @Nonnull Vector3d q, @Nonnull Vector3d componentSelector)
    • dotProduct

      public static double dotProduct(double dx, double dy, double dz)
    • dotProduct

      public static double dotProduct(double px, double py, double pz, double qx, double qy, double qz)
    • dotProduct

      public static double dotProduct(float dx, float dy, float dz)
    • dotProduct

      public static double dotProduct(float px, float py, float pz, float qx, float qy, float qz)
    • length

      private static double length(double dx, double dy, double dz)
    • lerpDistance

      public static void lerpDistance(@Nonnull Vector3d start, @Nonnull Vector3d end, double distance, @Nonnull Vector3d result)
    • lerp

      public static void lerp(@Nonnull Vector3d start, @Nonnull Vector3d end, double lambda, @Nonnull Vector3d result)
    • lerp

      public static double lerp(double a, double b, double s)
    • offsetVector

      public static void offsetVector(@Nonnull Vector3d start, double dx, double dy, double dz, double lambda, @Nonnull Vector3d result)
    • offsetVector

      public static void offsetVector(double sx, double sy, double sz, double dx, double dy, double dz, double lambda, @Nonnull Vector3d result)
    • orthoComposition

      public static void orthoComposition(@Nonnull Vector3d start, @Nonnull Vector3d end, @Nonnull Vector3d ortho, double distance, @Nonnull Vector3d result)
    • orthoComposition

      public static void orthoComposition(@Nonnull Vector3d start, @Nonnull Vector3d end, double distanceStart, @Nonnull Vector3d ortho, double distance, @Nonnull Vector3d result)
    • lookatHeading

      public static float lookatHeading(@Nonnull Vector3d self, @Nonnull Vector3d pointOfInterest, float headingHint)
    • blockEmptySpace

      public static double blockEmptySpace(@Nonnull com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType blockType, int rotation, @Nonnull NPCPhysicsMath.Direction direction)
    • heightOverGround

      public static double heightOverGround(@Nonnull World world, double x, double y, double z)
    • heightOverGround

      public static double heightOverGround(@Nonnull World world, double x, double z)
    • blockHeight

      public static double blockHeight(@Nonnull com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType blockType, int rotation)
    • dotProduct

      public static double dotProduct(double x, double y, double z, @Nonnull Vector3d componentSelector)
    • dotProduct

      public static double dotProduct(double px, double py, double pz, double qx, double qy, double qz, @Nonnull Vector3d componentSelector)
    • projectedLengthSquared

      public static double projectedLengthSquared(@Nonnull Vector3d v, @Nonnull Vector3d componentSelector)
    • projectedLength

      public static double projectedLength(@Nonnull Vector3d v, @Nonnull Vector3d componentSelector)
    • intersectSweptSpheres

      public static int intersectSweptSpheres(@Nonnull Vector3d p1, @Nonnull Vector3d velocity1, @Nonnull Vector3d p2, @Nonnull Vector3d velocity2, double radius, @Nonnull Vector3d componentSelector, double[] results)
    • intersectSweptSpheresFootpoint

      public static int intersectSweptSpheresFootpoint(@Nonnull Vector3d p1, @Nonnull Vector3d velocity1, double radius1, @Nonnull Vector3d p2, @Nonnull Vector3d velocity2, double radius2, @Nonnull Vector3d componentSelector, double[] results)
    • intersectSweptSpheres

      public static int intersectSweptSpheres(double p1x, double p1y, double p1z, double velocity1x, double velocity1y, double velocity1z, double p2x, double p2y, double p2z, double velocity2x, double velocity2y, double velocity2z, double radius, @Nonnull Vector3d componentSelector, double[] results)
    • collisionSphereRadius

      public static double collisionSphereRadius(@Nonnull Box boundingBox)
    • collisionSphereRadius

      public static double collisionSphereRadius(double boxWidth, double boxDepth, double boxHeight)
    • collisionSphereRadius

      public static double collisionSphereRadius(@Nonnull Ref<EntityStore> ref, @Nonnull ComponentAccessor<EntityStore> componentAccessor)
    • rayCircleIntersect

      public static double rayCircleIntersect(double sx, double sy, double dx, double dy, double radius)
    • rayCircleIntersect

      public static double rayCircleIntersect(@Nonnull Vector3d start, @Nonnull Vector3d end, @Nonnull Vector3d center, double radius, @Nonnull Vector3d normal)
    • projection

      @Nonnull public static Vector3d projection(@Nonnull Vector3d v, @Nonnull Vector3d p, @Nonnull Vector3d result)
    • rejection

      @Nonnull public static Vector3d rejection(@Nonnull Vector3d v, @Nonnull Vector3d p, @Nonnull Vector3d result)
    • subtractVector

      @Nonnull public static Vector3d subtractVector(@Nonnull Vector3d p, @Nonnull Vector3d q, @Nonnull Vector3d result)
    • addDifference

      @Nonnull public static Vector3d addDifference(@Nonnull Vector3d result, @Nonnull Vector3d p, @Nonnull Vector3d q)
    • projection

      @Nonnull public static Vector3d projection(@Nonnull Vector3d base, @Nonnull Vector3d v, @Nonnull Vector3d p, @Nonnull Vector3d result)
    • rejection

      @Nonnull public static Vector3d rejection(@Nonnull Vector3d base, @Nonnull Vector3d v, @Nonnull Vector3d p, @Nonnull Vector3d result)
    • multiply

      @Nonnull public static Vector3d multiply(@Nonnull Vector3d v, @Nonnull Vector3d w)
    • squaredDistProjected

      public static double squaredDistProjected(double px, double py, double pz, @Nonnull Vector3d q, @Nonnull Vector3d normal)
    • squaredDistProjected

      public static double squaredDistProjected(double px, double py, double pz, double qx, double qy, double qz, @Nonnull Vector3d normal)
    • getProjectedDifference

      public static double getProjectedDifference(@Nonnull Vector3d p, @Nonnull Vector3d q, @Nonnull Vector3d componentSelector)
    • isInvalid

      public static boolean isInvalid(double v)
    • isInvalid

      public static boolean isInvalid(@Nonnull Vector3d v)
    • isValid

      public static boolean isValid(double v)
    • isValid

      public static boolean isValid(@Nonnull Vector3d v)
    • jumpParameters

      public static double jumpParameters(@Nonnull Vector3d position, @Nonnull Vector3d targetPosition, double gravity, @Nonnull Vector3d velocity)
    • accelerate

      public static double accelerate(double v, double a, double t, double limitSpeed)
    • deccelerateToStop

      public static double deccelerateToStop(double v, double a, double t)
    • deccelerateToStop

      @Nonnull public static Vector3d deccelerateToStop(@Nonnull Vector3d v, double a, double t)
    • accelerateDrag

      public static double accelerateDrag(double v, double a, double t, double terminalVelocity, double p)
    • accelerateDragCapped

      public static double accelerateDragCapped(double v, double a, double t, double terminalVelocity, double p)
    • accelerateDrag

      public static double accelerateDrag(double v, double a, double t, double terminalVelocity)
    • accelerateDragCapped

      public static double accelerateDragCapped(double v, double a, double t, double terminalVelocity)
    • accelerateToTargetSpeed

      public static double accelerateToTargetSpeed(double vCurrent, double vTarget, double dt, double accel, double decel, double vMin, double vMax)
    • accelerateToTargetSpeed

      public static double accelerateToTargetSpeed(double vCurrent, double vTarget, double dt, double accel, double decel, double vMax)
    • accelerateToTargetSpeed

      public static double accelerateToTargetSpeed(double vCurrent, double vTarget, double dt, double accel, double vMax)
    • gravityDrag

      public static double gravityDrag(double v, double a, double t, double terminalVelocity, double p)
    • gravityDrag

      public static double gravityDrag(double v, double a, double t, double terminalVelocity)