Set this
vector's components to their respective absolute values.
Compute the absolute values of the individual components of this
and store the result in dest
.
Vector3f.add(float x,
float y,
float z)
Increment the components of this vector by the given values.
Add the supplied vector to this one.
Vector3fc.add(float x,
float y,
float z,
Vector3f dest)
Increment the components of this vector by the given values and store the result in dest
.
Add the supplied vector to this one and store the result in dest
.
Set each component of this vector to the smallest (closest to negative
infinity) float
value that is greater than or equal to that
component and is equal to a mathematical integer.
Compute for each component of this vector the smallest (closest to negative
infinity) float
value that is greater than or equal to that
component and is equal to a mathematical integer and store the result in
dest
.
Vector3f.cross(float x,
float y,
float z)
Set this vector to be the cross product of itself and (x, y, z)
.
Set this vector to be the cross product of itself and v
.
Compute the cross product of this vector and (x, y, z)
and store the result in dest
.
Compute the cross product of this vector and v
and store the result in dest
.
Vector3f.div(float scalar)
Divide all components of this
Vector3f
by the given scalar
value.
Vector3f.div(float x,
float y,
float z)
Divide the components of this Vector3f by the given scalar values and store the result in this
.
Divide this Vector3f component-wise by another Vector3fc.
Vector3fc.div(float x,
float y,
float z,
Vector3f dest)
Divide the components of this Vector3f by the given scalar values and store the result in dest
.
Divide all components of this
Vector3f
by the given scalar
value and store the result in
dest
.
Divide this Vector3f component-wise by another Vector3f and store the result in dest
.
Find the point on the given line segment which is closest to the specified point (pX, pY, pZ)
, and store the result in result
.
Find the point on the given plane which is closest to the specified point (pX, pY, pZ)
and store the result in result
.
Intersectionf.findClosestPointOnRectangle(float aX,
float aY,
float aZ,
float bX,
float bY,
float bZ,
float cX,
float cY,
float cZ,
float pX,
float pY,
float pZ,
Vector3f res)
Find the point on a given rectangle, specified via three of its corners, which is closest to the specified point
(pX, pY, pZ)
and store the result into res
.
Set each component of this vector to the largest (closest to positive
infinity) float
value that is less than or equal to that
component and is equal to a mathematical integer.
Compute for each component of this vector the largest (closest to positive
infinity) float
value that is less than or equal to that
component and is equal to a mathematical integer and store the result in
dest
.
Add the component-wise multiplication of a * b
to this vector.
Add the component-wise multiplication of a * b
to this vector.
Add the component-wise multiplication of a * b
to this vector
and store the result in dest
.
Add the component-wise multiplication of a * b
to this vector
and store the result in dest
.
Compute the corner coordinates of the frustum defined by this
matrix, which
can be a projection matrix or a combined modelview-projection matrix, and store the result
in the given point
.
Obtain the direction of a ray starting at the center of the coordinate system and going
through the near frustum plane.
Set the components of the given vector dest
to those of this
vector.
Set the components of the given vector dest
to those of this
vector.
Get the column at the given column
index, starting with 0
.
Get the first three components of the column at the given column
index, starting with 0
.
Get the column at the given column
index, starting with 0
.
Extract the Euler angles from the rotation represented by this
matrix and store the extracted Euler angles in dest
.
Extract the Euler angles from the rotation represented by the upper left 3x3 submatrix of this
and store the extracted Euler angles in dest
.
Extract the Euler angles from the rotation represented by the left 3x3 submatrix of this
and store the extracted Euler angles in dest
.
Get the euler angles in radians in rotation sequence XYZ
of this quaternion and store them in the
provided parameter eulerAngles
.
Get the euler angles in radians in rotation sequence YXZ
of this quaternion and store them in the
provided parameter eulerAngles
.
Get the euler angles in radians in rotation sequence ZXY
of this quaternion and store them in the
provided parameter eulerAngles
.
Extract the Euler angles from the rotation represented by this
matrix and store the extracted Euler angles in dest
.
Extract the Euler angles from the rotation represented by the upper left 3x3 submatrix of this
and store the extracted Euler angles in dest
.
Extract the Euler angles from the rotation represented by the left 3x3 submatrix of this
and store the extracted Euler angles in dest
.
Get the euler angles in radians in rotation sequence ZYX
of this quaternion and store them in the
provided parameter eulerAngles
.
Get the row at the given row
index, starting with 0
.
Get the first three components of the row at the given row
index, starting with 0
.
Get the scaling factors of this
matrix for the three base axes.
Get the scaling factors of this
matrix for the three base axes.
Get the scaling factors of this
matrix for the three base axes.
Get only the translation components (m30, m31, m32)
of this matrix and store them in the given vector xyz
.
Get only the translation components (m30, m31, m32)
of this matrix and store them in the given vector xyz
.
Vector3f.half(float x,
float y,
float z)
Compute the half vector between this and the vector (x, y, z)
.
Compute the half vector between this and the other vector.
Compute the half vector between this and the vector (x, y, z)
and store the result in dest
.
Compute the half vector between this and the other vector and store the result in dest
.
Compute a hermite interpolation between this
vector with its
associated tangent t0
and the given vector v
with its tangent t1
and store the result in
dest
.
Interpolationf.interpolateTriangle(float v0X,
float v0Y,
float f0X,
float f0Y,
float f0Z,
float v1X,
float v1Y,
float f1X,
float f1Y,
float f1Z,
float v2X,
float v2Y,
float f2X,
float f2Y,
float f2Z,
float x,
float y,
Vector3f dest)
Bilinearly interpolate the three-dimensional vector f over the given triangle and store the result in dest
.
Compute the interpolation factors (t0, t1, t2)
in order to interpolate an arbitrary value over a given
triangle at the given point (x, y)
.
Linearly interpolate this
and other
using the given interpolation factor t
and store the result in this
.
Linearly interpolate this
and other
using the given interpolation factor t
and store the result in dest
.
Set the components of this vector to be the component-wise maximum of this and the other vector.
Set the components of dest
to be the component-wise maximum of this and the other vector.
Set the components of this vector to be the component-wise minimum of this and the other vector.
Set the components of dest
to be the component-wise minimum of this and the other vector.
Multiply the given matrix mat
with this
and store the
result in dest
.
Vector3f.mul(float scalar)
Multiply all components of this
Vector3f
by the given scalar
value.
Vector3f.mul(float x,
float y,
float z)
Multiply the components of this Vector3f by the given scalar values and store the result in this
.
Multiply the given matrix with this Vector3f and store the result in this
.
Multiply the given matrix with this Vector3f and store the result in this
.
Multiply the given matrix with this Vector3f and store the result in this
.
Multiply this Vector3f component-wise by another Vector3fc.
Vector3fc.mul(float x,
float y,
float z,
Vector3f dest)
Multiply the components of this Vector3f by the given scalar values and store the result in dest
.
Multiply all components of this
Vector3f
by the given scalar
value and store the result in
dest
.
Multiply the given matrix with this Vector3f and store the result in dest
.
Multiply the given matrix with this Vector3f and store the result in dest
.
Multiply the given matrix mat
with this
by assuming a
third row in the matrix of (0, 0, 1)
and store the result in dest
.
Multiply this Vector3f component-wise by another Vector3f and store the result in dest
.
Add the component-wise multiplication of this * a
to b
and store the result in this
.
Add the component-wise multiplication of this * a
to b
and store the result in this
.
Add the component-wise multiplication of this * a
to b
and store the result in dest
.
Add the component-wise multiplication of this * a
to b
and store the result in dest
.
Multiply the given 4x4 matrix mat
with this
.
Multiply the given 4x4 matrix mat
with this
.
Multiply the given 4x3 matrix mat
with this
.
Multiply the given 4x4 matrix mat
with this
and store the
result in dest
.
Multiply the given 4x4 matrix mat
with this
and store the
result in dest
.
Multiply the given 4x3 matrix mat
with this
and store the
result in dest
.
Multiply the given 4x4 matrix mat
with this
.
Multiply the given 4x3 matrix mat
with this
.
Multiply the given 4x4 matrix mat
with this
and store the
result in dest
.
Multiply the given 4x3 matrix mat
with this
and store the
result in dest
.
Multiply the given matrix mat
with this Vector3f, perform perspective division.
Multiply the given matrix mat
with this Vector3f, perform perspective division
and store the result in dest
.
Multiply the given matrix mat
with this Vector3f, perform perspective division
and store the result in dest
.
Multiply the given matrix mat
with this Vector4f, perform perspective division
and store the (x, y, z)
result in dest
.
Multiply the transpose of the given matrix with this Vector3f store the result in this
.
Multiply the transpose of the given matrix with this Vector3f and store the result in dest
.
Multiply the transpose of the given 4x4 matrix mat
with this
.
Multiply the transpose of the given 4x4 matrix mat
with this
and store the
result in dest
.
Multiply the transpose of the given 4x4 matrix mat
with this
.
Multiply the transpose of the given 4x4 matrix mat
with this
and store the
result in dest
.
Negate this vector and store the result in dest
.
Scale this vector to have the given length.
Scale this vector to have the given length and store the result in dest
.
Normalize this vector and store the result in dest
.
Obtain the direction of +X
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +X
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +X
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +X
before the rotation transformation represented by this
normalized quaternion is applied.
Obtain the direction of +Y
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Y
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Y
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Y
before the rotation transformation represented by this
normalized quaternion is applied.
Obtain the direction of +Z
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Z
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Z
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Z
before the rotation transformation represented by this
normalized quaternion is applied.
Obtain the position that gets transformed to the origin by this
matrix.
Obtain the position that gets transformed to the origin by this
matrix.
Obtain the position that gets transformed to the origin by
this
affine
matrix.
Transform this
vector so that it is orthogonal to the given vector v
and normalize the result.
Transform this
vector so that it is orthogonal to the given vector v
, normalize the result and store it into dest
.
Transform this
vector so that it is orthogonal to the given unit vector v
and normalize the result.
Transform this
vector so that it is orthogonal to the given unit vector v
, normalize the result and store it into dest
.
Compute the eye/origin of the inverse of the perspective frustum transformation defined by this
matrix,
which can be the inverse of a projection matrix or the inverse of a combined modelview-projection matrix, and store the result
in the given dest
.
Compute the eye/origin of the inverse of the perspective frustum transformation defined by this
matrix,
which can be the inverse of a projection matrix or the inverse of a combined modelview-projection matrix, and store the result
in the given dest
.
Compute the eye/origin of the perspective frustum transformation defined by this
matrix,
which can be a projection matrix or a combined modelview-projection matrix, and store the result
in the given origin
.
Compute the eye/origin of the perspective frustum transformation defined by this
matrix,
which can be a projection matrix or a combined modelview-projection matrix, and store the result
in the given origin
.
Obtain the direction of +X
before the transformation represented by this
matrix is applied.
Obtain the direction of +X
before the transformation represented by this
matrix is applied.
Obtain the direction of +X
before the transformation represented by this
matrix is applied.
Obtain the direction of +X
before the rotation transformation represented by this
quaternion is applied.
Obtain the direction of +Y
before the transformation represented by this
matrix is applied.
Obtain the direction of +Y
before the transformation represented by this
matrix is applied.
Obtain the direction of +Y
before the transformation represented by this
matrix is applied.
Obtain the direction of +Y
before the rotation transformation represented by this
quaternion is applied.
Obtain the direction of +Z
before the transformation represented by this
matrix is applied.
Obtain the direction of +Z
before the transformation represented by this
matrix is applied.
Obtain the direction of +Z
before the transformation represented by this
matrix is applied.
Obtain the direction of +Z
before the rotation transformation represented by this
quaternion is applied.
Matrix4f.project(float x,
float y,
float z,
int[] viewport,
Vector3f winCoordsDest)
Matrix4fc.project(float x,
float y,
float z,
int[] viewport,
Vector3f winCoordsDest)
Project the given (x, y, z)
position via this
matrix using the specified viewport
and store the resulting window coordinates in winCoordsDest
.
Project the given position
via this
matrix using the specified viewport
and store the resulting window coordinates in winCoordsDest
.
Vector3f.reflect(float x,
float y,
float z)
Reflect this vector about the given normal vector.
Reflect this vector about the given normal
vector.
Reflect this vector about the given normal vector and store the result in dest
.
Reflect this vector about the given normal
vector and store the result in dest
.
Rotate this vector by the given quaternion quat
and store the result in this
.
Rotate this vector by the given quaternion quat
and store the result in dest
.
Vector3f.rotateAxis(float angle,
float x,
float y,
float z)
Rotate this vector the specified radians around the given rotation axis.
Rotate this vector the specified radians around the given rotation axis and store the result
into dest
.
Rotate this vector the specified radians around the X axis.
Rotate this vector the specified radians around the X axis and store the result
into dest
.
Rotate this vector the specified radians around the Y axis.
Rotate this vector the specified radians around the Y axis and store the result
into dest
.
Rotate this vector the specified radians around the Z axis.
Rotate this vector the specified radians around the Z axis and store the result
into dest
.
Set each component of this vector to the closest float that is equal to
a mathematical integer, with ties rounding to positive infinity.
Compute for each component of this vector the closest float that is equal to
a mathematical integer, with ties rounding to positive infinity and store
the result in dest
.
Set the x, y, and z components to the supplied value.
Vector3f.set(double x,
double y,
double z)
Set the x, y and z components to the supplied values.
Set the x, y, and z components to the supplied value.
Vector3f.set(float[] xyz)
Set the three components of this vector to the first three elements of the given array.
Vector3f.set(float x,
float y,
float z)
Set the x, y and z components to the supplied values.
Read this vector from the supplied
ByteBuffer
starting at the specified
absolute buffer position/index.
Read this vector from the supplied
FloatBuffer
starting at the specified
absolute buffer position/index.
Set the first two components from the given v
and the z component from the given z
Set the first two components from the given v
and the z component from the given z
Set the first two components from the given v
and the z component from the given z
Set the x, y and z components to match the supplied vector.
Set the x, y and z components to match the supplied vector.
Set the x, y and z components to match the supplied vector.
Set the value of the specified component of this vector.
Set the values of this vector by reading 3 float values from off-heap memory,
starting at the given address.
Compute a smooth-step (i.e.
Vector3f.sub(float x,
float y,
float z)
Decrement the components of this vector by the given values.
Subtract the supplied vector from this one and store the result in this
.
Vector3fc.sub(float x,
float y,
float z,
Vector3f dest)
Decrement the components of this vector by the given values and store the result in dest
.
Subtract the supplied vector from this one and store the result in dest
.
Transform the given vector by the rotation transformation described by this
AxisAngle4d
.
Transform the given vector by the rotation transformation described by this
AxisAngle4d
and store the result in
dest
.
Transform the given vector by the rotation transformation described by this
AxisAngle4f
.
Transform the given vector by the rotation transformation described by this
AxisAngle4f
and store the result in
dest
.
Transform the given vector by this matrix.
Transform the given vector by this matrix and store the result in dest
.
Transform the vector (x, y, z)
by this matrix and store the result in dest
.
Transform the given vector by this matrix.
Transform the given vector by this matrix and store the result in dest
.
Transform/multiply the given vector (x, y, z)
by this matrix and store the result in dest
.
Transform/multiply the given vector by this matrix by assuming a third row in this matrix of (0, 0, 1)
and store the result in that vector.
Transform/multiply the given vector by this matrix by assuming a third row in this matrix of (0, 0, 1)
and store the result in dest
.
Transform/multiply the given vector (x, y, z)
by this matrix and store the result in dest
.
Transform/multiply the given vector by this matrix by assuming a third row in this matrix of (0, 0, 1)
and store the result in that vector.
Transform/multiply the given vector by this matrix and store the result in dest
.
Transform the given vector (x, y, z)
by this quaternion and store the result in dest
.
Transform the given vector by this quaternion.
Transform the given vector by this quaternion and store the result in dest
.
Transform the given vector (x, y, z)
by this quaternion
and store the result in dest
.
Transform the given vector by this quaternion.
Transform the given vector by this quaternion
and store the result in dest
.
Transform/multiply the 3D-vector (x, y, z)
, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector (x, y, z)
, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform the given vector (x, y, z)
by the inverse of
this quaternion and store the result in dest
.
Transform the given vector by the inverse of this quaternion.
Transform the given vector by the inverse of this quaternion and store the result in dest
.
Transform the given vector (x, y, z)
by the inverse of this quaternion
and store the result in dest
.
Transform the given vector by the inverse of this quaternion.
Transform the given vector by the inverse of quaternion
and store the result in dest
.
Transform the given vector (x, y, z)
by the inverse of
this unit quaternion and store the result in dest
.
Transform the given vector by the inverse of this unit quaternion.
Transform the given vector by the inverse of this unit quaternion and store the result in dest
.
Transform the given vector (x, y, z)
by the inverse of this unit quaternion
and store the result in dest
.
Transform the given vector by the inverse of this unit quaternion.
Transform the given vector by the inverse of this unit quaternion
and store the result in dest
.
Transform/multiply the 3D-vector (x, y, z)
, as if it was a 4D-vector with w=1, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=1, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=1, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=1, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=1, by
this matrix and store the result in dest
.
Transform the vector (1, 0, 0)
by this quaternion.
Transform the vector (1, 0, 0)
by this quaternion.
Transform the vector (0, 1, 0)
by this quaternion.
Transform the vector (0, 1, 0)
by this quaternion.
Transform the vector (0, 0, 1)
by this quaternion.
Transform the vector (0, 0, 1)
by this quaternion.
Transform/multiply the vector (x, y, z, w)
by this matrix, perform perspective divide and store
(x, y, z)
of the result in dest
.
Transform/multiply the vector (x, y, z)
by this matrix, perform perspective divide and store the result in dest
.
Transform/multiply the given vector by this matrix, perform perspective divide and store the result in that vector.
Transform/multiply the given vector by this matrix, perform perspective divide and store the result in dest
.
Transform/multiply the given vector by this matrix, perform perspective divide and store the result in dest
.
Transform the vector (x, y, z)
by the transpose of this matrix and store the result in dest
.
Transform the given vector by the transpose of this matrix.
Transform the given vector by the transpose of this matrix and store the result in dest
.
Transform the given vector (x, y, z)
by this unit quaternion and store the result in dest
.
Transform the given vector by this unit quaternion.
Transform the given vector by this unit quaternion and store the result in dest
.
Transform the given vector (x, y, z)
by this unit quaternion
and store the result in dest
.
Transform the given vector by this unit quaternion.
Transform the given vector by this unit quaternion
and store the result in dest
.
Transform the vector (1, 0, 0)
by this unit quaternion.
Transform the vector (1, 0, 0)
by this unit quaternion.
Transform the vector (0, 1, 0)
by this unit quaternion.
Transform the vector (0, 1, 0)
by this unit quaternion.
Transform the vector (0, 0, 1)
by this unit quaternion.
Transform the vector (0, 0, 1)
by this unit quaternion.
Matrix4f.unproject(float winX,
float winY,
float winZ,
int[] viewport,
Vector3f dest)
Matrix4fc.unproject(float winX,
float winY,
float winZ,
int[] viewport,
Vector3f dest)
Unproject the given window coordinates (winX, winY, winZ)
by this
matrix using the specified viewport.
Unproject the given window coordinates winCoords
by this
matrix using the specified viewport.
Unproject the given window coordinates (winX, winY, winZ)
by this
matrix using the specified viewport.
Unproject the given window coordinates winCoords
by this
matrix using the specified viewport.
Set all components to zero.
Compute the absolute values of the individual components of this
and store the result in dest
.
Vector3fc.add(float x,
float y,
float z,
Vector3f dest)
Increment the components of this vector by the given values and store the result in dest
.
Add the supplied vector to this one and store the result in dest
.
Compute the extents of the coordinate system before this
affine
transformation was applied
and store the resulting corner coordinates in
corner
and the span vectors in
xDir
,
yDir
and
zDir
.
static void
Calculate the surface bitangent for the three supplied vertices and UV coordinates and store the result in dest
.
Compute for each component of this vector the smallest (closest to negative
infinity) float
value that is greater than or equal to that
component and is equal to a mathematical integer and store the result in
dest
.
Compute the cross product of this vector and (x, y, z)
and store the result in dest
.
Compute the cross product of this vector and v
and store the result in dest
.
Obtain the normalized direction of a ray starting at the center of the coordinate system and going
through the near frustum plane.
Vector3fc.div(float x,
float y,
float z,
Vector3f dest)
Divide the components of this Vector3f by the given scalar values and store the result in dest
.
Divide all components of this
Vector3f
by the given scalar
value and store the result in
dest
.
Divide this Vector3f component-wise by another Vector3f and store the result in dest
.
Find the point on the given line segment which is closest to the specified point (pX, pY, pZ)
, and store the result in result
.
Find the point on the given plane which is closest to the specified point (pX, pY, pZ)
and store the result in result
.
Intersectionf.findClosestPointOnRectangle(float aX,
float aY,
float aZ,
float bX,
float bY,
float bZ,
float cX,
float cY,
float cZ,
float pX,
float pY,
float pZ,
Vector3f res)
Find the point on a given rectangle, specified via three of its corners, which is closest to the specified point
(pX, pY, pZ)
and store the result into res
.
static int
Intersectionf.findClosestPointOnTriangle(float v0X,
float v0Y,
float v0Z,
float v1X,
float v1Y,
float v1Z,
float v2X,
float v2Y,
float v2Z,
float pX,
float pY,
float pZ,
Vector3f result)
Determine the closest point on the triangle with the given vertices (v0X, v0Y, v0Z)
, (v1X, v1Y, v1Z)
, (v2X, v2Y, v2Z)
between that triangle and the given point (pX, pY, pZ)
and store that point into the given result
.
static int
Determine the closest point on the triangle with the vertices v0
, v1
, v2
between that triangle and the given point p
and store that point into the given result
.
static float
Intersectionf.findClosestPointsLineSegments(float a0X,
float a0Y,
float a0Z,
float a1X,
float a1Y,
float a1Z,
float b0X,
float b0Y,
float b0Z,
float b1X,
float b1Y,
float b1Z,
Vector3f resultA,
Vector3f resultB)
Find the closest points on the two line segments, store the point on the first line segment in resultA
and
the point on the second line segment in resultB
, and return the square distance between both points.
static float
Intersectionf.findClosestPointsLineSegmentTriangle(float aX,
float aY,
float aZ,
float bX,
float bY,
float bZ,
float v0X,
float v0Y,
float v0Z,
float v1X,
float v1Y,
float v1Z,
float v2X,
float v2Y,
float v2Z,
Vector3f lineSegmentResult,
Vector3f triangleResult)
Find the closest points on a line segment and a triangle.
Compute for each component of this vector the largest (closest to positive
infinity) float
value that is less than or equal to that
component and is equal to a mathematical integer and store the result in
dest
.
Add the component-wise multiplication of a * b
to this vector
and store the result in dest
.
Add the component-wise multiplication of a * b
to this vector
and store the result in dest
.
Compute the axis-aligned bounding box of the frustum described by this
matrix and store the minimum corner
coordinates in the given min
and the maximum corner coordinates in the given max
vector.
Compute the axis-aligned bounding box of the frustum described by this
matrix and store the minimum corner
coordinates in the given min
and the maximum corner coordinates in the given max
vector.
Compute the corner coordinates of the frustum defined by this
matrix, which
can be a projection matrix or a combined modelview-projection matrix, and store the result
in the given point
.
Obtain the direction of a ray starting at the center of the coordinate system and going
through the near frustum plane.
Set the components of the given vector dest
to those of this
vector.
Set the components of the given vector dest
to those of this
vector.
Get the column at the given column
index, starting with 0
.
Get the first three components of the column at the given column
index, starting with 0
.
Get the column at the given column
index, starting with 0
.
Extract the Euler angles from the rotation represented by this
matrix and store the extracted Euler angles in dest
.
Extract the Euler angles from the rotation represented by the upper left 3x3 submatrix of this
and store the extracted Euler angles in dest
.
Extract the Euler angles from the rotation represented by the left 3x3 submatrix of this
and store the extracted Euler angles in dest
.
Get the euler angles in radians in rotation sequence XYZ
of this quaternion and store them in the
provided parameter eulerAngles
.
Get the euler angles in radians in rotation sequence YXZ
of this quaternion and store them in the
provided parameter eulerAngles
.
Get the euler angles in radians in rotation sequence ZXY
of this quaternion and store them in the
provided parameter eulerAngles
.
Extract the Euler angles from the rotation represented by this
matrix and store the extracted Euler angles in dest
.
Extract the Euler angles from the rotation represented by the upper left 3x3 submatrix of this
and store the extracted Euler angles in dest
.
Extract the Euler angles from the rotation represented by the left 3x3 submatrix of this
and store the extracted Euler angles in dest
.
Get the euler angles in radians in rotation sequence ZYX
of this quaternion and store them in the
provided parameter eulerAngles
.
Get the row at the given row
index, starting with 0
.
Get the first three components of the row at the given row
index, starting with 0
.
Get the scaling factors of this
matrix for the three base axes.
Get the scaling factors of this
matrix for the three base axes.
Get the scaling factors of this
matrix for the three base axes.
Get only the translation components (m30, m31, m32)
of this matrix and store them in the given vector xyz
.
Get only the translation components (m30, m31, m32)
of this matrix and store them in the given vector xyz
.
Compute the half vector between this and the vector (x, y, z)
and store the result in dest
.
Compute the half vector between this and the other vector and store the result in dest
.
Compute a hermite interpolation between this
vector with its
associated tangent t0
and the given vector v
with its tangent t1
and store the result in
dest
.
Interpolationf.interpolateTriangle(float v0X,
float v0Y,
float f0X,
float f0Y,
float f0Z,
float v1X,
float v1Y,
float f1X,
float f1Y,
float f1Z,
float v2X,
float v2Y,
float f2X,
float f2Y,
float f2Z,
float x,
float y,
Vector3f dest)
Bilinearly interpolate the three-dimensional vector f over the given triangle and store the result in dest
.
Compute the interpolation factors (t0, t1, t2)
in order to interpolate an arbitrary value over a given
triangle at the given point (x, y)
.
static boolean
Intersectionf.intersectCircleCircle(float aX,
float aY,
float radiusSquaredA,
float bX,
float bY,
float radiusSquaredB,
Vector3f intersectionCenterAndHL)
Test whether the one circle with center (aX, aY)
and square radius radiusSquaredA
intersects the other
circle with center (bX, bY)
and square radius radiusSquaredB
, and store the center of the line segment of
intersection in the (x, y)
components of the supplied vector and the half-length of that line segment in the z component.
static boolean
Test whether the one circle with center centerA
and square radius radiusSquaredA
intersects the other
circle with center centerB
and square radius radiusSquaredB
, and store the center of the line segment of
intersection in the (x, y)
components of the supplied vector and the half-length of that line segment in the z component.
static boolean
Intersectionf.intersectLineCircle(float x0,
float y0,
float x1,
float y1,
float centerX,
float centerY,
float radius,
Vector3f intersectionCenterAndHL)
Test whether the line defined by the two points (x0, y0)
and (x1, y1)
intersects the circle with center
(centerX, centerY)
and radius
, and store the center of the line segment of
intersection in the (x, y)
components of the supplied vector and the half-length of that line segment in the z component.
static boolean
Intersectionf.intersectLineCircle(float a,
float b,
float c,
float centerX,
float centerY,
float radius,
Vector3f intersectionCenterAndHL)
Test whether the line with the general line equation a*x + b*y + c = 0 intersects the circle with center
(centerX, centerY)
and radius
, and store the center of the line segment of
intersection in the (x, y)
components of the supplied vector and the half-length of that line segment in the z component.
static boolean
Intersectionf.intersectLineSegmentPlane(float p0X,
float p0Y,
float p0Z,
float p1X,
float p1Y,
float p1Z,
float a,
float b,
float c,
float d,
Vector3f intersectionPoint)
Determine whether the line segment with the end points (p0X, p0Y, p0Z)
and (p1X, p1Y, p1Z)
intersects the plane given as the general plane equation a*x + b*y + c*z + d = 0,
and return the point of intersection.
static boolean
Intersectionf.intersectLineSegmentTriangle(float p0X,
float p0Y,
float p0Z,
float p1X,
float p1Y,
float p1Z,
float v0X,
float v0Y,
float v0Z,
float v1X,
float v1Y,
float v1Z,
float v2X,
float v2Y,
float v2Z,
float epsilon,
Vector3f intersectionPoint)
Determine whether the line segment with the end points (p0X, p0Y, p0Z)
and (p1X, p1Y, p1Z)
intersects the triangle consisting of the three vertices (v0X, v0Y, v0Z)
, (v1X, v1Y, v1Z)
and (v2X, v2Y, v2Z)
,
regardless of the winding order of the triangle or the direction of the line segment between its two end points,
and return the point of intersection.
static boolean
Determine whether the line segment with the end points p0
and p1
intersects the triangle consisting of the three vertices (v0X, v0Y, v0Z)
, (v1X, v1Y, v1Z)
and (v2X, v2Y, v2Z)
,
regardless of the winding order of the triangle or the direction of the line segment between its two end points,
and return the point of intersection.
static int
Intersectionf.intersectSphereTriangle(float sX,
float sY,
float sZ,
float sR,
float v0X,
float v0Y,
float v0Z,
float v1X,
float v1Y,
float v1Z,
float v2X,
float v2Y,
float v2Z,
Vector3f result)
Test whether the given sphere with center (sX, sY, sZ)
intersects the triangle given by its three vertices, and if they intersect
store the point of intersection into result
.
Linearly interpolate this
and other
using the given interpolation factor t
and store the result in dest
.
Set the components of dest
to be the component-wise maximum of this and the other vector.
Set the components of dest
to be the component-wise minimum of this and the other vector.
Multiply the given matrix mat
with this
and store the
result in dest
.
Vector3fc.mul(float x,
float y,
float z,
Vector3f dest)
Multiply the components of this Vector3f by the given scalar values and store the result in dest
.
Multiply all components of this
Vector3f
by the given scalar
value and store the result in
dest
.
Multiply the given matrix with this Vector3f and store the result in dest
.
Multiply the given matrix with this Vector3f and store the result in dest
.
Multiply the given matrix mat
with this
by assuming a
third row in the matrix of (0, 0, 1)
and store the result in dest
.
Multiply this Vector3f component-wise by another Vector3f and store the result in dest
.
Add the component-wise multiplication of this * a
to b
and store the result in dest
.
Add the component-wise multiplication of this * a
to b
and store the result in dest
.
Multiply the given 4x4 matrix mat
with this
and store the
result in dest
.
Multiply the given 4x4 matrix mat
with this
and store the
result in dest
.
Multiply the given 4x3 matrix mat
with this
and store the
result in dest
.
Multiply the given 4x4 matrix mat
with this
and store the
result in dest
.
Multiply the given 4x3 matrix mat
with this
and store the
result in dest
.
float
float
Multiply the given 4x4 matrix mat
with this
, store the
result in dest
and return the w component of the resulting 4D vector.
Multiply the given matrix mat
with this Vector3f, perform perspective division
and store the result in dest
.
Multiply the given matrix mat
with this Vector3f, perform perspective division
and store the result in dest
.
Multiply the given matrix mat
with this Vector4f, perform perspective division
and store the (x, y, z)
result in dest
.
Multiply the transpose of the given matrix with this Vector3f and store the result in dest
.
Multiply the transpose of the given 4x4 matrix mat
with this
and store the
result in dest
.
Multiply the transpose of the given 4x4 matrix mat
with this
and store the
result in dest
.
Negate this vector and store the result in dest
.
static void
GeometryUtils.normal(float v0X,
float v0Y,
float v0Z,
float v1X,
float v1Y,
float v1Z,
float v2X,
float v2Y,
float v2Z,
Vector3f dest)
Calculate the normal of a surface defined by points (v1X, v1Y, v1Z)
, (v2X, v2Y, v2Z)
and (v3X, v3Y, v3Z)
and store it in dest
.
static void
Calculate the normal of a surface defined by points v1
, v2
and v3
and store it in dest
.
Scale this vector to have the given length and store the result in dest
.
Normalize this vector and store the result in dest
.
Obtain the direction of +X
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +X
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +X
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +X
before the rotation transformation represented by this
normalized quaternion is applied.
Obtain the direction of +Y
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Y
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Y
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Y
before the rotation transformation represented by this
normalized quaternion is applied.
Obtain the direction of +Z
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Z
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Z
before the transformation represented by this
orthogonal matrix is applied.
Obtain the direction of +Z
before the rotation transformation represented by this
normalized quaternion is applied.
Store the eye/origin of the perspective frustum in the given origin
.
Obtain the position that gets transformed to the origin by this
matrix.
Obtain the position that gets transformed to the origin by this
matrix.
Obtain the position that gets transformed to the origin by
this
affine
matrix.
Transform this
vector so that it is orthogonal to the given vector v
, normalize the result and store it into dest
.
Transform this
vector so that it is orthogonal to the given unit vector v
, normalize the result and store it into dest
.
static void
Compute two arbitrary vectors perpendicular to the given normalized vector (x, y, z)
, and store them in dest1
and dest2
,
respectively.
static void
Compute two arbitrary vectors perpendicular to the given normalized vector v
, and store them in dest1
and dest2
,
respectively.
Compute the eye/origin of the inverse of the perspective frustum transformation defined by this
matrix,
which can be the inverse of a projection matrix or the inverse of a combined modelview-projection matrix, and store the result
in the given dest
.
Compute the eye/origin of the inverse of the perspective frustum transformation defined by this
matrix,
which can be the inverse of a projection matrix or the inverse of a combined modelview-projection matrix, and store the result
in the given dest
.
static void
Create a view and off-center perspective projection matrix from a given eye
position, a given bottom left corner position p
of the near plane rectangle
and the extents of the near plane rectangle along its local x
and y
axes, and store the resulting matrices
in projDest
and viewDest
.
Compute the eye/origin of the perspective frustum transformation defined by this
matrix,
which can be a projection matrix or a combined modelview-projection matrix, and store the result
in the given origin
.
Compute the eye/origin of the perspective frustum transformation defined by this
matrix,
which can be a projection matrix or a combined modelview-projection matrix, and store the result
in the given origin
.
Obtain the direction of +X
before the transformation represented by this
matrix is applied.
Obtain the direction of +X
before the transformation represented by this
matrix is applied.
Obtain the direction of +X
before the transformation represented by this
matrix is applied.
Obtain the direction of +X
before the rotation transformation represented by this
quaternion is applied.
Obtain the direction of +Y
before the transformation represented by this
matrix is applied.
Obtain the direction of +Y
before the transformation represented by this
matrix is applied.
Obtain the direction of +Y
before the transformation represented by this
matrix is applied.
Obtain the direction of +Y
before the rotation transformation represented by this
quaternion is applied.
Obtain the direction of +Z
before the transformation represented by this
matrix is applied.
Obtain the direction of +Z
before the transformation represented by this
matrix is applied.
Obtain the direction of +Z
before the transformation represented by this
matrix is applied.
Obtain the direction of +Z
before the rotation transformation represented by this
quaternion is applied.
Matrix4f.project(float x,
float y,
float z,
int[] viewport,
Vector3f winCoordsDest)
Matrix4fc.project(float x,
float y,
float z,
int[] viewport,
Vector3f winCoordsDest)
Project the given (x, y, z)
position via this
matrix using the specified viewport
and store the resulting window coordinates in winCoordsDest
.
Project the given position
via this
matrix using the specified viewport
and store the resulting window coordinates in winCoordsDest
.
Reflect this vector about the given normal vector and store the result in dest
.
Reflect this vector about the given normal
vector and store the result in dest
.
Rotate this vector by the given quaternion quat
and store the result in dest
.
Rotate this vector the specified radians around the given rotation axis and store the result
into dest
.
Rotate this vector the specified radians around the X axis and store the result
into dest
.
Apply rotation of angles.x
radians about the X axis, followed by a rotation of angles.y
radians about the Y axis and
followed by a rotation of angles.z
radians about the Z axis.
Apply rotation of angles.x
radians about the X axis, followed by a rotation of angles.y
radians about the Y axis and
followed by a rotation of angles.z
radians about the Z axis.
Rotate this vector the specified radians around the Y axis and store the result
into dest
.
Apply rotation of angles.y
radians about the Y axis, followed by a rotation of angles.x
radians about the X axis and
followed by a rotation of angles.z
radians about the Z axis.
Apply rotation of angles.y
radians about the Y axis, followed by a rotation of angles.x
radians about the X axis and
followed by a rotation of angles.z
radians about the Z axis.
Apply rotation of angles.y
radians about the Y axis, followed by a rotation of angles.x
radians about the X axis and
followed by a rotation of angles.z
radians about the Z axis.
Rotate this vector the specified radians around the Z axis and store the result
into dest
.
Apply rotation of angles.z
radians about the Z axis, followed by a rotation of angles.y
radians about the Y axis and
followed by a rotation of angles.x
radians about the X axis.
Apply rotation of angles.z
radians about the Z axis, followed by a rotation of angles.y
radians about the Y axis and
followed by a rotation of angles.x
radians about the X axis.
Apply rotation of angles.z
radians about the Z axis, followed by a rotation of angles.y
radians about the Y axis and
followed by a rotation of angles.x
radians about the X axis.
Compute for each component of this vector the closest float that is equal to
a mathematical integer, with ties rounding to positive infinity and store
the result in dest
.
Compute a smooth-step (i.e.
Vector3fc.sub(float x,
float y,
float z,
Vector3f dest)
Decrement the components of this vector by the given values and store the result in dest
.
Subtract the supplied vector from this one and store the result in dest
.
static void
Calculate the surface tangent for the three supplied vertices and UV coordinates and store the result in dest
.
static void
Calculate the surface tangent and bitangent for the three supplied vertices and UV coordinates and store the result in dest
.
static boolean
Test whether two oriented boxes given via their center position, orientation and half-size, intersect.
Transform the given vector by the rotation transformation described by this
AxisAngle4d
.
Transform the given vector by the rotation transformation described by this
AxisAngle4d
and store the result in
dest
.
Transform the given vector by the rotation transformation described by this
AxisAngle4f
.
Transform the given vector by the rotation transformation described by this
AxisAngle4f
and store the result in
dest
.
Transform the given vector by this matrix.
Transform the given vector by this matrix and store the result in dest
.
Transform the vector (x, y, z)
by this matrix and store the result in dest
.
Transform the given vector by this matrix.
Transform the given vector by this matrix and store the result in dest
.
Transform/multiply the given vector (x, y, z)
by this matrix and store the result in dest
.
Transform/multiply the given vector by this matrix by assuming a third row in this matrix of (0, 0, 1)
and store the result in that vector.
Transform/multiply the given vector by this matrix by assuming a third row in this matrix of (0, 0, 1)
and store the result in dest
.
Transform/multiply the given vector (x, y, z)
by this matrix and store the result in dest
.
Transform/multiply the given vector by this matrix by assuming a third row in this matrix of (0, 0, 1)
and store the result in that vector.
Transform/multiply the given vector by this matrix and store the result in dest
.
Transform the given vector (x, y, z)
by this quaternion and store the result in dest
.
Transform the given vector by this quaternion.
Transform the given vector by this quaternion and store the result in dest
.
Transform the given vector (x, y, z)
by this quaternion
and store the result in dest
.
Transform the given vector by this quaternion.
Transform the given vector by this quaternion
and store the result in dest
.
Transform the axis-aligned box given as the minimum corner
(minX, minY, minZ)
and maximum corner
(maxX, maxY, maxZ)
by
this
affine
matrix and compute the axis-aligned box of the result whose minimum corner is stored in
outMin
and maximum corner stored in
outMax
.
Transform the axis-aligned box given as the minimum corner
min
and maximum corner
max
by
this
affine
matrix and compute the axis-aligned box of the result whose minimum corner is stored in
outMin
and maximum corner stored in
outMax
.
Transform the axis-aligned box given as the minimum corner (minX, minY, minZ)
and maximum corner (maxX, maxY, maxZ)
by this
matrix and compute the axis-aligned box of the result whose minimum corner is stored in outMin
and maximum corner stored in outMax
.
Transform the axis-aligned box given as the minimum corner min
and maximum corner max
by this
matrix and compute the axis-aligned box of the result whose minimum corner is stored in outMin
and maximum corner stored in outMax
.
Transform/multiply the 3D-vector (x, y, z)
, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector (x, y, z)
, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=0, by
this matrix and store the result in dest
.
Transform the given vector (x, y, z)
by the inverse of
this quaternion and store the result in dest
.
Transform the given vector by the inverse of this quaternion.
Transform the given vector by the inverse of this quaternion and store the result in dest
.
Transform the given vector (x, y, z)
by the inverse of this quaternion
and store the result in dest
.
Transform the given vector by the inverse of this quaternion.
Transform the given vector by the inverse of quaternion
and store the result in dest
.
Transform the given vector (x, y, z)
by the inverse of
this unit quaternion and store the result in dest
.
Transform the given vector by the inverse of this unit quaternion.
Transform the given vector by the inverse of this unit quaternion and store the result in dest
.
Transform the given vector (x, y, z)
by the inverse of this unit quaternion
and store the result in dest
.
Transform the given vector by the inverse of this unit quaternion.
Transform the given vector by the inverse of this unit quaternion
and store the result in dest
.
Transform/multiply the 3D-vector (x, y, z)
, as if it was a 4D-vector with w=1, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=1, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=1, by
this matrix and store the result in dest
.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=1, by
this matrix and store the result in that vector.
Transform/multiply the given 3D-vector, as if it was a 4D-vector with w=1, by
this matrix and store the result in dest
.
Transform the vector (1, 0, 0)
by this quaternion.
Transform the vector (1, 0, 0)
by this quaternion.
Transform the vector (0, 1, 0)
by this quaternion.
Transform the vector (0, 1, 0)
by this quaternion.
Transform the vector (0, 0, 1)
by this quaternion.
Transform the vector (0, 0, 1)
by this quaternion.
Transform/multiply the vector (x, y, z, w)
by this matrix, perform perspective divide and store
(x, y, z)
of the result in dest
.
Transform/multiply the vector (x, y, z)
by this matrix, perform perspective divide and store the result in dest
.
Transform/multiply the given vector by this matrix, perform perspective divide and store the result in that vector.
Transform/multiply the given vector by this matrix, perform perspective divide and store the result in dest
.
Transform/multiply the given vector by this matrix, perform perspective divide and store the result in dest
.
Transform the vector (x, y, z)
by the transpose of this matrix and store the result in dest
.
Transform the given vector by the transpose of this matrix.
Transform the given vector by the transpose of this matrix and store the result in dest
.
Transform the given vector (x, y, z)
by this unit quaternion and store the result in dest
.
Transform the given vector by this unit quaternion.
Transform the given vector by this unit quaternion and store the result in dest
.
Transform the given vector (x, y, z)
by this unit quaternion
and store the result in dest
.
Transform the given vector by this unit quaternion.
Transform the given vector by this unit quaternion
and store the result in dest
.
Transform the vector (1, 0, 0)
by this unit quaternion.
Transform the vector (1, 0, 0)
by this unit quaternion.
Transform the vector (0, 1, 0)
by this unit quaternion.
Transform the vector (0, 1, 0)
by this unit quaternion.
Transform the vector (0, 0, 1)
by this unit quaternion.
Transform the vector (0, 0, 1)
by this unit quaternion.
Matrix4f.unproject(float winX,
float winY,
float winZ,
int[] viewport,
Vector3f dest)
Matrix4fc.unproject(float winX,
float winY,
float winZ,
int[] viewport,
Vector3f dest)
Unproject the given window coordinates (winX, winY, winZ)
by this
matrix using the specified viewport.
Unproject the given window coordinates winCoords
by this
matrix using the specified viewport.
Unproject the given window coordinates (winX, winY, winZ)
by this
matrix using the specified viewport.
Unproject the given window coordinates winCoords
by this
matrix using the specified viewport.
Unproject the given 2D window coordinates (winX, winY)
by this
matrix using the specified viewport
and compute the origin and the direction of the resulting ray which starts at NDC z = -1.0
and goes through NDC z = +1.0
.
Unproject the given window coordinates winCoords
by this
matrix using the specified viewport
and compute the origin and the direction of the resulting ray which starts at NDC z = -1.0
and goes through NDC z = +1.0
.
Unproject the given 2D window coordinates (winX, winY)
by this
matrix using the specified viewport
and compute the origin and the direction of the resulting ray which starts at NDC z = -1.0
and goes through NDC z = +1.0
.
Unproject the given 2D window coordinates winCoords
by this
matrix using the specified viewport
and compute the origin and the direction of the resulting ray which starts at NDC z = -1.0
and goes through NDC z = +1.0
.