![]() |
Implementation of a 3x3 rotation matrix. More...
#include <algorithm>
#include <cmath>
#include <ostream>
#include <limits>
#include <blaze/math/Accuracy.h>
#include <blaze/math/DenseMatrix.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/StaticMatrix.h>
#include <blaze/math/StaticVector.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::RotationMatrix< typename > |
Efficient, generic implementation of a 3x3 rotation matrix.The RotationMatrix class is the representation of a 3x3 rotation matrix with a total of 9 statically allocated elements of arbitrary type. The naming convention of the elements is as following: More... | |
Namespaces | |
namespace | blaze |
Namespace of the Blaze C++ math library. | |
Typedefs | |
typedef RotationMatrix< real > | blaze::Rot3 |
Rotation matrix of real type. | |
Enumerations | |
enum | blaze::EulerRotation { blaze::XYZs = 0, blaze::ZYXr = 1, blaze::XYXs = 2, blaze::XYXr = 3, blaze::XZYs = 4, blaze::YZXr = 5, blaze::XZXs = 6, blaze::XZXr = 7, blaze::YZXs = 8, blaze::XZYr = 9, blaze::YZYs = 10, blaze::YZYr = 11, blaze::YXZs = 12, blaze::ZXYr = 13, blaze::YXYs = 14, blaze::YXYr = 15, blaze::ZXYs = 16, blaze::YXZr = 17, blaze::ZXZs = 18, blaze::ZXZr = 19, blaze::ZYXs = 20, blaze::XYZr = 21, blaze::ZYZs = 22, blaze::ZYZr = 23 } |
Order of the Euler rotationThis codes are needed for the EulerAngles function in order to calculate the Euler angles for a specific combination of rotations. More... | |
Functions | |
RotationMatrix operators | |
template<typename T1 , typename T2 > | |
bool | blaze::operator== (const RotationMatrix< T1 > &lhs, const RotationMatrix< T2 > &rhs) |
Equality operator for the comparison of two rotation matrices. More... | |
template<typename T1 , typename T2 > | |
bool | blaze::operator!= (const RotationMatrix< T1 > &lhs, const RotationMatrix< T2 > &rhs) |
Inequality operator for the comparison of two rotation matrices. More... | |
template<typename Type > | |
std::ostream & | blaze::operator<< (std::ostream &os, const RotationMatrix< Type > &m) |
Global output operator for 3x3 rotation matrices. More... | |
template<typename Type > | |
bool | blaze::isnan (const RotationMatrix< Type > &m) |
Checks the given rotation matrix for not-a-number elements. More... | |
template<typename Type > | |
const StaticMatrix< Type, 3UL, 3UL, false > | blaze::abs (const RotationMatrix< Type > &m) |
Returns a matrix containing the absolute values of each single element of m. More... | |
template<typename Type > | |
const StaticMatrix< Type, 3UL, 3UL, false > | blaze::fabs (const RotationMatrix< Type > &m) |
Returns a matrix containing the absolute values of each single element of m. More... | |
template<typename Type > | |
void | blaze::reset (RotationMatrix< Type > &m) |
Resetting the given rotation matrix. More... | |
template<typename Type > | |
void | blaze::clear (RotationMatrix< Type > &m) |
Clearing the given rotation matrix. More... | |
template<typename Type > | |
bool | blaze::isDefault (const RotationMatrix< Type > &m) |
Returns whether the given rotation matrix is in default state. More... | |
template<typename Type > | |
const RotationMatrix< Type > | blaze::trans (const RotationMatrix< Type > &m) |
Calculation of the transpose of the rotation matrix. More... | |
template<typename Type > | |
const RotationMatrix< Type > | blaze::inv (const RotationMatrix< Type > &m) |
Inverting the given rotation matrix. More... | |
template<typename Type > | |
const RotationMatrix< Type > | blaze::sq (const RotationMatrix< Type > &m) |
Squaring the given rotation matrix. More... | |
template<typename Type > | |
void | blaze::swap (RotationMatrix< Type > &a, RotationMatrix< Type > &b) |
Swapping the contents of two rotation matrices. More... | |
RotationMatrix arithmetic operators | |
template<typename T1 , typename T2 > | |
const StaticVector< typename MultTrait< T1, T2 >::Type, 3UL, false > | blaze::operator* (const RotationMatrix< T1 > &lhs, const StaticVector< T2, 3UL, false > &rhs) |
Multiplication operator for the multiplication of a rotation matrix and a vector ( ![]() | |
template<typename T1 , typename T2 > | |
const StaticVector< typename MultTrait< T1, T2 >::Type, 3UL, true > | blaze::operator* (const StaticVector< T1, 3UL, true > &lhs, const RotationMatrix< T2 > &rhs) |
Multiplication operator for the multiplication of a vector and a rotation matrix ( ![]() | |
template<typename T1 , typename T2 > | |
const StaticMatrix< typename MultTrait< T1, T2 >::Type, 3UL, 3UL, false > | blaze::operator* (const RotationMatrix< T1 > &lhs, const StaticMatrix< T2, 3UL, 3UL, false > &rhs) |
Multiplication operator for the multiplication of a rotation matrix and a standard matrix ( ![]() | |
template<typename T1 , typename T2 > | |
const StaticMatrix< typename MultTrait< T1, T2 >::Type, 3UL, 3UL, false > | blaze::operator* (const StaticMatrix< T1, 3UL, 3UL, false > &lhs, const RotationMatrix< T2 > &rhs) |
Multiplication operator for the multiplication of a standard matrix and a rotation matrix ( ![]() | |
template<typename T1 , typename T2 > | |
const RotationMatrix< typename MultTrait< T1, T2 >::Type > | blaze::operator* (const RotationMatrix< T1 > &lhs, const RotationMatrix< T2 > &rhs) |
Multiplication operator for the multiplication of two rotation matrices ( ![]() | |
Implementation of a 3x3 rotation matrix.
Copyright (C) 2011 Klaus Iglberger - All Rights Reserved
This file is part of the Blaze library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with a special exception for linking and compiling against the Blaze library, the so-called "runtime exception"; see the file COPYING. If not, see http://www.gnu.org/licenses/.