public class VectorI3L extends Object implements VectorReadable3LType
A three-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 |
|---|
VectorI3L()
Default constructor, initializing the vector with values
[0, 0, 0]. |
VectorI3L(long in_x,
long in_y,
long in_z)
Construct a vector initialized with the given values.
|
VectorI3L(VectorReadable3LType in_v)
Construct a vector initialized with the values given in the vector
in_v. |
| Modifier and Type | Method and Description |
|---|---|
static VectorI3L |
absolute(VectorReadable3LType v)
Calculate the absolute values of the elements in vector
v. |
static VectorI3L |
add(VectorReadable3LType v0,
VectorReadable3LType v1)
Calculate the element-wise sum of the vectors
v0 and
v1. |
static VectorI3L |
addScaled(VectorReadable3LType v0,
VectorReadable3LType v1,
double r)
Calculate the element-wise sum of the vectors
v0 and the
element-wise product of v1 and r. |
static VectorI3L |
clamp(VectorReadable3LType v,
long minimum,
long maximum)
Clamp the elements of the vector
v to the range
[minimum .. |
static VectorI3L |
clampByVector(VectorReadable3LType v,
VectorReadable3LType minimum,
VectorReadable3LType maximum)
Clamp the elements of the vector
v to the inclusive range
given by the corresponding elements in minimum and
maximum. |
static VectorI3L |
clampMaximum(VectorReadable3LType v,
long maximum)
Clamp the elements of the vector
v to the range
[-Infinity .. |
static VectorI3L |
clampMaximumByVector(VectorReadable3LType v,
VectorReadable3LType maximum)
Clamp the elements of the vector
v to the inclusive range
given by the corresponding elements in maximum. |
static VectorI3L |
clampMinimum(VectorReadable3LType v,
long minimum)
Clamp the elements of the vector
v to the range
[minimum .. |
static VectorI3L |
clampMinimumByVector(VectorReadable3LType v,
VectorReadable3LType minimum)
Clamp the elements of the vector
v to the inclusive range
given by the corresponding elements in minimum. |
static long |
distance(VectorReadable3LType v0,
VectorReadable3LType v1)
Calculate the distance between the two vectors
v0 and
v1. |
static long |
dotProduct(VectorReadable3LType v0,
VectorReadable3LType v1)
Calculate the scalar product of the vectors
v0 and
v1. |
boolean |
equals(Object obj) |
long |
getXL() |
long |
getYL() |
long |
getZL() |
int |
hashCode() |
static VectorI3L |
interpolateLinear(VectorReadable3LType v0,
VectorReadable3LType v1,
double alpha)
Linearly interpolate between
v0 and v1 by the
amount alpha. |
static long |
magnitude(VectorReadable3LType v)
Calculate the magnitude of the vector
v. |
static long |
magnitudeSquared(VectorReadable3LType v)
Calculate the squared magnitude of the vector
v. |
static VectorI3L |
projection(VectorReadable3LType p,
VectorReadable3LType q)
Calculate the projection of the vector
p onto the vector
q. |
static VectorI3L |
scale(VectorReadable3LType v,
double r)
Scale the vector
v by the scalar r, saving the
result to out. |
static VectorI3L |
subtract(VectorReadable3LType v0,
VectorReadable3LType v1)
Subtract the vector
v1 from the vector v0. |
String |
toString() |
public static final VectorI3L ZERO
public VectorI3L()
[0, 0, 0].public VectorI3L(long in_x,
long in_y,
long in_z)
in_x - The x valuein_y - The y valuein_z - The z valuepublic VectorI3L(VectorReadable3LType in_v)
in_v.in_v - The input vector.public static final VectorI3L absolute(VectorReadable3LType 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 final VectorI3L add(VectorReadable3LType v0, VectorReadable3LType v1) throws ArithmeticException
v0 and
v1.v0 - The left input vectorv1 - The right input vector(v0.x + v1.x, v0.y + v1.y, v0.z + v1.z)ArithmeticException - Iff an internal arithmetic operation causes an integer overflowpublic static final VectorI3L addScaled(VectorReadable3LType v0, VectorReadable3LType 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), v0.z + (v1.z * r))ArithmeticException - Iff an internal arithmetic operation causes an integer overflowpublic static final VectorI3L clamp(VectorReadable3LType 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 final VectorI3L clampByVector(VectorReadable3LType v, VectorReadable3LType minimum, VectorReadable3LType 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), min(max(v.z, minimum.z), maximum.z))public static final VectorI3L clampMaximum(VectorReadable3LType v, long maximum)
v to the range
[-Infinity .. maximum] inclusive.v - The input vectormaximum - The maximum allowed valuemaximumpublic static final VectorI3L clampMaximumByVector(VectorReadable3LType v, VectorReadable3LType 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), min(v.z, maximum.z))public static final VectorI3L clampMinimum(VectorReadable3LType v, long minimum)
v to the range
[minimum .. Infinity] inclusive.v - The input vectorminimum - The minimum allowed valueminimumpublic static final VectorI3L clampMinimumByVector(VectorReadable3LType v, VectorReadable3LType 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), max(v.z, minimum.z))public static final long distance(VectorReadable3LType v0, VectorReadable3LType 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 final long dotProduct(VectorReadable3LType v0, VectorReadable3LType 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 final VectorI3L interpolateLinear(VectorReadable3LType v0, VectorReadable3LType 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 final long magnitude(VectorReadable3LType v) throws ArithmeticException
v.
Correspondingly, magnitude(normalize(v)) == 1.0.v - The input vectorArithmeticException - Iff an internal arithmetic operation causes an integer overflowpublic static final long magnitudeSquared(VectorReadable3LType v) throws ArithmeticException
v.v - The input vectorArithmeticException - Iff an internal arithmetic operation causes an integer overflowpublic static final VectorI3L projection(VectorReadable3LType p, VectorReadable3LType 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 final VectorI3L scale(VectorReadable3LType v, double r) throws ArithmeticException
v by the scalar r, saving the
result to out.v - The input vectorr - The scaling value(v.x * r, v.y * r, v.z * r)ArithmeticException - Iff an internal arithmetic operation causes an integer overflowpublic static final VectorI3L subtract(VectorReadable3LType v0, VectorReadable3LType 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, v0.z - v1.z)ArithmeticException - Iff an internal arithmetic operation causes an integer overflowpublic final long getXL()
getXL in interface VectorReadable2LTypepublic final long getYL()
getYL in interface VectorReadable2LTypepublic final long getZL()
getZL in interface VectorReadable3LTypeCopyright © 2015 <code@io7m.com> http://io7m.com