eigen.h File Reference
`#include <cmath>`
`#include <Eigen/StdVector>`
`#include <Eigen/Core>`
`#include <Eigen/Eigenvalues>`
`#include <Eigen/Geometry>`
`#include <Eigen/SVD>`
`#include <Eigen/LU>`
`#include <Eigen/Dense>`
`#include <pcl/common/impl/eigen.hpp>`
Include dependency graph for common/include/pcl/common/eigen.h:

Go to the source code of this file.

namespace  pcl

## Defines

#define NOMINMAX
#define PCL_EIGEN_SIZE_MIN_PREFER_DYNAMIC(a, b)

## Functions

template<typename Matrix , typename Vector >
void pcl::computeCorrespondingEigenVector (const Matrix &mat, const typename Matrix::Scalar &eigenvalue, Vector &eigenvector)
determines the corresponding eigenvector to the given eigenvalue of the symmetric positive semi definite input matrix
template<typename Matrix , typename Roots >
void pcl::computeRoots (const Matrix &m, Roots &roots)
computes the roots of the characteristic polynomial of the input matrix m, which are the eigenvalues
template<typename Scalar , typename Roots >
void pcl::computeRoots2 (const Scalar &b, const Scalar &c, Roots &roots)
Compute the roots of a quadratic polynom x^2 + b*x + c = 0.
template<typename Matrix >
Matrix::Scalar pcl::determinant3x3Matrix (const Matrix &matrix)
template<typename Matrix , typename Vector >
void pcl::eigen22 (const Matrix &mat, typename Matrix::Scalar &eigenvalue, Vector &eigenvector)
determine the smallest eigenvalue and its corresponding eigenvector
template<typename Matrix , typename Vector >
void pcl::eigen22 (const Matrix &mat, Matrix &eigenvectors, Vector &eigenvalues)
determine the smallest eigenvalue and its corresponding eigenvector
template<typename Matrix , typename Vector >
void pcl::eigen33 (const Matrix &mat, typename Matrix::Scalar &eigenvalue, Vector &eigenvector)
determines the eigenvector and eigenvalue of the smallest eigenvalue of the symmetric positive semi definite input matrix
template<typename Matrix , typename Vector >
void pcl::eigen33 (const Matrix &mat, Vector &evals)
determines the eigenvalues of the symmetric positive semi definite input matrix
template<typename Matrix , typename Vector >
void pcl::eigen33 (const Matrix &mat, Matrix &evecs, Vector &evals)
determines the eigenvalues and corresponding eigenvectors of the symmetric positive semi definite input matrix
void pcl::getEulerAngles (const Eigen::Affine3f &t, float &roll, float &pitch, float &yaw)
Extract the Euler angles (XYZ-convention) from the given transformation.
template<typename Scalar >
void pcl::getTransformation (Scalar x, Scalar y, Scalar z, Scalar roll, Scalar pitch, Scalar yaw, Eigen::Transform< Scalar, 3, Eigen::Affine > &t)
Create a transformation from the given translation and Euler angles (XYZ-convention)
void pcl::getTransformation (float x, float y, float z, float roll, float pitch, float yaw, Eigen::Affine3f &t)
void pcl::getTransformation (double x, double y, double z, double roll, double pitch, double yaw, Eigen::Affine3d &t)
Eigen::Affine3f pcl::getTransformation (float x, float y, float z, float roll, float pitch, float yaw)
Create a transformation from the given translation and Euler angles (XYZ-convention)
void pcl::getTransformationFromTwoUnitVectors (const Eigen::Vector3f &y_direction, const Eigen::Vector3f &z_axis, Eigen::Affine3f &transformation)
Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
Eigen::Affine3f pcl::getTransformationFromTwoUnitVectors (const Eigen::Vector3f &y_direction, const Eigen::Vector3f &z_axis)
Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
void pcl::getTransformationFromTwoUnitVectorsAndOrigin (const Eigen::Vector3f &y_direction, const Eigen::Vector3f &z_axis, const Eigen::Vector3f &origin, Eigen::Affine3f &transformation)
Get the transformation that will translate orign to (0,0,0) and rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
void pcl::getTransFromUnitVectorsXY (const Eigen::Vector3f &x_axis, const Eigen::Vector3f &y_direction, Eigen::Affine3f &transformation)
Get the unique 3D rotation that will rotate x_axis into (1,0,0) and y_direction into a vector with z=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
Eigen::Affine3f pcl::getTransFromUnitVectorsXY (const Eigen::Vector3f &x_axis, const Eigen::Vector3f &y_direction)
Get the unique 3D rotation that will rotate x_axis into (1,0,0) and y_direction into a vector with z=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
void pcl::getTransFromUnitVectorsZY (const Eigen::Vector3f &z_axis, const Eigen::Vector3f &y_direction, Eigen::Affine3f &transformation)
Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
Eigen::Affine3f pcl::getTransFromUnitVectorsZY (const Eigen::Vector3f &z_axis, const Eigen::Vector3f &y_direction)
Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
void pcl::getTranslationAndEulerAngles (const Eigen::Affine3f &t, float &x, float &y, float &z, float &roll, float &pitch, float &yaw)
template<typename Matrix >
Matrix::Scalar pcl::invert2x2 (const Matrix &matrix, Matrix &inverse)
Calculate the inverse of a 2x2 matrix.
template<typename Matrix >
Matrix::Scalar pcl::invert3x3Matrix (const Matrix &matrix, Matrix &inverse)
Calculate the inverse of a general 3x3 matrix.
template<typename Matrix >
Matrix::Scalar pcl::invert3x3SymMatrix (const Matrix &matrix, Matrix &inverse)
Calculate the inverse of a 3x3 symmetric matrix.
template<typename Derived >
void pcl::loadBinary (Eigen::MatrixBase< Derived > const &matrix, std::istream &file)
Read a matrix from an input stream.
template<typename Derived >
void pcl::saveBinary (const Eigen::MatrixBase< Derived > &matrix, std::ostream &file)
Write a matrix to an output stream.
template<typename Derived , typename OtherDerived >
Eigen::internal::umeyama_transform_matrix_type
< Derived, OtherDerived >
::type
pcl::umeyama (const Eigen::MatrixBase< Derived > &src, const Eigen::MatrixBase< OtherDerived > &dst, bool with_scaling=false)
Returns the transformation between two point sets. The algorithm is based on: "Least-squares estimation of transformation parameters between two point patterns", Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573.

## Define Documentation

 #define NOMINMAX

Definition at line 46 of file common/include/pcl/common/eigen.h.

 #define PCL_EIGEN_SIZE_MIN_PREFER_DYNAMIC ( a, b )
Value:
```((int (a) == 0 || int (b) == 0) ? 0 \
: (int (a) == 1 || int (b) == 1) ? 1 \
: (int (a) == Eigen::Dynamic || int (b) == Eigen::Dynamic) ? Eigen::Dynamic \
: (int (a) <= int (b)) ? int (a) : int (b))
```

Definition at line 826 of file common/include/pcl/common/eigen.h.

pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:38:44