Class Vectors2I
java.lang.Object
com.io7m.jtensors.core.unparameterized.vectors.Vectors2I
Functions over Vector2I 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 Vector2ICalculate the absolute ofv0.static Vector2IAddv0tov1.static Vector2IAddv0tov1 * r.static doubleCalculate the angle between the vectorsv0andv1in radians.static Vector2IClamp the values invbyv_minandv_max.static longCalculate the distance betweenv0andv1.static longdotProduct(Vector2I v0, Vector2I v1) Calculate the scalar product of the vectorsv0andv1.static Vector2IinterpolateBilinear(Vector2I x0y0, Vector2I x1y0, Vector2I x0y1, Vector2I x1y1, double px, double py) Bilinearly interpolate betweenx0y0,x1y0,x0y1,x1y1.static Vector2IinterpolateLinear(Vector2I v0, Vector2I v1, double alpha) Linearly interpolate betweenv0andv1by the amountalpha.static doubleCalculate the magnitude of the vectorv0.static longCalculate the squared magnitude of the vectorv0.static Vector2IMultiplyv0byv1.static Vector2ICalculate the negation ofv.static Vector2IScalev0byr.static Vector2ISubtractv1fromv0.static Vector2Izero()The zero vector.
-
Method Details
-
absolute
Calculate the absolute ofv0.- Returns:
(abs v0.x, abs v0.y)* @param v0 The vector
-
add
Addv0tov1.- Parameters:
v1- The right vector- Returns:
(v0.x + v1.x, v0.y + v1.y)* @param v0 The left vector
-
multiply
Multiplyv0byv1.- Parameters:
v1- The right vector- Returns:
(v0.x * v1.x, v0.y * v1.y)* @param v0 The left vector- Since:
- 10.0.0
-
addScaled
Addv0tov1 * r.- Parameters:
v1- The right vectorr- The scaling value- Returns:
(v0.x + (v1.x * r), v0.y + (v1.y * r))* @param v0 The left vector
-
angle
Calculate the angle between the vectorsv0andv1in radians.- Parameters:
v0- The left input vectorv1- The right input vector * @return The angle between the two vectors, in radians.
-
clamp
Clamp the values invbyv_minandv_max.- 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()))* @param v The source vector
-
distance
Calculate the distance betweenv0andv1.- Parameters:
v1- The right vector- Returns:
- The distance between
v0andv1. * @param v0 The left vector
-
dotProduct
Calculate the scalar product of the vectorsv0andv1. * @param v0 The left vector- Parameters:
v1- The right vector- Returns:
- The scalar product of the two vectors
-
interpolateLinear
Linearly interpolate between
v0andv1by the amountalpha.The
alphaparameter controls the degree of interpolation, such that:interpolateLinear(v0, v1, 0.0) = v0interpolateLinear(v0, v1, 1.0) = v1
- Parameters:
v0- The left input vectorv1- The right input vectoralpha- The interpolation value in the range[0, 1]* @return((1 - alpha) * v0) + (alpha * v1)
-
interpolateBilinear
public static Vector2I interpolateBilinear(Vector2I x0y0, Vector2I x1y0, Vector2I x0y1, Vector2I x1y1, double px, double py) Bilinearly interpolate between
x0y0,x1y0,x0y1,x1y1.The
pxandpyparameters 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) = x1y1
- 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]* @return The bilinearly interpolated value
-
magnitudeSquared
Calculate the squared magnitude of the vectorv0. * @param v0 The vector- Returns:
- The squared magnitude of the vector
-
magnitude
Calculate the magnitude of the vectorv0. * @param v0 The vector- Returns:
- The magnitude of the vector
-
negate
Calculate the negation ofv.- Returns:
(-v.x, -v.y)* @param v The vector
-
scale
Scalev0byr.- Parameters:
r- The scaling value- Returns:
(v0.x * r, v0.y * r)* @param v0 The left vector
-
subtract
Subtractv1fromv0.- Parameters:
v1- The right vector- Returns:
(v0.x - v1.x, v0.y - v1.y)* @param v0 The left vector
-
zero
The zero vector.- Returns:
(0, 0)
-