diff --git a/Sources/Plasma/CoreLib/hsQuat.cpp b/Sources/Plasma/CoreLib/hsQuat.cpp index da9c1667..4b8556b9 100644 --- a/Sources/Plasma/CoreLib/hsQuat.cpp +++ b/Sources/Plasma/CoreLib/hsQuat.cpp @@ -65,14 +65,14 @@ hsQuat::hsQuat(float rad, const hsVector3* axis) fZ = axis->fZ*s; } -hsQuat hsQuat::Inverse() +hsQuat hsQuat::Inverse() const { hsQuat q2 = Conjugate(); float msInv = 1.0f/q2.MagnitudeSquared(); return (q2 * msInv); } -hsPoint3 hsQuat::Rotate(const hsScalarTriple* v) +hsPoint3 hsQuat::Rotate(const hsScalarTriple* v) const { hsQuat qInv = Inverse(); hsQuat qVec(v->fX, v->fY, v->fZ, 0); diff --git a/Sources/Plasma/CoreLib/hsQuat.h b/Sources/Plasma/CoreLib/hsQuat.h index a61f484e..3153c194 100644 --- a/Sources/Plasma/CoreLib/hsQuat.h +++ b/Sources/Plasma/CoreLib/hsQuat.h @@ -71,7 +71,7 @@ public: { fX = X; fY = Y; fZ = Z; fW = W; } void GetAngleAxis(float *rad, hsVector3 *axis) const; void SetAngleAxis(const float rad, const hsVector3 &axis); - hsPoint3 Rotate(const hsScalarTriple* v); + hsPoint3 Rotate(const hsScalarTriple* v) const; // Access operators float& operator[](int i) { return (&fX)[i]; } @@ -94,7 +94,7 @@ public: float MagnitudeSquared(); hsQuat Conjugate() const { return hsQuat(-fX,-fY,-fZ,fW); } - hsQuat Inverse(); + hsQuat Inverse() const; // Binary operators hsQuat operator-(const hsQuat&) const; hsQuat operator+(const hsQuat&) const;