| Modifier and Type | Method | Description |
|---|---|---|
static <T> PVector4D<T> |
absolute(PVector4D<T> v0) |
Calculate the absolute of
v0. |
static <T> PVector4D<T> |
add(PVector4D<T> v0,
PVector4D<T> v1) |
Add
v0 to v1. |
static <T> PVector4D<T> |
addScaled(PVector4D<T> v0,
PVector4D<T> v1,
double r) |
Add
v0 to v1 * r. |
static <T> PVector4D<T> |
clamp(PVector4D<T> v,
PVector4D<T> v_min,
PVector4D<T> v_max) |
Clamp the values in
v by v_min and v_max. |
static <T> double |
distance(PVector4D<T> v0,
PVector4D<T> v1) |
Calculate the distance between
v0 and v1. |
static <T> double |
dotProduct(PVector4D<T> v0,
PVector4D<T> v1) |
Calculate the scalar product of the vectors
v0 and v1. |
static <T> PVector4D<T> |
interpolateBilinear(PVector4D<T> x0y0,
PVector4D<T> x1y0,
PVector4D<T> x0y1,
PVector4D<T> x1y1,
double px,
double py) |
Bilinearly interpolate between
x0y0, x1y0, x0y1, x1y1. |
static <T> PVector4D<T> |
interpolateLinear(PVector4D<T> v0,
PVector4D<T> v1,
double alpha) |
Linearly interpolate between
v0 and v1 by the amount alpha. |
static <T> double |
magnitude(PVector4D<T> v0) |
Calculate the magnitude of the vector
v0. |
static <T> double |
magnitudeSquared(PVector4D<T> v0) |
Calculate the squared magnitude of the vector
v0. |
static <T> PVector4D<T> |
negate(PVector4D<T> v) |
Calculate the negation of
v. |
static <T> PVector4D<T> |
normalize(PVector4D<T> v0) |
Normalize the vector
v0. |
static <T> PVector4D<T> |
scale(PVector4D<T> v0,
double r) |
Scale
v0 by r. |
static <T> PVector4D<T> |
subtract(PVector4D<T> v0,
PVector4D<T> v1) |
Subtract
v1 from v0. |
static <A> PVector4D<A> |
toParameterized(Vector4D v) |
|
static <A> Vector4D |
toUnparameterized(PVector4D<A> v) |
|
static <T> PVector4D<T> |
zero() |
The zero vector.
|
public static <T> PVector4D<T> absolute(PVector4D<T> v0)
v0.T - A phantom type parameter
* @param v0 The vector(abs v0.x, abs v0.y, abs v0.z, abs v0.w) public static <T> PVector4D<T> add(PVector4D<T> v0, PVector4D<T> v1)
v0 to v1.T - A phantom type parameter
* @param v0 The left vectorv1 - The right vector(v0.x + v1.x, v0.y + v0.y, v0.z + v1.z, v0.w + v1.w) public static <T> PVector4D<T> addScaled(PVector4D<T> v0, PVector4D<T> v1, double r)
v0 to v1 * r.T - A phantom type parameter
* @param v0 The left vectorv1 - The right vectorr - The scaling value(v0.x + (v1.x * r), v0.y + (v0.y * r), v0.z + (v1.z * r), v0.w + (v1.w * r)) public static <T> PVector4D<T> clamp(PVector4D<T> v, PVector4D<T> v_min, PVector4D<T> v_max)
v by v_min and v_max.T - A phantom type parameter
* @param v The source vectorv_min - The minimum vectorv_max - The maximum vector(max(min(v.x, v_max.x()), v_min.x()),
max(min(v.y, v_max.y()), v_min.y()),
max(min(v.z, v_max.z()), v_min.z()),
max(min(v.w, v_max.w()), v_min.w())) public static <T> double distance(PVector4D<T> v0, PVector4D<T> v1)
v0 and v1.T - A phantom type parameter
* @param v0 The left vectorv1 - The right vectorv0 and v1.public static <T> double dotProduct(PVector4D<T> v0, PVector4D<T> v1)
v0 and v1.T - A phantom type parameter
* @param v0 The left vectorv1 - The right vectorpublic static <T> PVector4D<T> interpolateLinear(PVector4D<T> v0, PVector4D<T> v1, double alpha)
Linearly interpolate between v0 and v1 by the amount alpha.
The alpha parameter controls the degree of interpolation, such that:
interpolateLinear(v0, v1, 0.0) = v0interpolateLinear(v0, v1, 1.0) = v1T - A phantom type parameter
* @return ((1 - alpha) * v0) + (alpha * v1)v0 - The left input vectorv1 - The right input vectoralpha - The interpolation value in the range [0, 1]public static <T> PVector4D<T> interpolateBilinear(PVector4D<T> x0y0, PVector4D<T> x1y0, PVector4D<T> x0y1, PVector4D<T> x1y1, double px, double py)
Bilinearly interpolate between x0y0, x1y0, x0y1, x1y1.
The px and py parameters control the degree of interpolation, such that:
interpolateBilinear(x0y0, x1y0, x0y1, x1y1, 0.0, 0.0) = x0y0interpolateBilinear(x0y0, x1y0, x0y1, x1y1, 1.0, 0.0) = x1y0interpolateBilinear(x0y0, x1y0, x0y1, x1y1, 0.0, 1.0) = x0y1interpolateBilinear(x0y0, x1y0, x0y1, x1y1, 1.0, 1.0) = x1y1T - A phantom type parameter
* @return The bilinearly interpolated valuex0y0 - The top left input vectorx1y0 - The top right input vectorx0y1 - The bottom left input vectorx1y1 - The bottom right input vectorpx - The X interpolation value in the range [0, 1]py - The Y interpolation value in the range [0, 1]public static <T> double magnitudeSquared(PVector4D<T> v0)
v0.T - A phantom type parameter
* @param v0 The vectorpublic static <T> double magnitude(PVector4D<T> v0)
v0.T - A phantom type parameter
* @param v0 The vectorpublic static <T> PVector4D<T> negate(PVector4D<T> v)
v.T - A phantom type parameter
* @param v The vector(-v.x, -v.y, -v.z, -v.w) public static <T> PVector4D<T> normalize(PVector4D<T> v0)
Normalize the vector v0.
If the magnitude of the vector is zero, the function returns v0.
T - A phantom type parameter
* @param v0 The vectorv0public static <T> PVector4D<T> scale(PVector4D<T> v0, double r)
v0 by r.T - A phantom type parameter
* @param v0 The left vectorr - The scaling value(v0.x * r, v0.y * r, v0.z * r, v0.w * r) public static <T> PVector4D<T> subtract(PVector4D<T> v0, PVector4D<T> v1)
v1 from v0.T - A phantom type parameter
* @param v0 The left vectorv1 - The right vector(v0.x - v1.x, v0.y - v0.y, v0.z - v1.z, v0.w - v1.w) public static <T> PVector4D<T> zero()
T - A phantom type parameter(0, 0, 0, 0) public static <A> Vector4D toUnparameterized(PVector4D<A> v)
A - A phantom type parameter (possibly representing a coordinate system)v - The input vectorm but without type parametersCopyright © 2017 <code@io7m.com> http://io7m.com