Class PVectors2F
java.lang.Object
com.io7m.jtensors.core.parameterized.vectors.PVectors2F
Functions over PVector2F
values.
See "Mathematics for 3D Game Programming and Computer Graphics" 2nd Ed for the derivations of most of the code in this class (ISBN: 1-58450-277-0).
- Since:
- 8.0.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> PVector2F
<T> Calculate the absolute ofv0
.static <T> PVector2F
<T> Addv0
tov1
.static <T> PVector2F
<T> Addv0
tov1 * r
.static <T> double
Calculate the angle between the vectorsv0
andv1
in radians.static <T> PVector2F
<T> Clamp the values inv
byv_min
andv_max
.static <T> double
Calculate the distance betweenv0
andv1
.static <T> double
dotProduct
(PVector2F<T> v0, PVector2F<T> v1) Calculate the scalar product of the vectorsv0
andv1
.static <T> PVector2F
<T> interpolateBilinear
(PVector2F<T> x0y0, PVector2F<T> x1y0, PVector2F<T> x0y1, PVector2F<T> x1y1, double px, double py) Bilinearly interpolate betweenx0y0
,x1y0
,x0y1
,x1y1
.static <T> PVector2F
<T> interpolateLinear
(PVector2F<T> v0, PVector2F<T> v1, double alpha) Linearly interpolate betweenv0
andv1
by the amountalpha
.static <T> double
Calculate the magnitude of the vectorv0
.static <T> double
magnitudeSquared
(PVector2F<T> v0) Calculate the squared magnitude of the vectorv0
.static <T> PVector2F
<T> Multiplyv0
byv1
.static <T> PVector2F
<T> Calculate the negation ofv
.static <T> PVector2F
<T> Normalize the vectorv0
.static <T> PVector2F
<T> Scalev0
byr
.static <T> PVector2F
<T> Subtractv1
fromv0
.static <A> PVector2F
<A> static <A> Vector2F
toUnparameterized
(PVector2F<A> v) static <T> PVector2F
<T> zero()
The zero vector.
-
Method Details
-
absolute
Calculate the absolute ofv0
.- Type Parameters:
T
- A phantom type parameter * @param v0 The vector- Returns:
(abs v0.x, abs v0.y)
-
add
Addv0
tov1
.- Type Parameters:
T
- A phantom type parameter * @param v0 The left vector- Parameters:
v1
- The right vector- Returns:
(v0.x + v1.x, v0.y + v1.y)
-
multiply
Multiplyv0
byv1
.- Type Parameters:
T
- A phantom type parameter * @param v0 The left vector- Parameters:
v1
- The right vector- Returns:
(v0.x * v1.x, v0.y * v1.y)
- Since:
- 10.0.0
-
addScaled
Addv0
tov1 * r
.- Type Parameters:
T
- A phantom type parameter * @param v0 The left vector- Parameters:
v1
- The right vectorr
- The scaling value- Returns:
(v0.x + (v1.x * r), v0.y + (v1.y * r))
-
angle
Calculate the angle between the vectorsv0
andv1
in radians.- Type Parameters:
T
- A phantom type parameter * @return The angle between the two vectors, in radians.- Parameters:
v0
- The left input vectorv1
- The right input vector
-
clamp
Clamp the values inv
byv_min
andv_max
.- Type Parameters:
T
- A phantom type parameter * @param v The source vector- Parameters:
v_min
- The minimum vectorv_max
- The maximum vector- Returns:
(max(min(v.x, v_max.x()), v_min.x()), max(min(v.y, v_max.y()), v_min.y()))
-
distance
Calculate the distance betweenv0
andv1
.- Type Parameters:
T
- A phantom type parameter * @param v0 The left vector- Parameters:
v1
- The right vector- Returns:
- The distance between
v0
andv1
.
-
dotProduct
Calculate the scalar product of the vectorsv0
andv1
.- Type Parameters:
T
- A phantom type parameter * @param v0 The left vector- Parameters:
v1
- The right vector- Returns:
- The scalar product of the two vectors
-
interpolateLinear
Linearly interpolate between
v0
andv1
by the amountalpha
.The
alpha
parameter controls the degree of interpolation, such that:interpolateLinear(v0, v1, 0.0) = v0
interpolateLinear(v0, v1, 1.0) = v1
- Type Parameters:
T
- A phantom type parameter * @return((1 - alpha) * v0) + (alpha * v1)
- Parameters:
v0
- The left input vectorv1
- The right input vectoralpha
- The interpolation value in the range[0, 1]
-
interpolateBilinear
public static <T> PVector2F<T> interpolateBilinear(PVector2F<T> x0y0, PVector2F<T> x1y0, PVector2F<T> x0y1, PVector2F<T> x1y1, double px, double py) Bilinearly interpolate between
x0y0
,x1y0
,x0y1
,x1y1
.The
px
andpy
parameters control the degree of interpolation, such that:interpolateBilinear(x0y0, x1y0, x0y1, x1y1, 0.0, 0.0) = x0y0
interpolateBilinear(x0y0, x1y0, x0y1, x1y1, 1.0, 0.0) = x1y0
interpolateBilinear(x0y0, x1y0, x0y1, x1y1, 0.0, 1.0) = x0y1
interpolateBilinear(x0y0, x1y0, x0y1, x1y1, 1.0, 1.0) = x1y1
- Type Parameters:
T
- A phantom type parameter * @return The bilinearly interpolated value- Parameters:
x0y0
- 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]
-
magnitudeSquared
Calculate the squared magnitude of the vectorv0
.- Type Parameters:
T
- A phantom type parameter * @param v0 The vector- Returns:
- The squared magnitude of the vector
-
magnitude
Calculate the magnitude of the vectorv0
.- Type Parameters:
T
- A phantom type parameter * @param v0 The vector- Returns:
- The magnitude of the vector
-
negate
Calculate the negation ofv
.- Type Parameters:
T
- A phantom type parameter * @param v The vector- Returns:
(-v.x, -v.y)
-
normalize
Normalize the vector
v0
.If the magnitude of the vector is zero, the function returns
v0
.- Type Parameters:
T
- A phantom type parameter * @param v0 The vector- Returns:
- A normalized copy of
v0
-
scale
Scalev0
byr
.- Type Parameters:
T
- A phantom type parameter * @param v0 The left vector- Parameters:
r
- The scaling value- Returns:
(v0.x * r, v0.y * r)
-
subtract
Subtractv1
fromv0
.- Type Parameters:
T
- A phantom type parameter * @param v0 The left vector- Parameters:
v1
- The right vector- Returns:
(v0.x - v1.x, v0.y - v1.y)
-
zero
The zero vector.- Type Parameters:
T
- A phantom type parameter- Returns:
(0, 0)
-
toUnparameterized
- Type Parameters:
A
- A phantom type parameter (possibly representing a coordinate system)- Parameters:
v
- The input vector- Returns:
- A vector equal to
m
but without type parameters
-
toParameterized
- Type Parameters:
A
- A phantom type parameter (possibly representing a coordinate system)- Parameters:
v
- The input vector- Returns:
- A vector equal to
v
with type parameters
-