![]() |
Header file for the implementation of a quaternion. More...
#include <cmath>
#include <istream>
#include <ostream>
#include <blaze/math/Accuracy.h>
#include <blaze/math/Forward.h>
#include <blaze/math/shims/Equal.h>
#include <blaze/math/shims/IsDefault.h>
#include <blaze/math/shims/IsNaN.h>
#include <blaze/math/traits/MathTrait.h>
#include <blaze/math/traits/MultTrait.h>
#include <blaze/system/Precision.h>
#include <blaze/util/Assert.h>
#include <blaze/util/constraints/Const.h>
#include <blaze/util/constraints/FloatingPoint.h>
#include <blaze/util/constraints/Volatile.h>
#include <blaze/util/Types.h>
Go to the source code of this file.
Classes | |
class | blaze::Quaternion< typename > |
Efficient implementation of a quaternion.Quaternions are a superior way to deal with rotations and orientations. This quaternion consists of 4 statically allocated elements, where the first element represents the real part and the three other elements represent the three imaginary parts. The naming convention of the elements is as following: More... | |
Namespaces | |
blaze | |
Namespace of the Blaze C++ math library. | |
Typedefs | |
typedef Quaternion< real > | blaze::Quat |
Quaternion of real type. | |
Functions | |
Quaternion operators | |
template<typename T1 , typename T2 > | |
bool | blaze::operator== (const Quaternion< T1 > &lhs, const Quaternion< T2 > &rhs) |
Equality operator for the comparison of two quaternions. More... | |
template<typename T1 , typename T2 > | |
bool | blaze::operator!= (const Quaternion< T1 > &lhs, const Quaternion< T2 > &rhs) |
Inequality operator for the comparison of two quaternions. More... | |
template<typename Type > | |
std::ostream & | blaze::operator<< (std::ostream &os, const Quaternion< Type > &q) |
Global output operator for quaternions. More... | |
template<typename Type > | |
std::istream & | blaze::operator>> (std::istream &is, Quaternion< Type > &q) |
Global input operator for quaternions. More... | |
template<typename Type > | |
bool | blaze::isnan (const Quaternion< Type > &q) |
Checks the given quaternion for not-a-number elements. More... | |
template<typename Type > | |
void | blaze::reset (Quaternion< Type > &q) |
Resetting the given quaternion. More... | |
template<typename Type > | |
void | blaze::clear (Quaternion< Type > &q) |
Clearing the given quaternion. More... | |
template<typename Type > | |
bool | blaze::isDefault (const Quaternion< Type > &q) |
Returns whether the given quaternion is in default state. More... | |
template<typename Type > | |
const Quaternion< Type > | blaze::inv (const Quaternion< Type > &q) |
Inverting the given quaternion ( ![]() | |
template<typename Type > | |
const Quaternion< Type > | blaze::sq (const Quaternion< Type > &q) |
Squaring the given quaternion. More... | |
template<typename Type > | |
void | blaze::swap (Quaternion< Type > &a, Quaternion< Type > &b) |
Swapping the contents of two quaternions. More... | |
Quaternion arithmetic operators | |
template<typename T1 , typename T2 > | |
const Quaternion< typename MultTrait< T1, T2 >::Type > | blaze::operator* (const Quaternion< T1 > &lhs, const Quaternion< T2 > &rhs) |
Multiplication operator for the multiplication of two quaternions ( ![]() | |
Header file for the implementation of a quaternion.
Copyright (C) 2013 Klaus Iglberger - All Rights Reserved
This file is part of the Blaze library. You can redistribute it and/or modify it under the terms of the New (Revised) BSD License. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.