GLM Version 0.9.0

euler_angles.hpp

00001 
00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
00004 // Created : 2005-12-21
00005 // Updated : 2007-08-14
00006 // Licence : This source is under MIT License
00007 // File    : glm/gtx/euler_angles.h
00009 // Dependency:
00010 // - GLM core
00011 // - GLM_GTC_double_float
00012 // - GLM_GTC_half_float
00014 // ToDo:
00015 // - mat2 mat2GTX(const vec2& angles) undefined
00016 // - mat3 mat3GTX(const vec2& angles) undefined
00018 
00019 #ifndef glm_gtx_euler_angles
00020 #define glm_gtx_euler_angles
00021 
00022 // Dependency:
00023 #include "../glm.hpp"
00024 #include "../gtc/double_float.hpp"
00025 #include "../gtc/half_float.hpp"
00026 
00027 namespace glm
00028 {
00029     namespace gtx{
00031         namespace euler_angles
00032         {
00035                 template <typename valType> 
00036                 detail::tmat4x4<valType> eulerAngleX(
00037                         valType const & angleX);
00038 
00041                 template <typename valType> 
00042                 detail::tmat4x4<valType> eulerAngleY(
00043                         valType const & angleY);
00044 
00047                 template <typename valType> 
00048                 detail::tmat4x4<valType> eulerAngleZ(
00049                         valType const & angleZ);
00050 
00053                 template <typename valType> 
00054                 detail::tmat4x4<valType> eulerAngleXY(
00055                         valType const & angleX, 
00056                         valType const & angleY);
00057 
00060                 template <typename valType> 
00061                 detail::tmat4x4<valType> eulerAngleYX(
00062                         valType const & angleY, 
00063                         valType const & angleX);
00064 
00067                 template <typename valType> 
00068                 detail::tmat4x4<valType> eulerAngleXZ(
00069                         valType const & angleX, 
00070                         valType const & angleZ);
00071 
00074                 template <typename valType> 
00075                 detail::tmat4x4<valType> eulerAngleZX(
00076                         valType const & angleZ, 
00077                         valType const & angleX);
00078 
00081                 template <typename valType> 
00082                 detail::tmat4x4<valType> eulerAngleYZ(
00083                         valType const & angleY, 
00084                         valType const & angleZ);
00085 
00088                 template <typename valType> 
00089                 detail::tmat4x4<valType> eulerAngleZY(
00090                         valType const & angleZ, 
00091                         valType const & angleY);
00092 
00095                 template <typename valType> 
00096                 detail::tmat4x4<valType> eulerAngleYXZ(
00097                         valType const & yaw, 
00098                         valType const & pitch, 
00099                         valType const & roll);
00100 
00103                 template <typename valType> 
00104                 detail::tmat4x4<valType> yawPitchRoll(
00105                         valType const & yaw, 
00106                         valType const & pitch, 
00107                         valType const & roll);
00108 
00111                 template <typename T> 
00112                 detail::tmat2x2<T> orientate2(T const & angle);
00113 
00116                 template <typename T> 
00117                 detail::tmat3x3<T> orientate3(T const & angle);
00118 
00121                 template <typename T> 
00122                 detail::tmat3x3<T> orientate3(detail::tvec3<T> const & angles);
00123                 
00126                 template <typename T> 
00127                 detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles);
00128         }//namespace euler_angles
00129     }//namespace gtx
00130 }//namespace glm
00131 
00132 #include "euler_angles.inl"
00133 
00134 namespace glm{using namespace gtx::euler_angles;}
00135 
00136 #endif//glm_gtx_euler_angles