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