112 explicit Quaternion(
const btQuaternion& Theirs);
116 explicit Quaternion(
const Ogre::Quaternion& Theirs);
136 void SetFromAxisAngle(
const Real& Angle,
const Vector3& Axis);
140 void SetFromMatrix3x3(
const Matrix3x3& Mat);
159 Real LengthSqrd()
const;
180 btQuaternion GetBulletQuaternion(
bool normalize=
false)
const;
186 void ExtractBulletQuaternion(
const btQuaternion &Ours);
191 Ogre::Quaternion GetOgreQuaternion(
bool normalize=
false)
const;
197 void ExtractOgreQuaternion(
const Ogre::Quaternion &Ours);
205 Real operator[](
const Whole& Index)
const;
266 Quaternion operator* (
const Ogre::Quaternion& Other)
const;
271 Quaternion operator* (
const btQuaternion& Other)
const;
292 Quaternion& operator+= (
const Ogre::Quaternion& Other);
297 Quaternion& operator+= (
const btQuaternion& Other);
307 Quaternion& operator-= (
const Ogre::Quaternion& Other);
312 Quaternion& operator-= (
const btQuaternion& Other);
325 Quaternion& operator= (
const Ogre::Quaternion& Other);
330 Quaternion& operator= (
const btQuaternion& Other);
342 bool operator==(
const Ogre::Quaternion& Other)
const;
346 bool operator==(
const btQuaternion& Other)
const;
355 bool operator!=(
const Ogre::Quaternion& Other)
const;
359 bool operator!=(
const btQuaternion& Other)
const;
376 void ProtoSerialize(
XML::Node& CurrentRoot)
const;
381 void ProtoDeSerialize(
const XML::Node& OneNode);
385 static String SerializableName();
432 btQuaternion&
MEZZ_LIB operator<< ( btQuaternion& Other,
const Ogre::Quaternion& Other2);
456 Ogre::Quaternion&
MEZZ_LIB operator<< ( Ogre::Quaternion& Other,
const btQuaternion& Other2);
491 class numeric_limits<Mezzanine::Quaternion>
495 static const bool is_specialized =
true;
497 static const bool is_signed =
true;
499 static const bool is_integer =
false;
501 static const bool is_exact = std::numeric_limits<Mezzanine::Real>::is_exact;
503 static const bool has_infinity = std::numeric_limits<Mezzanine::Real>::has_infinity;
506 static const bool has_quiet_NaN = std::numeric_limits<Mezzanine::Real>::has_quiet_NaN;
509 static const bool has_signaling_NaN = std::numeric_limits<Mezzanine::Real>::has_signaling_NaN;
511 static const std::float_denorm_style has_denorm = std::numeric_limits<Mezzanine::Real>::has_denorm;
513 static const bool has_denorm_loss = std::numeric_limits<Mezzanine::Real>::has_denorm_loss;
515 static const std::float_round_style round_style = std::numeric_limits<Mezzanine::Real>::round_style;
517 static const bool is_iec559 = std::numeric_limits<Mezzanine::Real>::is_iec559;
519 static const bool is_modulo = std::numeric_limits<Mezzanine::Real>::is_modulo;
521 static const int digits = std::numeric_limits<Mezzanine::Real>::digits;
523 static const int digits10 = std::numeric_limits<Mezzanine::Real>::digits10;
525 static const int radix = std::numeric_limits<Mezzanine::Real>::radix;
527 static const int min_exponent = std::numeric_limits<Mezzanine::Real>::min_exponent;
529 static const int min_exponent10 = std::numeric_limits<Mezzanine::Real>::min_exponent10;
531 static const int max_exponent = std::numeric_limits<Mezzanine::Real>::max_exponent;
533 static const int max_exponent10 = std::numeric_limits<Mezzanine::Real>::max_exponent10;
535 static const bool traps = std::numeric_limits<Mezzanine::Real>::traps;
537 static const bool tinyness_before = std::numeric_limits<Mezzanine::Real>::tinyness_before;
544 std::numeric_limits<Mezzanine::Real>::min(),
545 std::numeric_limits<Mezzanine::Real>::min(),
546 std::numeric_limits<Mezzanine::Real>::min()
555 std::numeric_limits<Mezzanine::Real>::max(),
556 std::numeric_limits<Mezzanine::Real>::max(),
557 std::numeric_limits<Mezzanine::Real>::max()
566 std::numeric_limits<Mezzanine::Real>::epsilon(),
567 std::numeric_limits<Mezzanine::Real>::epsilon(),
568 std::numeric_limits<Mezzanine::Real>::epsilon()
577 std::numeric_limits<Mezzanine::Real>::round_error(),
578 std::numeric_limits<Mezzanine::Real>::round_error(),
579 std::numeric_limits<Mezzanine::Real>::round_error()
588 std::numeric_limits<Mezzanine::Real>::infinity(),
589 std::numeric_limits<Mezzanine::Real>::infinity(),
590 std::numeric_limits<Mezzanine::Real>::infinity()
599 std::numeric_limits<Mezzanine::Real>::quiet_NaN(),
600 std::numeric_limits<Mezzanine::Real>::quiet_NaN(),
601 std::numeric_limits<Mezzanine::Real>::quiet_NaN()
610 std::numeric_limits<Mezzanine::Real>::signaling_NaN(),
611 std::numeric_limits<Mezzanine::Real>::signaling_NaN(),
612 std::numeric_limits<Mezzanine::Real>::signaling_NaN()
621 std::numeric_limits<Mezzanine::Real>::denorm_min(),
622 std::numeric_limits<Mezzanine::Real>::denorm_min(),
623 std::numeric_limits<Mezzanine::Real>::denorm_min()