Package icyllis.arc3d.core
Class Point
java.lang.Object
icyllis.arc3d.core.Point
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic float
crossProduct
(float ax, float ay, float bx, float by) Returns the cross product of vector a and vector b.static float
distanceTo
(float ax, float ay, float bx, float by) static float
distanceToLineBetween
(float px, float py, float ax, float ay, float bx, float by) static float
distanceToLineBetweenSq
(float px, float py, float ax, float ay, float bx, float by) static float
distanceToLineSegmentBetween
(float px, float py, float ax, float ay, float bx, float by) static float
distanceToLineSegmentBetweenSq
(float px, float py, float ax, float ay, float bx, float by) static float
distanceToSq
(float ax, float ay, float bx, float by) static float
dotProduct
(float ax, float ay, float bx, float by) Returns the dot product of vector a and vector b.static boolean
equals
(float x1, float y1, float x2, float y2) Returns true if two points are equal.static boolean
isApproxEqual
(float x1, float y1, float x2, float y2, float tolerance) Returns true if two points are equal within the given tolerance.static boolean
isDegenerate
(float dx, float dy) Returns true if the given vector is degenerate or infinite.static float
length
(float x, float y) static float
lengthSq
(float x, float y) static boolean
normalize
(float[] pos, int off) static boolean
setLength
(float[] pos, int off, float length) Sets vector to (x, y) scaled to length, if possible.
-
Constructor Details
-
Point
public Point()
-
-
Method Details
-
isDegenerate
@Contract(pure=true) public static boolean isDegenerate(float dx, float dy) Returns true if the given vector is degenerate or infinite. If so, the vector cannot be normalized. -
equals
@Contract(pure=true) public static boolean equals(float x1, float y1, float x2, float y2) Returns true if two points are equal. -
isApproxEqual
@Contract(pure=true) public static boolean isApproxEqual(float x1, float y1, float x2, float y2, float tolerance) Returns true if two points are equal within the given tolerance. -
dotProduct
@Contract(pure=true) public static float dotProduct(float ax, float ay, float bx, float by) Returns the dot product of vector a and vector b.- Returns:
- product of input magnitudes and cosine of the angle between them
-
crossProduct
@Contract(pure=true) public static float crossProduct(float ax, float ay, float bx, float by) Returns the cross product of vector a and vector b.a and b form three-dimensional vectors with z-axis value equal to zero. The cross product is a three-dimensional vector with x-axis and y-axis values equal to zero. The cross product z-axis component is returned.
- Returns:
- area spanned by vectors signed by angle direction
-
normalize
public static boolean normalize(float[] pos, int off) -
setLength
public static boolean setLength(float[] pos, int off, float length) Sets vector to (x, y) scaled to length, if possible. If new length is zero or NaN, returns false; otherwise returns true.The vector is given by (v[off], v[off+1]), off must be even. length must be >= 0.
-
length
@Contract(pure=true) public static float length(float x, float y) -
lengthSq
@Contract(pure=true) public static float lengthSq(float x, float y) -
distanceTo
@Contract(pure=true) public static float distanceTo(float ax, float ay, float bx, float by) -
distanceToSq
@Contract(pure=true) public static float distanceToSq(float ax, float ay, float bx, float by) -
distanceToLineBetweenSq
public static float distanceToLineBetweenSq(float px, float py, float ax, float ay, float bx, float by) -
distanceToLineBetween
public static float distanceToLineBetween(float px, float py, float ax, float ay, float bx, float by) -
distanceToLineSegmentBetweenSq
public static float distanceToLineSegmentBetweenSq(float px, float py, float ax, float ay, float bx, float by) -
distanceToLineSegmentBetween
public static float distanceToLineSegmentBetween(float px, float py, float ax, float ay, float bx, float by)
-