27 static constexpr u32 DIMENSION = 4;
40 GX_FORCE_INLINE
GxQuaternion(f32 x, f32 y, f32 z, f32 w);
111 GX_FORCE_INLINE f32 getLength(
void)
const;
113 GX_FORCE_INLINE f32 getLengthSquare(
void)
const;
117 GX_FORCE_INLINE
GxQuaternion getNormalizeEx(
void)
const;
125 GX_FORCE_INLINE
void setRotate(
const GxVector3& vector);
131 void setRotate(
const GxVector3& axis, f32 radian);
133 void setRotate(f32 yaw, f32 pitch, f32 roll);
137 void setRotate(
const GxVector3& startVector,
const GxVector3& targetVector, f32 radian);
141 void setRotateEx(
const GxVector3& axis, f32 radian);
145 void setRotateEx(
const GxVector3& startVector,
const GxVector3& targetVector, f32 radian);
149 GX_FORCE_INLINE
void setRotateX(f32 radian);
151 GX_FORCE_INLINE
void setRotateY(f32 radian);
153 GX_FORCE_INLINE
void setRotateZ(f32 radian);
155 GX_FORCE_INLINE
void setRotateXYZ(f32 x, f32 y, f32 z) { setRotateX(x); mulRotateY(y); mulRotateZ(z); }
157 GX_FORCE_INLINE
void setRotateXZY(f32 x, f32 y, f32 z) { setRotateX(x); mulRotateZ(z); mulRotateY(y); }
159 GX_FORCE_INLINE
void setRotateYXZ(f32 x, f32 y, f32 z) { setRotateY(y); mulRotateX(x); mulRotateZ(z); }
161 GX_FORCE_INLINE
void setRotateYZX(f32 x, f32 y, f32 z) { setRotateY(y); mulRotateZ(z); mulRotateX(x); }
163 GX_FORCE_INLINE
void setRotateZXY(f32 x, f32 y, f32 z) { setRotateZ(z); mulRotateX(x); mulRotateY(y); }
165 GX_FORCE_INLINE
void setRotateZYX(f32 x, f32 y, f32 z) { setRotateZ(z); mulRotateY(y); mulRotateX(x); }
221 GX_FORCE_INLINE
const GxQuaternion& addScalar(f32 scalar);
223 GX_FORCE_INLINE
const GxQuaternion& subScalar(f32 scalar);
225 GX_FORCE_INLINE
const GxQuaternion& mulScalar(f32 scalar);
227 GX_FORCE_INLINE
const GxQuaternion& divScalar(f32 scalar);
244 GX_FORCE_INLINE
const GxQuaternion& mulRotateX(f32 radian);
246 GX_FORCE_INLINE
const GxQuaternion& mulRotateY(f32 radian);
248 GX_FORCE_INLINE
const GxQuaternion& mulRotateZ(f32 radian);
250 GX_FORCE_INLINE
const GxQuaternion& mulRotateXYZ(f32 radianX, f32 radianY, f32 radianZ);
252 GX_FORCE_INLINE
const GxQuaternion& mulRotateXZY(f32 radianX, f32 radianY, f32 radianZ);
254 GX_FORCE_INLINE
const GxQuaternion& mulRotateYXZ(f32 radianX, f32 radianY, f32 radianZ);
256 GX_FORCE_INLINE
const GxQuaternion& mulRotateYZX(f32 radianX, f32 radianY, f32 radianZ);
258 GX_FORCE_INLINE
const GxQuaternion& mulRotateZXY(f32 radianX, f32 radianY, f32 radianZ);
260 GX_FORCE_INLINE
const GxQuaternion& mulRotateZYX(f32 radianX, f32 radianY, f32 radianZ);