@Immutable public final class VectorI2L extends Object implements VectorReadable2LType
A two-dimensional immutable vector type with integer elements.
Values of this type are immutable and can therefore be safely accessed from multiple threads.
| Constructor and Description |
|---|
VectorI2L()
Default constructor, initializing the vector with values
[0, 0,
0]. |
VectorI2L(long in_x,
long in_y)
Construct a vector initialized with the given values.
|
VectorI2L(VectorReadable2LType in_v)
Construct a vector initialized with the values given in the vector
in_v. |
| Modifier and Type | Method and Description |
|---|---|
static VectorI2L |
absolute(VectorReadable2LType v)
Calculate the absolute values of the elements in vector
v. |
static VectorI2L |
add(VectorReadable2LType v0,
VectorReadable2LType v1)
Calculate the element-wise sum of the vectors
v0 and v1. |
static VectorI2L |
addScaled(VectorReadable2LType v0,
VectorReadable2LType v1,
double r)
Calculate the element-wise sum of the vectors
v0 and the
element-wise product of v1 and r. |
static double |
angle(VectorReadable2LType v0,
VectorReadable2LType v1)
Calculate the angle between the vectors
v0 and v1 in
radians. |
static VectorI2L |
clamp(VectorReadable2LType v,
long minimum,
long maximum)
Clamp the elements of the vector
v to the range {@code [minimum .. |
static VectorI2L |
clampByVector(VectorReadable2LType v,
VectorReadable2LType minimum,
VectorReadable2LType maximum)
Clamp the elements of the vector
v to the inclusive range given by
the corresponding elements in minimum and maximum. |
static VectorI2L |
clampMaximum(VectorReadable2LType v,
long maximum)
Clamp the elements of the vector
v to the range {@code [-Infinity
.. |
static VectorI2L |
clampMaximumByVector(VectorReadable2LType v,
VectorReadable2LType maximum)
Clamp the elements of the vector
v to the inclusive range given by
the corresponding elements in maximum. |
static VectorI2L |
clampMinimum(VectorReadable2LType v,
long minimum)
Clamp the elements of the vector
v to the range {@code [minimum .. |
static VectorI2L |
clampMinimumByVector(VectorReadable2LType v,
VectorReadable2LType minimum)
Clamp the elements of the vector
v to the inclusive range given by
the corresponding elements in minimum. |
static long |
distance(VectorReadable2LType v0,
VectorReadable2LType v1)
Calculate the distance between the two vectors
v0 and v1. |
static long |
dotProduct(VectorReadable2LType v0,
VectorReadable2LType v1)
Calculate the scalar product of the vectors
v0 and v1. |
boolean |
equals(Object obj) |
long |
getXL() |
long |
getYL() |
int |
hashCode() |
static VectorI2L |
interpolateLinear(VectorReadable2LType v0,
VectorReadable2LType v1,
double alpha)
Linearly interpolate between
v0 and v1 by the amount alpha. |
static long |
magnitude(VectorReadable2LType v)
Calculate the magnitude of the vector
v. |
static long |
magnitudeSquared(VectorReadable2LType v)
Calculate the squared magnitude of the vector
v. |
static VectorI2L |
projection(VectorReadable2LType p,
VectorReadable2LType q)
Calculate the projection of the vector
p onto the vector q. |
static VectorI2L |
scale(VectorReadable2LType v,
double r)
Scale the vector
v by the scalar r. |
static VectorI2L |
subtract(VectorReadable2LType v0,
VectorReadable2LType v1)
Subtract the vector
v1 from the vector v0. |
String |
toString() |
public static final VectorI2L ZERO
public VectorI2L()
[0, 0,
0].public VectorI2L(long in_x,
long in_y)
in_x - The x valuein_y - The y valuepublic VectorI2L(VectorReadable2LType in_v)
in_v.in_v - The input vectorpublic static VectorI2L absolute(VectorReadable2LType v) throws ArithmeticException
v.v - The input vector(abs v.x, abs v.y, abs v.z)ArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static VectorI2L add(VectorReadable2LType v0, VectorReadable2LType v1) throws ArithmeticException
v0 and v1.v0 - The left input vectorv1 - The right input vector(v0.x + v1.x, v0.y + v1.y)ArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static VectorI2L addScaled(VectorReadable2LType v0, VectorReadable2LType v1, double r) throws ArithmeticException
v0 and the
element-wise product of v1 and r.v0 - The left input vectorv1 - The right input vectorr - The scaling value(v0.x + (v1.x * r), v0.y + (v1.y * r))ArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static double angle(VectorReadable2LType v0, VectorReadable2LType v1)
v0 and v1 in
radians.v0 - The left input vectorv1 - The right input vectorpublic static VectorI2L clamp(VectorReadable2LType v, long minimum, long maximum)
v to the range [minimum ..
maximum] inclusive.v - The input vectorminimum - The minimum allowed valuemaximum - The maximum allowed valuemaximum and at
least minimumpublic static VectorI2L clampByVector(VectorReadable2LType v, VectorReadable2LType minimum, VectorReadable2LType maximum)
v to the inclusive range given by
the corresponding elements in minimum and maximum.v - The input vectorminimum - The vector containing the minimum acceptable valuesmaximum - The vector containing the maximum acceptable values(min(max(v.x, minimum.x), maximum.x), min(max(v.y,
minimum.y), maximum.y))public static VectorI2L clampMaximum(VectorReadable2LType v, long maximum)
v to the range [-Infinity
.. maximum] inclusive.v - The input vectormaximum - The maximum allowed valuemaximumpublic static VectorI2L clampMaximumByVector(VectorReadable2LType v, VectorReadable2LType maximum)
v to the inclusive range given by
the corresponding elements in maximum.v - The input vectormaximum - The vector containing the maximum acceptable values(min(v.x, maximum.x), min(v.y, maximum.y))public static VectorI2L clampMinimum(VectorReadable2LType v, long minimum)
v to the range [minimum ..
Infinity] inclusive.v - The input vectorminimum - The minimum allowed valueminimumpublic static VectorI2L clampMinimumByVector(VectorReadable2LType v, VectorReadable2LType minimum)
v to the inclusive range given by
the corresponding elements in minimum.v - The input vectorminimum - The vector containing the minimum acceptable values(max(v.x, minimum.x), max(v.y, minimum.y))public static long distance(VectorReadable2LType v0, VectorReadable2LType v1) throws ArithmeticException
v0 and v1.v0 - The left input vectorv1 - The right input vectorArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static long dotProduct(VectorReadable2LType v0, VectorReadable2LType v1) throws ArithmeticException
v0 and v1.v0 - The left input vectorv1 - The right input vectorArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static VectorI2L interpolateLinear(VectorReadable2LType v0, VectorReadable2LType v1, double alpha) throws ArithmeticException
v0 and v1 by the amount alpha.
The alpha parameter controls the degree of interpolation, such
that:
interpolateLinear(v0, v1, 0.0, r) -> r = v0interpolateLinear(v0, v1, 1.0, r) -> r = v1v0 - The left input vector.v1 - The right input vector.alpha - The interpolation value, between 0.0 and 1.0.(1 - alpha) * v0 + alpha * v1ArithmeticException - Iff an internal arithmetic operation causes an
integer overflow.public static long magnitude(VectorReadable2LType v) throws ArithmeticException
v.
Correspondingly, magnitude(normalize(v)) == 1.0.v - The input vectorArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static long magnitudeSquared(VectorReadable2LType v) throws ArithmeticException
v.v - The input vectorArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static VectorI2L projection(VectorReadable2LType p, VectorReadable2LType q) throws ArithmeticException
p onto the vector q.p - The left vectorq - The right vector((dotProduct p q) / magnitudeSquared q) * qArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static VectorI2L scale(VectorReadable2LType v, double r) throws ArithmeticException
v by the scalar r.v - The input vectorr - The scaling value(v.x * r, v.y * r)ArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic static VectorI2L subtract(VectorReadable2LType v0, VectorReadable2LType v1) throws ArithmeticException
v1 from the vector v0.v0 - The left input vectorv1 - The right input vector(v0.x - v1.x, v0.y - v1.y)ArithmeticException - Iff an internal arithmetic operation causes an
integer overflowpublic long getXL()
getXL in interface VectorReadable2LTypepublic long getYL()
getYL in interface VectorReadable2LTypeCopyright © 2016 <code@io7m.com> http://io7m.com