Lines Matching refs:q
24 void initQuat(Quat *q, const struct Mat33 *R) { in initQuat() argument
29 q->x = sqrtf(clamp(Hx - My - Az + 1.0f) * 0.25f); in initQuat()
30 q->y = sqrtf(clamp(-Hx + My - Az + 1.0f) * 0.25f); in initQuat()
31 q->z = sqrtf(clamp(-Hx - My + Az + 1.0f) * 0.25f); in initQuat()
32 q->w = sqrtf(clamp(Hx + My + Az + 1.0f) * 0.25f); in initQuat()
33 q->x = copysignf(q->x, R->elem[1][2] - R->elem[2][1]); in initQuat()
34 q->y = copysignf(q->y, R->elem[2][0] - R->elem[0][2]); in initQuat()
35 q->z = copysignf(q->z, R->elem[0][1] - R->elem[1][0]); in initQuat()
38 void quatToMatrix(struct Mat33 *R, const Quat *q) { in quatToMatrix() argument
39 float q0 = q->w; in quatToMatrix()
40 float q1 = q->x; in quatToMatrix()
41 float q2 = q->y; in quatToMatrix()
42 float q3 = q->z; in quatToMatrix()
64 void quatNormalize(Quat *q) { in quatNormalize() argument
65 if (q->w < 0.0f) { in quatNormalize()
66 q->x = -q->x; in quatNormalize()
67 q->y = -q->y; in quatNormalize()
68 q->z = -q->z; in quatNormalize()
69 q->w = -q->w; in quatNormalize()
73 1.0f / sqrtf(q->x * q->x + q->y * q->y + q->z * q->z + q->w * q->w); in quatNormalize()
75 q->x *= invNorm; in quatNormalize()
76 q->y *= invNorm; in quatNormalize()
77 q->z *= invNorm; in quatNormalize()
78 q->w *= invNorm; in quatNormalize()