| 114 | |
| 115 | |
| 116 | Quaternion Terathon::operator *(const Quaternion& q1, const Quaternion& q2) |
| 117 | { |
| 118 | return (Quaternion(q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y, |
| 119 | q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x, |
| 120 | q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w, |
| 121 | q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z)); |
| 122 | } |
| 123 | |
| 124 | Quaternion Terathon::operator *(const Quaternion& q, const Bivector3D& v) |
| 125 | { |