Class Vector4f
- java.lang.Object
-
- org.joml.Vector4f
-
- All Implemented Interfaces:
java.io.Externalizable,java.io.Serializable,java.lang.Cloneable,Vector4fc
public class Vector4f extends java.lang.Object implements java.io.Externalizable, java.lang.Cloneable, Vector4fc
Contains the definition of a Vector comprising 4 floats and associated transformations.- Author:
- Richard Greenlees, Kai Burjack, F. Neurath
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Vector4f()Create a newVector4fof(0, 0, 0, 1).Vector4f(float d)Create a newVector4fand initialize all four components with the given value.Vector4f(float[] xyzw)Create a newVector4fand initialize its four components from the first four elements of the given array.Vector4f(float x, float y, float z, float w)Create a newVector4fwith the given component values.Vector4f(int index, java.nio.ByteBuffer buffer)Create a newVector4fand read this vector from the suppliedByteBufferstarting at the specified absolute buffer position/index.Vector4f(int index, java.nio.FloatBuffer buffer)Create a newVector4fand read this vector from the suppliedFloatBufferstarting at the specified absolute buffer position/index.Vector4f(java.nio.ByteBuffer buffer)Create a newVector4fand read this vector from the suppliedByteBufferat the current bufferposition.Vector4f(java.nio.FloatBuffer buffer)Create a newVector4fand read this vector from the suppliedFloatBufferat the current bufferposition.Vector4f(Vector2fc v, float z, float w)Vector4f(Vector2ic v, float z, float w)Vector4f(Vector3fc v, float w)Vector4f(Vector3ic v, float w)Vector4f(Vector4fc v)Create a newVector4fwith the same values asv.Vector4f(Vector4ic v)Create a newVector4fwith the same values asv.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Vector4fabsolute()Compute the absolute of each of this vector's components.Vector4fabsolute(Vector4f dest)Compute the absolute of each of this vector's components and store the result intodest.Vector4fadd(float x, float y, float z, float w)Increment the components of this vector by the given values.Vector4fadd(float x, float y, float z, float w, Vector4f dest)Increment the components of this vector by the given values and store the result indest.Vector4fadd(Vector4fc v)Add the supplied vector to this one.Vector4fadd(Vector4fc v, Vector4f dest)Add the supplied vector to this one and store the result indest.floatangle(Vector4fc v)Return the angle between this vector and the supplied vector.floatangleCos(Vector4fc v)Return the cosine of the angle between this vector and the supplied vector.Vector4fceil()Set each component of this vector to the smallest (closest to negative infinity)floatvalue that is greater than or equal to that component and is equal to a mathematical integer.Vector4fceil(Vector4f dest)Compute for each component of this vector the smallest (closest to negative infinity)floatvalue that is greater than or equal to that component and is equal to a mathematical integer and store the result indest.java.lang.Objectclone()floatdistance(float x, float y, float z, float w)Return the distance betweenthisvector and(x, y, z, w).static floatdistance(float x1, float y1, float z1, float w1, float x2, float y2, float z2, float w2)Return the distance between(x1, y1, z1, w1)and(x2, y2, z2, w2).floatdistance(Vector4fc v)Return the distance between this Vector andv.floatdistanceSquared(float x, float y, float z, float w)Return the square of the distance betweenthisvector and(x, y, z, w).static floatdistanceSquared(float x1, float y1, float z1, float w1, float x2, float y2, float z2, float w2)Return the squared distance between(x1, y1, z1, w1)and(x2, y2, z2, w2).floatdistanceSquared(Vector4fc v)Return the square of the distance between this vector andv.Vector4fdiv(float scalar)Divide all components of thisVector4fby the given scalar value.Vector4fdiv(float x, float y, float z, float w)Divide the components of this Vector4f by the given scalar values and store the result inthis.Vector4fdiv(float x, float y, float z, float w, Vector4f dest)Divide the components of this Vector4f by the given scalar values and store the result indest.Vector4fdiv(float scalar, Vector4f dest)Divide all components of thisVector4fby the given scalar value and store the result indest.Vector4fdiv(Vector4fc v)Divide this Vector4f component-wise by another Vector4f.Vector4fdiv(Vector4fc v, Vector4f dest)Divide this Vector4f component-wise by another Vector4f and store the result indest.floatdot(float x, float y, float z, float w)Compute the dot product (inner product) of this vector and(x, y, z, w).floatdot(Vector4fc v)Compute the dot product (inner product) of this vector andv.booleanequals(float x, float y, float z, float w)Compare the vector components ofthisvector with the given(x, y, z, w)and return whether all of them are equal.booleanequals(java.lang.Object obj)booleanequals(Vector4fc v, float delta)Compare the vector components ofthisvector with the given vector using the givendeltaand return whether all of them are equal within a maximum difference ofdelta.Vector4ffloor()Set each component of this vector to the largest (closest to positive infinity)floatvalue that is less than or equal to that component and is equal to a mathematical integer.Vector4ffloor(Vector4f dest)Compute for each component of this vector the largest (closest to positive infinity)floatvalue that is less than or equal to that component and is equal to a mathematical integer and store the result indest.Vector4ffma(float a, Vector4fc b)Add the component-wise multiplication ofa * bto this vector.Vector4ffma(float a, Vector4fc b, Vector4f dest)Add the component-wise multiplication ofa * bto this vector and store the result indest.Vector4ffma(Vector4fc a, Vector4fc b)Add the component-wise multiplication ofa * bto this vector.Vector4ffma(Vector4fc a, Vector4fc b, Vector4f dest)Add the component-wise multiplication ofa * bto this vector and store the result indest.floatget(int component)Get the value of the specified component of this vector.java.nio.ByteBufferget(int index, java.nio.ByteBuffer buffer)Store this vector into the suppliedByteBufferstarting at the specified absolute buffer position/index.java.nio.FloatBufferget(int index, java.nio.FloatBuffer buffer)Store this vector into the suppliedFloatBufferstarting at the specified absolute buffer position/index.Vector4iget(int mode, Vector4i dest)java.nio.ByteBufferget(java.nio.ByteBuffer buffer)Store this vector into the suppliedByteBufferat the current bufferposition.java.nio.FloatBufferget(java.nio.FloatBuffer buffer)Store this vector into the suppliedFloatBufferat the current bufferposition.Vector4dget(Vector4d dest)Set the components of the given vectordestto those ofthisvector.Vector4fget(Vector4f dest)Set the components of the given vectordestto those ofthisvector.Vector4fcgetToAddress(long address)Store this vector at the given off-heap memory address.inthashCode()Vector4fhermite(Vector4fc t0, Vector4fc v1, Vector4fc t1, float t, Vector4f dest)Compute a hermite interpolation betweenthisvector and its associated tangentt0and the given vectorvwith its tangentt1and store the result indest.booleanisFinite()Determine whether all components are finite floating-point values, that is, they are notNaNand notinfinity.floatlength()Return the length of this vector.static floatlength(float x, float y, float z, float w)Get the length of a 4-dimensional single-precision vector.floatlengthSquared()Return the length squared of this vector.static floatlengthSquared(float x, float y, float z, float w)Get the length squared of a 4-dimensional single-precision vector.static floatlengthSquared(int x, int y, int z, int w)Get the length squared of a 4-dimensional int vector.Vector4flerp(Vector4fc other, float t)Linearly interpolatethisandotherusing the given interpolation factortand store the result inthis.Vector4flerp(Vector4fc other, float t, Vector4f dest)Linearly interpolatethisandotherusing the given interpolation factortand store the result indest.Vector4fmax(Vector4fc v)Set the components of this vector to be the component-wise maximum of this and the other vector.Vector4fmax(Vector4fc v, Vector4f dest)Set the components ofdestto be the component-wise maximum of this and the other vector.intmaxComponent()Determine the component with the biggest absolute value.Vector4fmin(Vector4fc v)Set the components of this vector to be the component-wise minimum of this and the other vector.Vector4fmin(Vector4fc v, Vector4f dest)Set the components ofdestto be the component-wise minimum of this and the other vector.intminComponent()Determine the component with the smallest (towards zero) absolute value.Vector4fmul(float scalar)Multiply all components of thisVector4fby the given scalar value.Vector4fmul(float x, float y, float z, float w)Multiply the components of this Vector4f by the given scalar values and store the result inthis.Vector4fmul(float x, float y, float z, float w, Vector4f dest)Multiply the components of this Vector4f by the given scalar values and store the result indest.Vector4fmul(float scalar, Vector4f dest)Multiply all components of thisVector4fby the given scalar value and store the result indest.Vector4fmul(Matrix4fc mat)Multiply the given matrix mat with this Vector4f and store the result inthis.Vector4fmul(Matrix4fc mat, Vector4f dest)Multiply the given matrix mat with this Vector4f and store the result indest.Vector4fmul(Matrix4x3fc mat)Multiply the given matrix mat with this Vector4f and store the result inthis.Vector4fmul(Matrix4x3fc mat, Vector4f dest)Multiply the given matrix mat with this Vector4f and store the result indest.Vector4fmul(Vector4fc v)Multiply this Vector4f component-wise by another Vector4f.Vector4fmul(Vector4fc v, Vector4f dest)Multiply this Vector4f component-wise by another Vector4f and store the result indest.Vector4fmulAdd(float a, Vector4fc b)Add the component-wise multiplication ofthis * atoband store the result inthis.Vector4fmulAdd(float a, Vector4fc b, Vector4f dest)Add the component-wise multiplication ofthis * atoband store the result indest.Vector4fmulAdd(Vector4fc a, Vector4fc b)Add the component-wise multiplication ofthis * atoband store the result inthis.Vector4fmulAdd(Vector4fc a, Vector4fc b, Vector4f dest)Add the component-wise multiplication ofthis * atoband store the result indest.Vector4fmulAffine(Matrix4fc mat, Vector4f dest)Multiply the given affine matrix mat with this Vector4f and store the result indest.Vector4fmulAffineTranspose(Matrix4fc mat, Vector4f dest)Multiply the transpose of the given affine matrixmatwith this Vector4f and store the result indest.Vector4fmulProject(Matrix4fc mat)Multiply the given matrixmatwith this Vector4f, perform perspective division.Vector3fmulProject(Matrix4fc mat, Vector3f dest)Multiply the given matrixmatwith this Vector4f, perform perspective division and store the(x, y, z)result indest.Vector4fmulProject(Matrix4fc mat, Vector4f dest)Multiply the given matrixmatwith this Vector4f, perform perspective division and store the result indest.Vector4fmulTranspose(Matrix4fc mat)Multiply the transpose of the given matrixmatwith this Vector4f and store the result inthis.Vector4fmulTranspose(Matrix4fc mat, Vector4f dest)Multiply the transpose of the given matrixmatwith this Vector4f and store the result indest.Vector4fnegate()Negate this vector.Vector4fnegate(Vector4f dest)Negate this vector and store the result indest.Vector4fnormalize()Normalizes this vector.Vector4fnormalize(float length)Scale this vector to have the given length.Vector4fnormalize(float length, Vector4f dest)Scale this vector to have the given length and store the result indest.Vector4fnormalize(Vector4f dest)Normalizes this vector and store the result indest.Vector4fnormalize3()Normalize this vector by computing only the norm of(x, y, z).Vector4fnormalize3(Vector4f dest)Normalize this vector by computing only the norm of(x, y, z)and store the result indest.voidreadExternal(java.io.ObjectInput in)Vector4frotate(Quaternionfc quat)Rotate this vector by the given quaternionquatand store the result inthis.Vector4frotate(Quaternionfc quat, Vector4f dest)Rotate this vector by the given quaternionquatand store the result indest.Vector4frotateAbout(float angle, float x, float y, float z)Rotate this vector the specified radians around the given rotation axis.Vector4frotateAxis(float angle, float aX, float aY, float aZ, Vector4f dest)Rotate this vector the specified radians around the given rotation axis and store the result intodest.Vector4frotateX(float angle)Rotate this vector the specified radians around the X axis.Vector4frotateX(float angle, Vector4f dest)Rotate this vector the specified radians around the X axis and store the result intodest.Vector4frotateY(float angle)Rotate this vector the specified radians around the Y axis.Vector4frotateY(float angle, Vector4f dest)Rotate this vector the specified radians around the Y axis and store the result intodest.Vector4frotateZ(float angle)Rotate this vector the specified radians around the Z axis.Vector4frotateZ(float angle, Vector4f dest)Rotate this vector the specified radians around the Z axis and store the result intodest.Vector4fround()Set each component of this vector to the closest float that is equal to a mathematical integer, with ties rounding to positive infinity.Vector4fround(Vector4f dest)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 indest.Vector4fset(double d)Set the x, y, z, and w components to the supplied value.Vector4fset(double x, double y, double z, double w)Set the x, y, z, and w components to the supplied values.Vector4fset(float d)Set the x, y, z, and w components to the supplied value.Vector4fset(float[] xyzw)Set the four components of this vector to the first four elements of the given array.Vector4fset(float x, float y, float z)Set the x, y, z components to the supplied values.Vector4fset(float x, float y, float z, float w)Set the x, y, z, and w components to the supplied values.Vector4fset(int index, java.nio.ByteBuffer buffer)Read this vector from the suppliedByteBufferstarting at the specified absolute buffer position/index.Vector4fset(int index, java.nio.FloatBuffer buffer)Read this vector from the suppliedFloatBufferstarting at the specified absolute buffer position/index.Vector4fset(java.nio.ByteBuffer buffer)Read this vector from the suppliedByteBufferat the current bufferposition.Vector4fset(java.nio.FloatBuffer buffer)Read this vector from the suppliedFloatBufferat the current bufferposition.Vector4fset(Vector2fc v, float z, float w)Sets the first two components of this to the components of givenvand last two components to the givenz, andw.Vector4fset(Vector2ic v, float z, float w)Sets the first two components of this to the components of givenvand last two components to the givenz, andw.Vector4fset(Vector3fc v, float w)Set the first three components of this to the components ofvand the last component tow.Vector4fset(Vector3ic v, float w)Set the first three components of this to the components ofvand the last component tow.Vector4fset(Vector4dc v)Set thisVector4fto the values of the givenv.Vector4fset(Vector4fc v)Set thisVector4fto the values of the givenv.Vector4fset(Vector4ic v)Set thisVector4fto the values of the givenv.Vector4fsetComponent(int component, float value)Set the value of the specified component of this vector.Vector4fsetFromAddress(long address)Set the values of this vector by reading 4 float values from off-heap memory, starting at the given address.Vector4fsmoothStep(Vector4fc v, float t, Vector4f dest)Compute a smooth-step (i.e.Vector4fsub(float x, float y, float z, float w)Subtract(x, y, z, w)from this.Vector4fsub(float x, float y, float z, float w, Vector4f dest)Subtract(x, y, z, w)from this and store the result indest.Vector4fsub(Vector4fc v)Subtract the supplied vector from this one.Vector4fsub(Vector4fc v, Vector4f dest)Subtract the supplied vector from this one and store the result indest.java.lang.StringtoString()Return a string representation of this vector.java.lang.StringtoString(java.text.NumberFormat formatter)Return a string representation of this vector by formatting the vector components with the givenNumberFormat.floatw()voidwriteExternal(java.io.ObjectOutput out)floatx()floaty()floatz()Vector4fzero()Set all components to zero.
-
-
-
Constructor Detail
-
Vector4f
public Vector4f()
Create a newVector4fof(0, 0, 0, 1).
-
Vector4f
public Vector4f(Vector4fc v)
Create a newVector4fwith the same values asv.- Parameters:
v- theVector4fcto copy the values from
-
Vector4f
public Vector4f(Vector4ic v)
Create a newVector4fwith the same values asv.- Parameters:
v- theVector4icto copy the values from
-
Vector4f
public Vector4f(Vector2fc v, float z, float w)
- Parameters:
v- theVector2fcz- the z componentw- the w component
-
Vector4f
public Vector4f(Vector2ic v, float z, float w)
- Parameters:
v- theVector2icz- the z componentw- the w component
-
Vector4f
public Vector4f(float d)
Create a newVector4fand initialize all four components with the given value.- Parameters:
d- the value of all four components
-
Vector4f
public Vector4f(float x, float y, float z, float w)Create a newVector4fwith the given component values.- Parameters:
x- the x componenty- the y componentz- the z componentw- the w component
-
Vector4f
public Vector4f(float[] xyzw)
Create a newVector4fand initialize its four components from the first four elements of the given array.- Parameters:
xyzw- the array containing at least four elements
-
Vector4f
public Vector4f(java.nio.ByteBuffer buffer)
Create a newVector4fand read this vector from the suppliedByteBufferat the current bufferposition.This method will not increment the position of the given ByteBuffer.
In order to specify the offset into the ByteBuffer at which the vector is read, use
Vector4f(int, ByteBuffer), taking the absolute position as parameter.- Parameters:
buffer- values will be read inx, y, z, worder- See Also:
Vector4f(int, ByteBuffer)
-
Vector4f
public Vector4f(int index, java.nio.ByteBuffer buffer)Create a newVector4fand read this vector from the suppliedByteBufferstarting at the specified absolute buffer position/index.This method will not increment the position of the given ByteBuffer.
- Parameters:
index- the absolute position into the ByteBufferbuffer- values will be read inx, y, z, worder
-
Vector4f
public Vector4f(java.nio.FloatBuffer buffer)
Create a newVector4fand read this vector from the suppliedFloatBufferat the current bufferposition.This method will not increment the position of the given FloatBuffer.
In order to specify the offset into the FloatBuffer at which the vector is read, use
Vector4f(int, FloatBuffer), taking the absolute position as parameter.- Parameters:
buffer- values will be read inx, y, z, worder- See Also:
Vector4f(int, FloatBuffer)
-
Vector4f
public Vector4f(int index, java.nio.FloatBuffer buffer)Create a newVector4fand read this vector from the suppliedFloatBufferstarting at the specified absolute buffer position/index.This method will not increment the position of the given FloatBuffer.
- Parameters:
index- the absolute position into the FloatBufferbuffer- values will be read inx, y, z, worder
-
-
Method Detail
-
set
public Vector4f set(Vector4fc v)
Set thisVector4fto the values of the givenv.- Parameters:
v- the vector whose values will be copied into this- Returns:
- this
-
set
public Vector4f set(Vector4ic v)
Set thisVector4fto the values of the givenv.- Parameters:
v- the vector whose values will be copied into this- Returns:
- this
-
set
public Vector4f set(Vector4dc v)
Set thisVector4fto the values of the givenv.Note that due to the given vector
vstoring the components in double-precision, there is the possibility to lose precision.- Parameters:
v- the vector whose values will be copied into this- Returns:
- this
-
set
public Vector4f set(Vector3fc v, float w)
Set the first three components of this to the components ofvand the last component tow.- Parameters:
v- theVector3fcto copyw- the w component- Returns:
- this
-
set
public Vector4f set(Vector3ic v, float w)
Set the first three components of this to the components ofvand the last component tow.- Parameters:
v- theVector3icto copyw- the w component- Returns:
- this
-
set
public Vector4f set(Vector2fc v, float z, float w)
Sets the first two components of this to the components of givenvand last two components to the givenz, andw.- Parameters:
v- theVector2fcz- the z componentw- the w component- Returns:
- this
-
set
public Vector4f set(Vector2ic v, float z, float w)
Sets the first two components of this to the components of givenvand last two components to the givenz, andw.- Parameters:
v- theVector2icz- the z componentw- the w component- Returns:
- this
-
set
public Vector4f set(float d)
Set the x, y, z, and w components to the supplied value.- Parameters:
d- the value of all four components- Returns:
- this
-
set
public Vector4f set(float x, float y, float z, float w)
Set the x, y, z, and w components to the supplied values.- Parameters:
x- the x componenty- the y componentz- the z componentw- the w component- Returns:
- this
-
set
public Vector4f set(float x, float y, float z)
Set the x, y, z components to the supplied values.- Parameters:
x- the x componenty- the y componentz- the z component- Returns:
- this
-
set
public Vector4f set(double d)
Set the x, y, z, and w components to the supplied value.- Parameters:
d- the value of all four components- Returns:
- this
-
set
public Vector4f set(double x, double y, double z, double w)
Set the x, y, z, and w components to the supplied values.- Parameters:
x- the x componenty- the y componentz- the z componentw- the w component- Returns:
- this
-
set
public Vector4f set(float[] xyzw)
Set the four components of this vector to the first four elements of the given array.- Parameters:
xyzw- the array containing at least four elements- Returns:
- this
-
set
public Vector4f set(java.nio.ByteBuffer buffer)
Read this vector from the suppliedByteBufferat the current bufferposition.This method will not increment the position of the given ByteBuffer.
In order to specify the offset into the ByteBuffer at which the vector is read, use
set(int, ByteBuffer), taking the absolute position as parameter.- Parameters:
buffer- values will be read inx, y, z, worder- Returns:
- this
- See Also:
set(int, ByteBuffer)
-
set
public Vector4f set(int index, java.nio.ByteBuffer buffer)
Read this vector from the suppliedByteBufferstarting at the specified absolute buffer position/index.This method will not increment the position of the given ByteBuffer.
- Parameters:
index- the absolute position into the ByteBufferbuffer- values will be read inx, y, z, worder- Returns:
- this
-
set
public Vector4f set(java.nio.FloatBuffer buffer)
Read this vector from the suppliedFloatBufferat the current bufferposition.This method will not increment the position of the given FloatBuffer.
In order to specify the offset into the FloatBuffer at which the vector is read, use
set(int, FloatBuffer), taking the absolute position as parameter.- Parameters:
buffer- values will be read inx, y, z, worder- Returns:
- this
- See Also:
set(int, FloatBuffer)
-
set
public Vector4f set(int index, java.nio.FloatBuffer buffer)
Read this vector from the suppliedFloatBufferstarting at the specified absolute buffer position/index.This method will not increment the position of the given FloatBuffer.
- Parameters:
index- the absolute position into the FloatBufferbuffer- values will be read inx, y, z, worder- Returns:
- this
-
setFromAddress
public Vector4f setFromAddress(long address)
Set the values of this vector by reading 4 float values from off-heap memory, starting at the given address.This method will throw an
UnsupportedOperationExceptionwhen JOML is used with `-Djoml.nounsafe`.This method is unsafe as it can result in a crash of the JVM process when the specified address range does not belong to this process.
- Parameters:
address- the off-heap memory address to read the vector values from- Returns:
- this
-
setComponent
public Vector4f setComponent(int component, float value) throws java.lang.IllegalArgumentException
Set the value of the specified component of this vector.- Parameters:
component- the component whose value to set, within[0..3]value- the value to set- Returns:
- this
- Throws:
java.lang.IllegalArgumentException- ifcomponentis not within[0..3]
-
get
public java.nio.FloatBuffer get(java.nio.FloatBuffer buffer)
Description copied from interface:Vector4fcStore this vector into the suppliedFloatBufferat the current bufferposition.This method will not increment the position of the given FloatBuffer.
In order to specify the offset into the FloatBuffer at which the vector is stored, use
Vector4fc.get(int, FloatBuffer), taking the absolute position as parameter.- Specified by:
getin interfaceVector4fc- Parameters:
buffer- will receive the values of this vector inx, y, z, worder- Returns:
- the passed in buffer
- See Also:
Vector4fc.get(int, FloatBuffer)
-
get
public java.nio.FloatBuffer get(int index, java.nio.FloatBuffer buffer)Description copied from interface:Vector4fcStore this vector into the suppliedFloatBufferstarting at the specified absolute buffer position/index.This method will not increment the position of the given FloatBuffer.
-
get
public java.nio.ByteBuffer get(java.nio.ByteBuffer buffer)
Description copied from interface:Vector4fcStore this vector into the suppliedByteBufferat the current bufferposition.This method will not increment the position of the given ByteBuffer.
In order to specify the offset into the ByteBuffer at which the vector is stored, use
Vector4fc.get(int, ByteBuffer), taking the absolute position as parameter.- Specified by:
getin interfaceVector4fc- Parameters:
buffer- will receive the values of this vector inx, y, z, worder- Returns:
- the passed in buffer
- See Also:
Vector4fc.get(int, ByteBuffer)
-
get
public java.nio.ByteBuffer get(int index, java.nio.ByteBuffer buffer)Description copied from interface:Vector4fcStore this vector into the suppliedByteBufferstarting at the specified absolute buffer position/index.This method will not increment the position of the given ByteBuffer.
-
getToAddress
public Vector4fc getToAddress(long address)
Description copied from interface:Vector4fcStore this vector at the given off-heap memory address.This method will throw an
UnsupportedOperationExceptionwhen JOML is used with `-Djoml.nounsafe`.This method is unsafe as it can result in a crash of the JVM process when the specified address range does not belong to this process.
- Specified by:
getToAddressin interfaceVector4fc- Parameters:
address- the off-heap address where to store this vector- Returns:
- this
-
sub
public Vector4f sub(Vector4fc v)
Subtract the supplied vector from this one.- Parameters:
v- the vector to subtract- Returns:
- this
-
sub
public Vector4f sub(float x, float y, float z, float w)
Subtract(x, y, z, w)from this.- Parameters:
x- the x component to subtracty- the y component to subtractz- the z component to subtractw- the w component to subtract- Returns:
- this
-
sub
public Vector4f sub(Vector4fc v, Vector4f dest)
Description copied from interface:Vector4fcSubtract the supplied vector from this one and store the result indest.
-
sub
public Vector4f sub(float x, float y, float z, float w, Vector4f dest)
Description copied from interface:Vector4fcSubtract(x, y, z, w)from this and store the result indest.
-
add
public Vector4f add(Vector4fc v)
Add the supplied vector to this one.- Parameters:
v- the vector to add- Returns:
- this
-
add
public Vector4f add(Vector4fc v, Vector4f dest)
Description copied from interface:Vector4fcAdd the supplied vector to this one and store the result indest.
-
add
public Vector4f add(float x, float y, float z, float w)
Increment the components of this vector by the given values.- Parameters:
x- the x component to addy- the y component to addz- the z component to addw- the w component to add- Returns:
- this
-
add
public Vector4f add(float x, float y, float z, float w, Vector4f dest)
Description copied from interface:Vector4fcIncrement the components of this vector by the given values and store the result indest.
-
fma
public Vector4f fma(Vector4fc a, Vector4fc b)
Add the component-wise multiplication ofa * bto this vector.- Parameters:
a- the first multiplicandb- the second multiplicand- Returns:
- this
-
fma
public Vector4f fma(float a, Vector4fc b)
Add the component-wise multiplication ofa * bto this vector.- Parameters:
a- the first multiplicandb- the second multiplicand- Returns:
- this
-
fma
public Vector4f fma(Vector4fc a, Vector4fc b, Vector4f dest)
Description copied from interface:Vector4fcAdd the component-wise multiplication ofa * bto this vector and store the result indest.
-
fma
public Vector4f fma(float a, Vector4fc b, Vector4f dest)
Description copied from interface:Vector4fcAdd the component-wise multiplication ofa * bto this vector and store the result indest.
-
mulAdd
public Vector4f mulAdd(Vector4fc a, Vector4fc b)
Add the component-wise multiplication ofthis * atoband store the result inthis.- Parameters:
a- the multiplicandb- the addend- Returns:
- this
-
mulAdd
public Vector4f mulAdd(float a, Vector4fc b)
Add the component-wise multiplication ofthis * atoband store the result inthis.- Parameters:
a- the multiplicandb- the addend- Returns:
- this
-
mulAdd
public Vector4f mulAdd(Vector4fc a, Vector4fc b, Vector4f dest)
Description copied from interface:Vector4fcAdd the component-wise multiplication ofthis * atoband store the result indest.
-
mulAdd
public Vector4f mulAdd(float a, Vector4fc b, Vector4f dest)
Description copied from interface:Vector4fcAdd the component-wise multiplication ofthis * atoband store the result indest.
-
mul
public Vector4f mul(Vector4fc v)
Multiply this Vector4f component-wise by another Vector4f.- Parameters:
v- the other vector- Returns:
- this
-
mul
public Vector4f mul(Vector4fc v, Vector4f dest)
Description copied from interface:Vector4fcMultiply this Vector4f component-wise by another Vector4f and store the result indest.
-
div
public Vector4f div(Vector4fc v)
Divide this Vector4f component-wise by another Vector4f.- Parameters:
v- the vector to divide by- Returns:
- this
-
div
public Vector4f div(Vector4fc v, Vector4f dest)
Description copied from interface:Vector4fcDivide this Vector4f component-wise by another Vector4f and store the result indest.
-
mul
public Vector4f mul(Matrix4fc mat)
Multiply the given matrix mat with this Vector4f and store the result inthis.- Parameters:
mat- the matrix to multiply the vector with- Returns:
- this
-
mul
public Vector4f mul(Matrix4fc mat, Vector4f dest)
Description copied from interface:Vector4fcMultiply the given matrix mat with this Vector4f and store the result indest.
-
mulTranspose
public Vector4f mulTranspose(Matrix4fc mat)
Multiply the transpose of the given matrixmatwith this Vector4f and store the result inthis.- Parameters:
mat- the matrix whose transpose to multiply the vector with- Returns:
- this
-
mulTranspose
public Vector4f mulTranspose(Matrix4fc mat, Vector4f dest)
Description copied from interface:Vector4fcMultiply the transpose of the given matrixmatwith this Vector4f and store the result indest.- Specified by:
mulTransposein interfaceVector4fc- Parameters:
mat- the matrix whose transpose to multiply the vector withdest- the destination vector to hold the result- Returns:
- dest
-
mulAffine
public Vector4f mulAffine(Matrix4fc mat, Vector4f dest)
Description copied from interface:Vector4fcMultiply the given affine matrix mat with this Vector4f and store the result indest.
-
mulAffineTranspose
public Vector4f mulAffineTranspose(Matrix4fc mat, Vector4f dest)
Description copied from interface:Vector4fcMultiply the transpose of the given affine matrixmatwith this Vector4f and store the result indest.- Specified by:
mulAffineTransposein interfaceVector4fc- Parameters:
mat- the affine matrix whose transpose to multiply the vector withdest- the destination vector to hold the result- Returns:
- dest
-
mul
public Vector4f mul(Matrix4x3fc mat)
Multiply the given matrix mat with this Vector4f and store the result inthis.- Parameters:
mat- the matrix to multiply the vector with- Returns:
- this
-
mul
public Vector4f mul(Matrix4x3fc mat, Vector4f dest)
Description copied from interface:Vector4fcMultiply the given matrix mat with this Vector4f and store the result indest.
-
mulProject
public Vector4f mulProject(Matrix4fc mat, Vector4f dest)
Description copied from interface:Vector4fcMultiply the given matrixmatwith this Vector4f, perform perspective division and store the result indest.- Specified by:
mulProjectin interfaceVector4fc- Parameters:
mat- the matrix to multiply this vector bydest- will hold the result- Returns:
- dest
-
mulProject
public Vector4f mulProject(Matrix4fc mat)
Multiply the given matrixmatwith this Vector4f, perform perspective division.- Parameters:
mat- the matrix to multiply this vector by- Returns:
- this
-
mulProject
public Vector3f mulProject(Matrix4fc mat, Vector3f dest)
Description copied from interface:Vector4fcMultiply the given matrixmatwith this Vector4f, perform perspective division and store the(x, y, z)result indest.- Specified by:
mulProjectin interfaceVector4fc- Parameters:
mat- the matrix to multiply this vector bydest- will hold the result- Returns:
- dest
-
mul
public Vector4f mul(float scalar)
Multiply all components of thisVector4fby the given scalar value.- Parameters:
scalar- the scalar to multiply by- Returns:
- this
-
mul
public Vector4f mul(float scalar, Vector4f dest)
Description copied from interface:Vector4fcMultiply all components of thisVector4fby the given scalar value and store the result indest.
-
mul
public Vector4f mul(float x, float y, float z, float w)
Multiply the components of this Vector4f by the given scalar values and store the result inthis.- Parameters:
x- the x component to multiply byy- the y component to multiply byz- the z component to multiply byw- the w component to multiply by- Returns:
- this
-
mul
public Vector4f mul(float x, float y, float z, float w, Vector4f dest)
Description copied from interface:Vector4fcMultiply the components of this Vector4f by the given scalar values and store the result indest.
-
div
public Vector4f div(float scalar)
Divide all components of thisVector4fby the given scalar value.- Parameters:
scalar- the scalar to divide by- Returns:
- this
-
div
public Vector4f div(float scalar, Vector4f dest)
Description copied from interface:Vector4fcDivide all components of thisVector4fby the given scalar value and store the result indest.
-
div
public Vector4f div(float x, float y, float z, float w)
Divide the components of this Vector4f by the given scalar values and store the result inthis.- Parameters:
x- the x component to divide byy- the y component to divide byz- the z component to divide byw- the w component to divide by- Returns:
- this
-
div
public Vector4f div(float x, float y, float z, float w, Vector4f dest)
Description copied from interface:Vector4fcDivide the components of this Vector4f by the given scalar values and store the result indest.
-
rotate
public Vector4f rotate(Quaternionfc quat)
Rotate this vector by the given quaternionquatand store the result inthis.- Parameters:
quat- the quaternion to rotate this vector- Returns:
- this
- See Also:
Quaternionf.transform(Vector4f)
-
rotate
public Vector4f rotate(Quaternionfc quat, Vector4f dest)
Description copied from interface:Vector4fcRotate this vector by the given quaternionquatand store the result indest.- Specified by:
rotatein interfaceVector4fc- Parameters:
quat- the quaternion to rotate this vectordest- will hold the result- Returns:
- dest
- See Also:
Quaternionf.transform(Vector4f)
-
rotateAbout
public Vector4f rotateAbout(float angle, float x, float y, float z)
Rotate this vector the specified radians around the given rotation axis.- Parameters:
angle- the angle in radiansx- the x component of the rotation axisy- the y component of the rotation axisz- the z component of the rotation axis- Returns:
- this
-
rotateAxis
public Vector4f rotateAxis(float angle, float aX, float aY, float aZ, Vector4f dest)
Description copied from interface:Vector4fcRotate this vector the specified radians around the given rotation axis and store the result intodest.- Specified by:
rotateAxisin interfaceVector4fc- Parameters:
angle- the angle in radiansaX- the x component of the rotation axisaY- the y component of the rotation axisaZ- the z component of the rotation axisdest- will hold the result- Returns:
- dest
-
rotateX
public Vector4f rotateX(float angle)
Rotate this vector the specified radians around the X axis.- Parameters:
angle- the angle in radians- Returns:
- this
-
rotateX
public Vector4f rotateX(float angle, Vector4f dest)
Description copied from interface:Vector4fcRotate this vector the specified radians around the X axis and store the result intodest.
-
rotateY
public Vector4f rotateY(float angle)
Rotate this vector the specified radians around the Y axis.- Parameters:
angle- the angle in radians- Returns:
- this
-
rotateY
public Vector4f rotateY(float angle, Vector4f dest)
Description copied from interface:Vector4fcRotate this vector the specified radians around the Y axis and store the result intodest.
-
rotateZ
public Vector4f rotateZ(float angle)
Rotate this vector the specified radians around the Z axis.- Parameters:
angle- the angle in radians- Returns:
- this
-
rotateZ
public Vector4f rotateZ(float angle, Vector4f dest)
Description copied from interface:Vector4fcRotate this vector the specified radians around the Z axis and store the result intodest.
-
lengthSquared
public float lengthSquared()
Description copied from interface:Vector4fcReturn the length squared of this vector.- Specified by:
lengthSquaredin interfaceVector4fc- Returns:
- the length squared
-
lengthSquared
public static float lengthSquared(float x, float y, float z, float w)Get the length squared of a 4-dimensional single-precision vector.- Parameters:
x- the vector's x componenty- the vector's y componentz- the vector's z componentw- the vector's w component- Returns:
- the length squared of the given vector
-
lengthSquared
public static float lengthSquared(int x, int y, int z, int w)Get the length squared of a 4-dimensional int vector.- Parameters:
x- the vector's x componenty- the vector's y componentz- the vector's z componentw- the vector's w component- Returns:
- the length squared of the given vector
-
length
public float length()
Description copied from interface:Vector4fcReturn the length of this vector.
-
length
public static float length(float x, float y, float z, float w)Get the length of a 4-dimensional single-precision vector.- Parameters:
x- The vector's x componenty- The vector's y componentz- The vector's z componentw- The vector's w component- Returns:
- the length of the given vector
-
normalize
public Vector4f normalize()
Normalizes this vector.- Returns:
- this
-
normalize
public Vector4f normalize(Vector4f dest)
Description copied from interface:Vector4fcNormalizes this vector and store the result indest.
-
normalize
public Vector4f normalize(float length)
Scale this vector to have the given length.- Parameters:
length- the desired length- Returns:
- this
-
normalize
public Vector4f normalize(float length, Vector4f dest)
Description copied from interface:Vector4fcScale this vector to have the given length and store the result indest.
-
normalize3
public Vector4f normalize3()
Normalize this vector by computing only the norm of(x, y, z).- Returns:
- this
-
normalize3
public Vector4f normalize3(Vector4f dest)
Description copied from interface:Vector4fcNormalize this vector by computing only the norm of(x, y, z)and store the result indest.- Specified by:
normalize3in interfaceVector4fc- Parameters:
dest- will hold the result- Returns:
- dest
-
distance
public float distance(Vector4fc v)
Description copied from interface:Vector4fcReturn the distance between this Vector andv.
-
distance
public float distance(float x, float y, float z, float w)Description copied from interface:Vector4fcReturn the distance betweenthisvector and(x, y, z, w).
-
distanceSquared
public float distanceSquared(Vector4fc v)
Description copied from interface:Vector4fcReturn the square of the distance between this vector andv.- Specified by:
distanceSquaredin interfaceVector4fc- Parameters:
v- the other vector- Returns:
- the squared of the distance
-
distanceSquared
public float distanceSquared(float x, float y, float z, float w)Description copied from interface:Vector4fcReturn the square of the distance betweenthisvector and(x, y, z, w).- Specified by:
distanceSquaredin interfaceVector4fc- Parameters:
x- the x component of the other vectory- the y component of the other vectorz- the z component of the other vectorw- the w component of the other vector- Returns:
- the square of the distance
-
distance
public static float distance(float x1, float y1, float z1, float w1, float x2, float y2, float z2, float w2)Return the distance between(x1, y1, z1, w1)and(x2, y2, z2, w2).- Parameters:
x1- the x component of the first vectory1- the y component of the first vectorz1- the z component of the first vectorw1- the w component of the first vectorx2- the x component of the second vectory2- the y component of the second vectorz2- the z component of the second vectorw2- the 2 component of the second vector- Returns:
- the euclidean distance
-
distanceSquared
public static float distanceSquared(float x1, float y1, float z1, float w1, float x2, float y2, float z2, float w2)Return the squared distance between(x1, y1, z1, w1)and(x2, y2, z2, w2).- Parameters:
x1- the x component of the first vectory1- the y component of the first vectorz1- the z component of the first vectorw1- the w component of the first vectorx2- the x component of the second vectory2- the y component of the second vectorz2- the z component of the second vectorw2- the w component of the second vector- Returns:
- the euclidean distance squared
-
dot
public float dot(Vector4fc v)
Description copied from interface:Vector4fcCompute the dot product (inner product) of this vector andv.
-
dot
public float dot(float x, float y, float z, float w)Description copied from interface:Vector4fcCompute the dot product (inner product) of this vector and(x, y, z, w).
-
angleCos
public float angleCos(Vector4fc v)
Description copied from interface:Vector4fcReturn the cosine of the angle between this vector and the supplied vector. Use this instead ofMath.cos(angle(v)).- Specified by:
angleCosin interfaceVector4fc- Parameters:
v- the other vector- Returns:
- the cosine of the angle
- See Also:
Vector4fc.angle(Vector4fc)
-
angle
public float angle(Vector4fc v)
Description copied from interface:Vector4fcReturn the angle between this vector and the supplied vector.- Specified by:
anglein interfaceVector4fc- Parameters:
v- the other vector- Returns:
- the angle, in radians
- See Also:
Vector4fc.angleCos(Vector4fc)
-
zero
public Vector4f zero()
Set all components to zero.- Returns:
- this
-
negate
public Vector4f negate()
Negate this vector.- Returns:
- this
-
negate
public Vector4f negate(Vector4f dest)
Description copied from interface:Vector4fcNegate this vector and store the result indest.
-
toString
public java.lang.String toString()
Return a string representation of this vector.This method creates a new
DecimalFormaton every invocation with the format string "0.000E0;-".- Overrides:
toStringin classjava.lang.Object- Returns:
- the string representation
-
toString
public java.lang.String toString(java.text.NumberFormat formatter)
Return a string representation of this vector by formatting the vector components with the givenNumberFormat.- Parameters:
formatter- theNumberFormatused to format the vector components with- Returns:
- the string representation
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException- Specified by:
writeExternalin interfacejava.io.Externalizable- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException- Specified by:
readExternalin interfacejava.io.Externalizable- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
min
public Vector4f min(Vector4fc v)
Set the components of this vector to be the component-wise minimum of this and the other vector.- Parameters:
v- the other vector- Returns:
- this
-
min
public Vector4f min(Vector4fc v, Vector4f dest)
Description copied from interface:Vector4fcSet the components ofdestto be the component-wise minimum of this and the other vector.
-
max
public Vector4f max(Vector4fc v)
Set the components of this vector to be the component-wise maximum of this and the other vector.- Parameters:
v- the other vector- Returns:
- this
-
max
public Vector4f max(Vector4fc v, Vector4f dest)
Description copied from interface:Vector4fcSet the components ofdestto be the component-wise maximum of this and the other vector.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
equals
public boolean equals(Vector4fc v, float delta)
Description copied from interface:Vector4fcCompare the vector components ofthisvector with the given vector using the givendeltaand return whether all of them are equal within a maximum difference ofdelta.Please note that this method is not used by any data structure such as
ArrayListHashSetorHashMapand their operations, such asArrayList.contains(Object)orHashSet.remove(Object), since those data structures only use theObject.equals(Object)andObject.hashCode()methods.
-
equals
public boolean equals(float x, float y, float z, float w)Description copied from interface:Vector4fcCompare the vector components ofthisvector with the given(x, y, z, w)and return whether all of them are equal.
-
smoothStep
public Vector4f smoothStep(Vector4fc v, float t, Vector4f dest)
Description copied from interface:Vector4fcCompute a smooth-step (i.e. hermite with zero tangents) interpolation betweenthisvector and the given vectorvand store the result indest.- Specified by:
smoothStepin interfaceVector4fc- Parameters:
v- the other vectort- the interpolation factor, within[0..1]dest- will hold the result- Returns:
- dest
-
hermite
public Vector4f hermite(Vector4fc t0, Vector4fc v1, Vector4fc t1, float t, Vector4f dest)
Description copied from interface:Vector4fcCompute a hermite interpolation betweenthisvector and its associated tangentt0and the given vectorvwith its tangentt1and store the result indest.
-
lerp
public Vector4f lerp(Vector4fc other, float t)
Linearly interpolatethisandotherusing the given interpolation factortand store the result inthis.If
tis0.0then the result isthis. If the interpolation factor is1.0then the result isother.- Parameters:
other- the other vectort- the interpolation factor between 0.0 and 1.0- Returns:
- this
-
lerp
public Vector4f lerp(Vector4fc other, float t, Vector4f dest)
Description copied from interface:Vector4fcLinearly interpolatethisandotherusing the given interpolation factortand store the result indest.If
tis0.0then the result isthis. If the interpolation factor is1.0then the result isother.
-
get
public float get(int component) throws java.lang.IllegalArgumentExceptionDescription copied from interface:Vector4fcGet the value of the specified component of this vector.
-
get
public Vector4i get(int mode, Vector4i dest)
Description copied from interface:Vector4fc- Specified by:
getin interfaceVector4fc- Parameters:
mode- theRoundingModeto usedest- will hold the result- Returns:
- dest
-
get
public Vector4f get(Vector4f dest)
Description copied from interface:Vector4fcSet the components of the given vectordestto those ofthisvector.
-
get
public Vector4d get(Vector4d dest)
Description copied from interface:Vector4fcSet the components of the given vectordestto those ofthisvector.
-
maxComponent
public int maxComponent()
Description copied from interface:Vector4fcDetermine the component with the biggest absolute value.- Specified by:
maxComponentin interfaceVector4fc- Returns:
- the component index, within
[0..3]
-
minComponent
public int minComponent()
Description copied from interface:Vector4fcDetermine the component with the smallest (towards zero) absolute value.- Specified by:
minComponentin interfaceVector4fc- Returns:
- the component index, within
[0..3]
-
floor
public Vector4f floor()
Set each component of this vector to the largest (closest to positive infinity)floatvalue that is less than or equal to that component and is equal to a mathematical integer.- Returns:
- this
-
floor
public Vector4f floor(Vector4f dest)
Description copied from interface:Vector4fcCompute for each component of this vector the largest (closest to positive infinity)floatvalue that is less than or equal to that component and is equal to a mathematical integer and store the result indest.
-
ceil
public Vector4f ceil()
Set each component of this vector to the smallest (closest to negative infinity)floatvalue that is greater than or equal to that component and is equal to a mathematical integer.- Returns:
- this
-
ceil
public Vector4f ceil(Vector4f dest)
Description copied from interface:Vector4fcCompute for each component of this vector the smallest (closest to negative infinity)floatvalue that is greater than or equal to that component and is equal to a mathematical integer and store the result indest.
-
round
public Vector4f round()
Set each component of this vector to the closest float that is equal to a mathematical integer, with ties rounding to positive infinity.- Returns:
- this
-
round
public Vector4f round(Vector4f dest)
Description copied from interface:Vector4fcCompute 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 indest.
-
isFinite
public boolean isFinite()
Description copied from interface:Vector4fcDetermine whether all components are finite floating-point values, that is, they are notNaNand notinfinity.
-
absolute
public Vector4f absolute()
Compute the absolute of each of this vector's components.- Returns:
- this
-
absolute
public Vector4f absolute(Vector4f dest)
Description copied from interface:Vector4fcCompute the absolute of each of this vector's components and store the result intodest.
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException- Overrides:
clonein classjava.lang.Object- Throws:
java.lang.CloneNotSupportedException
-
-