00001 
00002 
00004 
00005 
00006 
00007 
00009 
00010 
00011 
00013 
00014 #ifndef glm_gtx_transform2
00015 #define glm_gtx_transform2
00016 
00017 
00018 #include "../glm.hpp"
00019 #include "../gtx/transform.hpp"
00020 
00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00022 #       pragma message("GLM: GLM_GTX_transform2 extension included")
00023 #endif
00024 
00025 namespace glm{
00026 namespace gtx{
00027 namespace transform2 
00028 {
00029         using namespace gtx::transform;
00030 
00033 
00036         template <typename T> 
00037         detail::tmat3x3<T> shearX2D(
00038                 detail::tmat3x3<T> const & m, 
00039                 T y);
00040 
00043         template <typename T> 
00044         detail::tmat3x3<T> shearY2D(
00045                 detail::tmat3x3<T> const & m, 
00046                 T x);
00047 
00050         template <typename T> 
00051         detail::tmat4x4<T> shearX3D(
00052                 const detail::tmat4x4<T> & m,
00053                 T y, 
00054                 T z);
00055                 
00058         template <typename T> 
00059         detail::tmat4x4<T> shearY3D(
00060                 const detail::tmat4x4<T> & m, 
00061                 T x, 
00062                 T z);
00063                 
00066         template <typename T> 
00067         detail::tmat4x4<T> shearZ3D(
00068                 const detail::tmat4x4<T> & m, 
00069                 T x, 
00070                 T y);
00071 
00072         
00073         
00074         
00075 
00076         
00077         
00078         
00079                 
00082         template <typename T> 
00083         detail::tmat3x3<T> proj2D(
00084                 const detail::tmat3x3<T> & m, 
00085                 const detail::tvec3<T>& normal);
00086                                 
00089         template <typename T> 
00090         detail::tmat4x4<T> proj3D(
00091                 const detail::tmat4x4<T> & m, 
00092                 const detail::tvec3<T>& normal);
00093 
00096         template <typename valType> 
00097         detail::tmat4x4<valType> scaleBias(
00098                 valType scale, 
00099                 valType bias);
00100 
00103         template <typename valType> 
00104         detail::tmat4x4<valType> scaleBias(
00105                 detail::tmat4x4<valType> const & m, 
00106                 valType scale, 
00107                 valType bias);
00108 
00110 }
00111 }
00112 }
00113 
00114 #include "transform2.inl"
00115 
00116 namespace glm{using namespace gtx::transform2;}
00117 
00118 #endif//glm_gtx_transform2