| #include <unsupported/Eigen/EulerAngles> | 
 | #include <iostream> | 
 |  | 
 | using namespace Eigen; | 
 |  | 
 | int main() | 
 | { | 
 |   // A common Euler system by many armies around the world, | 
 |   //  where the first one is the azimuth(the angle from the north - | 
 |   //   the same angle that is show in compass) | 
 |   //  and the second one is elevation(the angle from the horizon) | 
 |   //  and the third one is roll(the angle between the horizontal body | 
 |   //   direction and the plane ground surface) | 
 |   // Keep remembering we're using radian angles here! | 
 |   typedef EulerSystem<-EULER_Z, EULER_Y, EULER_X> MyArmySystem; | 
 |   typedef EulerAngles<double, MyArmySystem> MyArmyAngles; | 
 |    | 
 |   MyArmyAngles vehicleAngles( | 
 |     3.14/*PI*/ / 2, /* heading to east, notice that this angle is counter-clockwise */ | 
 |     -0.3, /* going down from a mountain */ | 
 |     0.1); /* slightly rolled to the right */ | 
 |    | 
 |   // Some Euler angles representation that our plane use. | 
 |   EulerAnglesZYZd planeAngles(0.78474, 0.5271, -0.513794); | 
 |    | 
 |   MyArmyAngles planeAnglesInMyArmyAngles(planeAngles); | 
 |    | 
 |   std::cout << "vehicle angles(MyArmy):     " << vehicleAngles << std::endl; | 
 |   std::cout << "plane angles(ZYZ):        " << planeAngles << std::endl; | 
 |   std::cout << "plane angles(MyArmy):     " << planeAnglesInMyArmyAngles << std::endl; | 
 |    | 
 |   // Now lets rotate the plane a little bit | 
 |   std::cout << "==========================================================\n"; | 
 |   std::cout << "rotating plane now!\n"; | 
 |   std::cout << "==========================================================\n"; | 
 |    | 
 |   Quaterniond planeRotated = AngleAxisd(-0.342, Vector3d::UnitY()) * planeAngles; | 
 |    | 
 |   planeAngles = planeRotated; | 
 |   planeAnglesInMyArmyAngles = planeRotated; | 
 |    | 
 |   std::cout << "new plane angles(ZYZ):     " << planeAngles << std::endl; | 
 |   std::cout << "new plane angles(MyArmy): " << planeAnglesInMyArmyAngles << std::endl; | 
 |    | 
 |   return 0; | 
 | } |