Lines Matching refs:q
48 void C_QUATAdd( const Quaternion *p, const Quaternion *q, Quaternion *r ) in C_QUATAdd() argument
51 ASSERTMSG( ( q != 0 ), QUAT_ADD_2 ); in C_QUATAdd()
54 r->x = p->x + q->x; in C_QUATAdd()
55 r->y = p->y + q->y; in C_QUATAdd()
56 r->z = p->z + q->z; in C_QUATAdd()
57 r->w = p->w + q->w; in C_QUATAdd()
66 void PSQUATAdd( const Quaternion *p, const Quaternion *q, Quaternion *r ) in PSQUATAdd() argument
78 qxy = __PSQ_LX(q, 0, 0, 0); in PSQUATAdd()
96 qzw = __PSQ_LX(q, 8, 0, 0); in PSQUATAdd()
122 void C_QUATSubtract( const Quaternion *p, const Quaternion *q, Quaternion *r ) in C_QUATSubtract() argument
125 ASSERTMSG( ( q != 0 ), QUAT_SUBTRACT_2 ); in C_QUATSubtract()
128 r->x = p->x - q->x; in C_QUATSubtract()
129 r->y = p->y - q->y; in C_QUATSubtract()
130 r->z = p->z - q->z; in C_QUATSubtract()
131 r->w = p->w - q->w; in C_QUATSubtract()
140 void PSQUATSubtract( const Quaternion *p, const Quaternion *q, Quaternion *r ) in PSQUATSubtract() argument
152 qxy = __PSQ_LX(q, 0, 0, 0); in PSQUATSubtract()
170 qzw = __PSQ_LX(q, 8, 0, 0); in PSQUATSubtract()
198 void C_QUATMultiply( const Quaternion *p, const Quaternion *q, Quaternion *pq ) in C_QUATMultiply() argument
204 ASSERTMSG( ( q != 0 ), QUAT_MULTIPLY_2 ); in C_QUATMultiply()
207 if ( p == pq || q == pq ) in C_QUATMultiply()
216 r->w = p->w*q->w - p->x*q->x - p->y*q->y - p->z*q->z; in C_QUATMultiply()
217 r->x = p->w*q->x + p->x*q->w + p->y*q->z - p->z*q->y; in C_QUATMultiply()
218 r->y = p->w*q->y + p->y*q->w + p->z*q->x - p->x*q->z; in C_QUATMultiply()
219 r->z = p->w*q->z + p->z*q->w + p->x*q->y - p->y*q->x; in C_QUATMultiply()
234 void PSQUATMultiply( const Quaternion *p, const Quaternion *q, Quaternion *pq ) in PSQUATMultiply() argument
256 qxy = __PSQ_LX(q, 0, 0, 0); in PSQUATMultiply()
266 qzw = __PSQ_LX(q, 8, 0, 0); in PSQUATMultiply()
356 void C_QUATScale( const Quaternion *q, Quaternion *r, f32 scale ) in C_QUATScale() argument
358 ASSERTMSG( ( q != 0 ), QUAT_SCALE_1 ); in C_QUATScale()
361 r->x = q->x * scale; in C_QUATScale()
362 r->y = q->y * scale; in C_QUATScale()
363 r->z = q->z * scale; in C_QUATScale()
364 r->w = q->w * scale; in C_QUATScale()
374 void PSQUATScale( const Quaternion *q, Quaternion *r, f32 scale ) in PSQUATScale() argument
382 rxy = __PSQ_LX(q, 0, 0, 0); in PSQUATScale()
387 rzw = __PSQ_LX(q, 8, 0, 0); in PSQUATScale()
420 f32 C_QUATDotProduct( const Quaternion *p, const Quaternion *q ) in C_QUATDotProduct() argument
423 ASSERTMSG( ( q != 0 ), QUAT_DOTPRODUCT_2 ); in C_QUATDotProduct()
425 return (q->x*p->x + q->y*p->y + q->z*p->z + q->w*p->w); in C_QUATDotProduct()
435 f32 PSQUATDotProduct( const Quaternion *p, const Quaternion *q ) in PSQUATDotProduct() argument
447 qxy = __PSQ_LX(q, 0, 0, 0); in PSQUATDotProduct()
460 qzw = __PSQ_LX(q, 8, 0, 0); in PSQUATDotProduct()
734 void C_QUATDivide( const Quaternion *p, const Quaternion *q, Quaternion *r ) in C_QUATDivide() argument
739 ASSERTMSG( ( q != 0 ), QUAT_DIVIDE_2 ); in C_QUATDivide()
742 C_QUATInverse(q, &qtmp); in C_QUATDivide()
753 void PSQUATDivide( const Quaternion *p, const Quaternion *q, Quaternion *r ) in PSQUATDivide() argument
757 PSQUATInverse(q, &qtmp); in PSQUATDivide()
772 void C_QUATExp( const Quaternion *q, Quaternion *r ) in C_QUATExp() argument
776 ASSERTMSG( ( q != 0 ), QUAT_EXP_1 ); in C_QUATExp()
780 ASSERTMSG( ( q->w == 0.0F ), QUAT_EXP_3 ); in C_QUATExp()
782 theta = sqrtf( q->x*q->x + q->y*q->y + q->z*q->z ); in C_QUATExp()
788 r->x = scale * q->x; in C_QUATExp()
789 r->y = scale * q->y; in C_QUATExp()
790 r->z = scale * q->z; in C_QUATExp()
805 void C_QUATLogN( const Quaternion *q, Quaternion *r ) in C_QUATLogN() argument
809 ASSERTMSG( ( q != 0 ), QUAT_LOGN_1 ); in C_QUATLogN()
812 scale = q->x*q->x + q->y*q->y + q->z*q->z; in C_QUATLogN()
818 mag = scale + q->z*q->z; in C_QUATLogN()
827 theta = atan2f( scale, q->w ); in C_QUATLogN()
832 r->x = scale*q->x; in C_QUATLogN()
833 r->y = scale*q->y; in C_QUATLogN()
834 r->z = scale*q->z; in C_QUATLogN()
851 void C_QUATMakeClosest( const Quaternion *q, const Quaternion *qto, Quaternion *r ) in C_QUATMakeClosest() argument
855 ASSERTMSG( ( q != 0 ), QUAT_MAKECLOSEST_1 ); in C_QUATMakeClosest()
859 dot = q->x*qto->x + q->y*qto->y + q->z*qto->z + q->w*qto->w; in C_QUATMakeClosest()
863 r->x = -q->x; in C_QUATMakeClosest()
864 r->y = -q->y; in C_QUATMakeClosest()
865 r->z = -q->z; in C_QUATMakeClosest()
866 r->w = -q->w; in C_QUATMakeClosest()
870 *r = *q; in C_QUATMakeClosest()
922 f32 q[3]; in C_QUATMtx() local
945 q[i] = s * 0.5f; in C_QUATMtx()
951 q[j] = (m[i][j] + m[j][i]) * s; in C_QUATMtx()
952 q[k] = (m[i][k] + m[k][i]) * s; in C_QUATMtx()
954 r->x = q[0]; in C_QUATMtx()
955 r->y = q[1]; in C_QUATMtx()
956 r->z = q[2]; in C_QUATMtx()
973 void C_QUATLerp( const Quaternion *p, const Quaternion *q, Quaternion *r, f32 t ) in C_QUATLerp() argument
976 ASSERTMSG( ( q != 0 ), QUAT_LERP_2 ); in C_QUATLerp()
979 r->x = t * ( q->x - p->x ) + p->x; in C_QUATLerp()
980 r->y = t * ( q->y - p->y ) + p->y; in C_QUATLerp()
981 r->z = t * ( q->z - p->z ) + p->z; in C_QUATLerp()
982 r->w = t * ( q->w - p->w ) + p->w; in C_QUATLerp()
998 void C_QUATSlerp( const Quaternion *p, const Quaternion *q, Quaternion *r, f32 t ) in C_QUATSlerp() argument
1003 ASSERTMSG( ( q != 0 ), QUAT_SLERP_2 ); in C_QUATSlerp()
1006 cos_th = p->x * q->x + p->y * q->y + p->z * q->z + p->w * q->w; in C_QUATSlerp()
1029 r->x = tp * p->x + tq * q->x; in C_QUATSlerp()
1030 r->y = tp * p->y + tq * q->y; in C_QUATSlerp()
1031 r->z = tp * p->z + tq * q->z; in C_QUATSlerp()
1032 r->w = tp * p->w + tq * q->w; in C_QUATSlerp()
1055 const Quaternion *q, Quaternion *r, f32 t ) in C_QUATSquad() argument
1063 ASSERTMSG( ( q != 0 ), QUAT_SQUAD_4 ); in C_QUATSquad()
1067 C_QUATSlerp(p, q, &pq, t); in C_QUATSquad()
1087 void C_QUATCompA( const Quaternion *qprev, const Quaternion *q, const Quaternion *qnext, Quaternion… in C_QUATCompA() argument
1092 ASSERTMSG( ( q != 0 ), QUAT_COMPA_2 ); in C_QUATCompA()
1096 C_QUATDivide(qprev, q, &qm); in C_QUATCompA()
1098 C_QUATDivide(qnext, q, &qp); in C_QUATCompA()
1105 C_QUATMultiply(q, &exq, a); in C_QUATCompA()
1125 void C_MTXQuat ( Mtx m, const Quaternion *q ) in C_MTXQuat() argument
1130 ASSERTMSG( (q != 0), MTX_QUAT_2 ); in C_MTXQuat()
1131 ASSERTMSG( ( q->x || q->y || q->z || q->w ), MTX_QUAT_3 ); in C_MTXQuat()
1133 s = 2.0f / ( (q->x * q->x) + (q->y * q->y) + (q->z * q->z) + (q->w * q->w) ); in C_MTXQuat()
1135 xs = q->x * s; ys = q->y * s; zs = q->z * s; in C_MTXQuat()
1136 wx = q->w * xs; wy = q->w * ys; wz = q->w * zs; in C_MTXQuat()
1137 xx = q->x * xs; xy = q->x * ys; xz = q->x * zs; in C_MTXQuat()
1138 yy = q->y * ys; yz = q->y * zs; zz = q->z * zs; in C_MTXQuat()
1162 void PSMTXQuat ( Mtx m, const Quaternion *q ) in PSMTXQuat() argument
1177 V_XY = __PSQ_LX(q, 0, 0, 0); in PSMTXQuat()
1182 V_ZW = __PSQ_LX(q, 8, 0, 0); in PSMTXQuat()