geometry.cpp File Reference
#include <iostream>
#include <Eigen/Geometry>
#include <bench/BenchTimer.h>

Classes

struct  ToRotationMatrixWrapper< T >
 
struct  get_dim< T >
 
struct  get_dim< Matrix< S, R, C, O, MR, MC > >
 
struct  bench_impl< Transformation, N >
 
struct  bench_impl< Transformation, 0 >
 

Macros

#define SCALAR   float
 
#define SIZE   8
 

Typedefs

typedef SCALAR Scalar
 
typedef NumTraits< Scalar >::Real RealScalar
 
typedef Matrix< RealScalar, Dynamic, Dynamic > A
 
typedef Matrix< Scalar, Dynamic, Dynamic > B
 
typedef Matrix< Scalar, Dynamic, Dynamic > C
 
typedef Matrix< RealScalar, Dynamic, Dynamic > M
 

Functions

template<typename Transformation , typename Data >
EIGEN_DONT_INLINE void transform (const Transformation &t, Data &data)
 
template<typename Scalar , typename Data >
EIGEN_DONT_INLINE void transform (const Quaternion< Scalar > &t, Data &data)
 
template<typename QType , typename Data >
EIGEN_DONT_INLINE void transform (const ToRotationMatrixWrapper< QType > &t, Data &data)
 
template<typename Scalar , int Dim, typename Data >
EIGEN_DONT_INLINE void transform (const Transform< Scalar, Dim, Projective > &t, Data &data)
 
template<typename Transformation >
EIGEN_DONT_INLINE void bench (const std::string &msg, const Transformation &t)
 
int main (int argc, char **argv)
 

Macro Definition Documentation

◆ SCALAR

#define SCALAR   float

◆ SIZE

#define SIZE   8

Typedef Documentation

◆ A

typedef Matrix<RealScalar, Dynamic, Dynamic> A

◆ B

typedef Matrix< Scalar, Dynamic, Dynamic> B

◆ C

typedef Matrix<Scalar, Dynamic, Dynamic> C

◆ M

typedef Matrix<RealScalar, Dynamic, Dynamic> M

◆ RealScalar

◆ Scalar

typedef SCALAR Scalar

Function Documentation

◆ bench()

template<typename Transformation >
EIGEN_DONT_INLINE void bench ( const std::string &  msg,
const Transformation &  t 
)
86  {
87  cout << msg << " ";
89  std::cout << "\n";
90 }
t
Definition: plotPSD.py:36
static EIGEN_DONT_INLINE void run(const Transformation &t)
Definition: geometry.cpp:69

References bench_impl< Transformation, N >::run(), and plotPSD::t.

Referenced by main().

◆ main()

int main ( int argc  ,
char **  argv 
)
92  {
94  mat34.setRandom();
96  Transform<Scalar, 3, Affine> aff3(mat34);
99  Quaternion<Scalar> quat;
100  quat.setIdentity();
102  Matrix<Scalar, 3, 3> mat33;
103  mat33.setRandom();
104 
105  cout.precision(4);
106  std::cout << "N ";
107  for (int i = 0; i < SIZE; ++i) {
108  cout.width(9);
109  cout << i + 1 << " ";
110  }
111  cout << "\n";
112 
113  bench("matrix 3x3", mat33);
114  bench("quaternion", quat);
115  bench("quat-mat ", quatmat);
116  bench("isometry3 ", iso3);
117  bench("affine3 ", aff3);
118  bench("c affine3 ", caff3);
119  bench("proj3 ", proj3);
120 }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Derived & setRandom(Index size)
Definition: Random.h:147
EIGEN_DEVICE_FUNC QuaternionBase & setIdentity()
Definition: Eigen/Eigen/src/Geometry/Quaternion.h:115
The quaternion class used to represent 3D orientations and rotations.
Definition: Eigen/Eigen/src/Geometry/Quaternion.h:285
Represents an homogeneous transformation in a N dimensional space.
Definition: Transform.h:192
#define SIZE
Definition: geometry.cpp:14
EIGEN_DONT_INLINE void bench(const std::string &msg, const Transformation &t)
Definition: geometry.cpp:86
Definition: geometry.cpp:39

References bench(), i, Eigen::QuaternionBase< Derived >::setIdentity(), Eigen::PlainObjectBase< Derived >::setRandom(), and SIZE.

◆ transform() [1/4]

template<typename Scalar , typename Data >
EIGEN_DONT_INLINE void transform ( const Quaternion< Scalar > &  t,
Data &  data 
)
32  {
33  EIGEN_ASM_COMMENT("begin quat");
34  for (int i = 0; i < data.cols(); ++i) data.col(i) = t * data.col(i);
35  EIGEN_ASM_COMMENT("end quat");
36 }
#define EIGEN_ASM_COMMENT(X)
Definition: Macros.h:972
int data[]
Definition: Map_placement_new.cpp:1

References data, EIGEN_ASM_COMMENT, i, and plotPSD::t.

◆ transform() [2/4]

template<typename QType , typename Data >
EIGEN_DONT_INLINE void transform ( const ToRotationMatrixWrapper< QType > &  t,
Data &  data 
)
47  {
48  EIGEN_ASM_COMMENT("begin quat via mat");
49  data = t.object.toRotationMatrix() * data;
50  EIGEN_ASM_COMMENT("end quat via mat");
51 }

References data, EIGEN_ASM_COMMENT, and plotPSD::t.

◆ transform() [3/4]

template<typename Scalar , int Dim, typename Data >
EIGEN_DONT_INLINE void transform ( const Transform< Scalar, Dim, Projective > &  t,
Data &  data 
)
54  {
55  data = (t * data.colwise().homogeneous()).template block<Dim, Data::ColsAtCompileTime>(0, 0);
56 }

References data, and plotPSD::t.

◆ transform() [4/4]

template<typename Transformation , typename Data >
EIGEN_DONT_INLINE void transform ( const Transformation &  t,
Data &  data 
)
25  {
26  EIGEN_ASM_COMMENT("begin");
27  data = t * data;
28  EIGEN_ASM_COMMENT("end");
29 }

References data, EIGEN_ASM_COMMENT, and plotPSD::t.

Referenced by addObject(), helpers::lower(), SmallMatrix< numberOfRows, numberOfColumns >::operator*(), SmallVector< numberOfRows >::operator*(), SmallVector< numberOfRows >::operator*=(), SmallMatrix< numberOfRows, numberOfColumns >::operator*=(), SmallMatrix< numberOfRows, numberOfColumns >::operator+(), SmallVector< numberOfRows >::operator+(), SmallMatrix< numberOfRows, numberOfColumns >::operator+=(), SmallVector< numberOfRows >::operator+=(), SmallMatrix< numberOfRows, numberOfColumns >::operator-(), SmallVector< numberOfRows >::operator-(), SmallMatrix< numberOfRows, numberOfColumns >::operator-=(), SmallVector< numberOfRows >::operator-=(), SmallVector< numberOfRows >::operator/(), SmallMatrix< numberOfRows, numberOfColumns >::operator/(), SmallVector< numberOfRows >::operator/=(), SmallMatrix< numberOfRows, numberOfColumns >::operator/=(), Eigen::internal::permutation_matrix_product< ExpressionType, Side, Transposed, SparseShape >::permute_inner(), bench_impl< Transformation, N >::run(), Eigen::internal::transform_construct_from_matrix< Other, AffineCompact, Options, Dim, HDim, HDim, HDim >::run(), Eigen::internal::transform_construct_from_matrix< Other, Mode, Options, Dim, HDim, Dim, Dim >::run(), Eigen::internal::transform_construct_from_matrix< Other, Mode, Options, Dim, HDim, Dim, HDim >::run(), Eigen::internal::transform_construct_from_matrix< Other, Mode, Options, Dim, HDim, HDim, HDim >::run(), and BasicUnionOfWalls::writeVTK().