Fixed bug in Quaternion that didn't allow for operator/ with a const-qualified operand b

This commit is contained in:
Leonetienne 2022-02-11 14:48:13 +01:00
parent b8b3005cb2
commit f2519fd085
2 changed files with 320 additions and 322 deletions

View File

@ -10,7 +10,7 @@
#include "gcccompat.h" #include "gcccompat.h"
#endif #endif
using namespace Eule; namespace Eule {
Quaternion::Quaternion() Quaternion::Quaternion()
{ {
@ -127,7 +127,7 @@ Quaternion Quaternion::operator*(const double scale) const
return Quaternion(v * scale); return Quaternion(v * scale);
} }
Quaternion Quaternion::operator/ (Quaternion& q) const Quaternion Quaternion::operator/ (const Quaternion& q) const
{ {
return ((*this) * (q.Inverse())); return ((*this) * (q.Inverse()));
} }
@ -330,8 +330,6 @@ void Quaternion::InvalidateCache()
return; return;
} }
namespace Eule
{
std::ostream& operator<< (std::ostream& os, const Quaternion& q) std::ostream& operator<< (std::ostream& os, const Quaternion& q)
{ {
os << "[" << q.v << "]"; os << "[" << q.v << "]";

View File

@ -31,7 +31,7 @@ namespace Eule
Quaternion operator* (const Quaternion& q) const; Quaternion operator* (const Quaternion& q) const;
//! Divides (applies) //! Divides (applies)
Quaternion operator/ (Quaternion& q) const; Quaternion operator/ (const Quaternion& q) const;
//! Also multiplies //! Also multiplies
Quaternion& operator*= (const Quaternion& q); Quaternion& operator*= (const Quaternion& q);