Package limn.math
Record Class Quat
java.lang.Object
java.lang.Record
limn.math.Quat
An immutable unit quaternion (x, y, z, w) for rotations: no gimbal lock,
cheap to compose and interpolate (
slerp(limn.math.Quat, float)).-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionQuat(float x, float y, float z, float w) Creates an instance of aQuatrecord class. -
Method Summary
Modifier and TypeMethodDescriptionThe conjugate, which is the inverse rotation for a unit quaternion.final booleanIndicates whether some other object is "equal to" this one.static QuatfromAxisAngle(Vec3 axis, float angleRadians) Rotation ofangleRadiansaboutaxis(normalized internally).final inthashCode()Returns a hash code value for this object.floatlength()Magnitude;1for any rotation quaternion.Hamilton productthis · o(applyofirst, thenthis).Unit quaternion in the same direction, the fix for drift after repeated multiplication.Rotatesvby this quaternion (assumes unit length).Spherical interpolation along the shortest arc:ois negated first when the two face opposite ways, so the result never takes the long way round.toMat3()Column-major 3×3 rotation matrix (m[col*3+row]); assumes unit length.final StringtoString()Returns a string representation of this record class.floatw()Returns the value of thewrecord component.floatx()Returns the value of thexrecord component.floaty()Returns the value of theyrecord component.floatz()Returns the value of thezrecord component.
-
Field Details
-
IDENTITY
-
-
Constructor Details
-
Quat
public Quat(float x, float y, float z, float w) Creates an instance of aQuatrecord class.- Parameters:
x- the value for thexrecord componenty- the value for theyrecord componentz- the value for thezrecord componentw- the value for thewrecord component
-
-
Method Details
-
fromAxisAngle
Rotation ofangleRadiansaboutaxis(normalized internally). -
length
public float length()Magnitude;1for any rotation quaternion. -
normalize
Unit quaternion in the same direction, the fix for drift after repeated multiplication. -
conjugate
The conjugate, which is the inverse rotation for a unit quaternion. -
multiply
Hamilton productthis · o(applyofirst, thenthis). -
rotate
Rotatesvby this quaternion (assumes unit length). -
slerp
Spherical interpolation along the shortest arc:ois negated first when the two face opposite ways, so the result never takes the long way round. Falls back to a normalized linear blend when the two are nearly parallel and the angle is too small to divide by.tis not clamped. -
toMat3
Column-major 3×3 rotation matrix (m[col*3+row]); assumes unit length. -
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with '=='. -
x
public float x()Returns the value of thexrecord component.- Returns:
- the value of the
xrecord component
-
y
public float y()Returns the value of theyrecord component.- Returns:
- the value of the
yrecord component
-
z
public float z()Returns the value of thezrecord component.- Returns:
- the value of the
zrecord component
-
w
public float w()Returns the value of thewrecord component.- Returns:
- the value of the
wrecord component
-