116 explicit Quaternion(
const btQuaternion& Theirs);
120 explicit Quaternion(
const Ogre::Quaternion& Theirs);
142 void SetFromAxisAngle(
const Real& Angle,
const Vector3& Axis);
145 void SetFromMatrix3x3(
const Matrix3x3& Mat);
154 void SetFromAxisToZ(
const Vector3& DirectionAxis,
const Vector3& UpAxis);
159 void ConvertToAngleAxis(
Real& Angle,
Vector3& Axis)
const;
170 Real LengthSqrd()
const;
188 btQuaternion GetBulletQuaternion(
Boole normalize=
false)
const;
194 void ExtractBulletQuaternion(
const btQuaternion &Ours);
199 Ogre::Quaternion GetOgreQuaternion(
Boole normalize=
false)
const;
205 void ExtractOgreQuaternion(
const Ogre::Quaternion &Ours);
213 Real operator[](
const Whole& Index)
const;
300 Quaternion& operator+= (
const Ogre::Quaternion& Other);
305 Quaternion& operator+= (
const btQuaternion& Other);
315 Quaternion& operator-= (
const Ogre::Quaternion& Other);
320 Quaternion& operator-= (
const btQuaternion& Other);
333 Quaternion& operator= (
const Ogre::Quaternion& Other);
338 Quaternion& operator= (
const btQuaternion& Other);
350 Boole operator==(
const Ogre::Quaternion& Other)
const;
354 Boole operator==(
const btQuaternion& Other)
const;
363 Boole operator!=(
const Ogre::Quaternion& Other)
const;
367 Boole operator!=(
const btQuaternion& Other)
const;
384 void ProtoSerialize(
XML::Node& CurrentRoot)
const;
389 void ProtoDeSerialize(
const XML::Node& OneNode);
393 static String GetSerializableName();
440 btQuaternion&
MEZZ_LIB operator<< ( btQuaternion& Other,
const Ogre::Quaternion& Other2);
464 Ogre::Quaternion&
MEZZ_LIB operator<< ( Ogre::Quaternion& Other,
const btQuaternion& Other2);
504 static const bool is_specialized =
true;
506 static const bool is_signed =
true;
508 static const bool is_integer =
false;
510 static const bool is_exact = std::numeric_limits<Mezzanine::Real>::is_exact;
512 static const bool has_infinity = std::numeric_limits<Mezzanine::Real>::has_infinity;
515 static const bool has_quiet_NaN = std::numeric_limits<Mezzanine::Real>::has_quiet_NaN;
518 static const bool has_signaling_NaN = std::numeric_limits<Mezzanine::Real>::has_signaling_NaN;
520 static const std::float_denorm_style has_denorm = std::numeric_limits<Mezzanine::Real>::has_denorm;
522 static const bool has_denorm_loss = std::numeric_limits<Mezzanine::Real>::has_denorm_loss;
524 static const std::float_round_style round_style = std::numeric_limits<Mezzanine::Real>::round_style;
526 static const bool is_iec559 = std::numeric_limits<Mezzanine::Real>::is_iec559;
528 static const bool is_modulo = std::numeric_limits<Mezzanine::Real>::is_modulo;
530 static const int digits = std::numeric_limits<Mezzanine::Real>::digits;
532 static const int digits10 = std::numeric_limits<Mezzanine::Real>::digits10;
534 static const int radix = std::numeric_limits<Mezzanine::Real>::radix;
536 static const int min_exponent = std::numeric_limits<Mezzanine::Real>::min_exponent;
538 static const int min_exponent10 = std::numeric_limits<Mezzanine::Real>::min_exponent10;
540 static const int max_exponent = std::numeric_limits<Mezzanine::Real>::max_exponent;
542 static const int max_exponent10 = std::numeric_limits<Mezzanine::Real>::max_exponent10;
544 static const bool traps = std::numeric_limits<Mezzanine::Real>::traps;
546 static const bool tinyness_before = std::numeric_limits<Mezzanine::Real>::tinyness_before;
553 std::numeric_limits<Mezzanine::Real>::min(),
554 std::numeric_limits<Mezzanine::Real>::min(),
555 std::numeric_limits<Mezzanine::Real>::min()
564 std::numeric_limits<Mezzanine::Real>::max(),
565 std::numeric_limits<Mezzanine::Real>::max(),
566 std::numeric_limits<Mezzanine::Real>::max()
575 std::numeric_limits<Mezzanine::Real>::epsilon(),
576 std::numeric_limits<Mezzanine::Real>::epsilon(),
577 std::numeric_limits<Mezzanine::Real>::epsilon()
586 std::numeric_limits<Mezzanine::Real>::round_error(),
587 std::numeric_limits<Mezzanine::Real>::round_error(),
588 std::numeric_limits<Mezzanine::Real>::round_error()
597 std::numeric_limits<Mezzanine::Real>::infinity(),
598 std::numeric_limits<Mezzanine::Real>::infinity(),
599 std::numeric_limits<Mezzanine::Real>::infinity()
608 std::numeric_limits<Mezzanine::Real>::quiet_NaN(),
609 std::numeric_limits<Mezzanine::Real>::quiet_NaN(),
610 std::numeric_limits<Mezzanine::Real>::quiet_NaN()
619 std::numeric_limits<Mezzanine::Real>::signaling_NaN(),
620 std::numeric_limits<Mezzanine::Real>::signaling_NaN(),
621 std::numeric_limits<Mezzanine::Real>::signaling_NaN()
630 std::numeric_limits<Mezzanine::Real>::denorm_min(),
631 std::numeric_limits<Mezzanine::Real>::denorm_min(),
632 std::numeric_limits<Mezzanine::Real>::denorm_min()
std::ostream & operator<<(std::ostream &stream, const Mezzanine::LinearInterpolator< T > &Lint)
Used to Serialize an Mezzanine::LinearInterpolator to a human readable stream.
This is a 3x3 Matrix class used for representing rotations and scaling in an object.
bool Boole
Generally acts a single bit, true or false.
All the definitions for datatypes as well as some basic conversion functions are defined here...
Real Y
The Y component of the Axis.
static Mezzanine::Quaternion denorm_min()
Get the closest value to 0 that is not 0 this can represent, including extra precision for being clos...
SmoothTrackIterator< InterpolatableType > & operator+(Integer Steps, SmoothTrackIterator< InterpolatableType > &Iter)
This allows for addition with and an Integer on the Left hand side, such as: 2 + Iter.
Mezzanine::Vector3 operator/(const btVector3 &Vec, const Mezzanine::Vector3 &lhs)
Right Hand Division Operator for Bullet Vectors with a Mezzanine::Vector3.
float Real
A Datatype used to represent a real floating point number.
static Mezzanine::Quaternion max()
Get the highest positive finite value this can represent.
static Mezzanine::Quaternion epsilon()
The smallest value representable from 1.0,1.0,1.0 to the next value.
SmoothTrackIterator< InterpolatableType > & operator-(Integer Steps, SmoothTrackIterator< InterpolatableType > &Iter)
This allows for subtraction with and an Integer on the Left hand side, such as: 2 + Iter...
A light-weight handle for manipulating nodes in DOM tree.
Mezzanine::Vector3 operator*(const btVector3 &Vec, const Mezzanine::Vector3 &lhs)
Right Hand Multiplication Operator for Bullet Vectors with a Mezzanine::Vector3.
Real W
Rotation on the Axis X, Y and Z defined.
static Mezzanine::Quaternion infinity()
Get the special value "Positive infinity".
This is used to represent a point in space, or a vector through space.
The bulk of the engine components go in this namspace.
unsigned long Whole
Whole is an unsigned integer, it will be at least 32bits in size.
std::istream & operator>>(std::istream &stream, Mezzanine::LinearInterpolator< T > &Lint)
Used to de-serialize an Mezzanine::LinearInterpolator from a stream.
Real X
The X component of the Axis.
This is used to store information about rotation in 3d space.
static Mezzanine::Quaternion signaling_NaN()
Get the special value "Signaling Not actual Number".
Real Z
The Z component of the Axis.
std::string String
A datatype used to a series of characters.
static Mezzanine::Quaternion quiet_NaN()
Get the special value "Quiet Not actual Number".
static Mezzanine::Quaternion min()
Get the lowest positive finite value this can represent.
static Mezzanine::Quaternion round_error()
Get the largest possible rounding error.