quaternion_demo.cpp File Reference
#include "quaternion_demo.h"
#include "icosphere.h"
#include <Eigen/Geometry>
#include <Eigen/QR>
#include <Eigen/LU>
#include <iostream>
#include <QEvent>
#include <QMouseEvent>
#include <QInputDialog>
#include <QGridLayout>
#include <QButtonGroup>
#include <QRadioButton>
#include <QDockWidget>
#include <QPushButton>
#include <QGroupBox>
#include "quaternion_demo.moc"

Classes

class  FancySpheres
 
class  EulerAngles< Scalar_ >
 

Functions

template<typename T >
T lerp (float t, const T &a, const T &b)
 
template<>
Quaternionf lerp (float t, const Quaternionf &a, const Quaternionf &b)
 
template<typename OrientationType >
static Frame lerpFrame (float alpha, const Frame &a, const Frame &b)
 
template<>
EulerAngles< float > lerp (float t, const EulerAngles< float > &a, const EulerAngles< float > &b)
 
int main (int argc, char *argv[])
 

Function Documentation

◆ lerp() [1/3]

template<>
EulerAngles<float> lerp ( float  t,
const EulerAngles< float > &  a,
const EulerAngles< float > &  b 
)
173  {
175  res.coeffs() = lerp(t, a.coeffs(), b.coeffs());
176  return res;
177 }
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
Scalar * b
Definition: benchVecAdd.cpp:17
Represents a rotation in a 3 dimensional space as three Euler angles.
Definition: unsupported/Eigen/src/EulerAngles/EulerAngles.h:103
const Scalar * a
Definition: level2_cplx_impl.h:32
t
Definition: plotPSD.py:36
T lerp(float t, const T &a, const T &b)
Definition: quaternion_demo.cpp:105

References a, b, lerp(), res, and plotPSD::t.

◆ lerp() [2/3]

template<>
Quaternionf lerp ( float  t,
const Quaternionf a,
const Quaternionf b 
)
111  {
112  return a.slerp(t, b);
113 }

References a, b, and plotPSD::t.

◆ lerp() [3/3]

template<typename T >
T lerp ( float  t,
const T a,
const T b 
)
105  {
106  return a * (1 - t) + b * t;
107 }

References a, b, and plotPSD::t.

Referenced by lerp(), and lerpFrame().

◆ lerpFrame()

template<typename OrientationType >
static Frame lerpFrame ( float  alpha,
const Frame a,
const Frame b 
)
inlinestatic
118  {
119  return Frame(lerp(alpha, a.position, b.position),
120  Quaternionf(lerp(alpha, OrientationType(a.orientation), OrientationType(b.orientation))));
121 }
Definition: camera.h:17
RealScalar alpha
Definition: level1_cplx_impl.h:151

References a, alpha, b, and lerp().

◆ main()

int main ( int argc  ,
char argv[] 
)
567  {
568  std::cout << "Navigation:\n";
569  std::cout << " left button: rotate around the target\n";
570  std::cout << " middle button: zoom\n";
571  std::cout << " left button + ctrl quake rotate (rotate around camera position)\n";
572  std::cout << " middle button + ctrl walk (progress along camera's z direction)\n";
573  std::cout << " left button: pan (translate in the XY camera's plane)\n\n";
574  std::cout << "R : move the camera to initial position\n";
575  std::cout << "A : start/stop animation\n";
576  std::cout << "C : clear the animation\n";
577  std::cout << "G : add a key frame\n";
578 
579  QApplication app(argc, argv);
580  QuaternionDemo demo;
581  demo.resize(600, 500);
582  demo.show();
583  return app.exec();
584 }
Definition: quaternion_demo.h:91