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 {
00027 namespace test{
00028 void main_gtx_transform2();
00029 }
00030
00031 namespace gtx{
00033 namespace transform2
00034 {
00035 using namespace gtx::transform;
00036
00039
00042 template <typename T>
00043 detail::tmat3x3<T> shearX2D(
00044 detail::tmat3x3<T> const & m,
00045 T y);
00046
00049 template <typename T>
00050 detail::tmat3x3<T> shearY2D(
00051 detail::tmat3x3<T> const & m,
00052 T x);
00053
00056 template <typename T>
00057 detail::tmat4x4<T> shearX3D(
00058 const detail::tmat4x4<T> & m,
00059 T y,
00060 T z);
00061
00064 template <typename T>
00065 detail::tmat4x4<T> shearY3D(
00066 const detail::tmat4x4<T> & m,
00067 T x,
00068 T z);
00069
00072 template <typename T>
00073 detail::tmat4x4<T> shearZ3D(
00074 const detail::tmat4x4<T> & m,
00075 T x,
00076 T y);
00077
00078
00079
00080
00081
00082
00083
00084
00085
00088 template <typename T>
00089 detail::tmat3x3<T> proj2D(
00090 const detail::tmat3x3<T> & m,
00091 const detail::tvec3<T>& normal);
00092
00095 template <typename T>
00096 detail::tmat4x4<T> proj3D(
00097 const detail::tmat4x4<T> & m,
00098 const detail::tvec3<T>& normal);
00099
00102 template <typename valType>
00103 detail::tmat4x4<valType> scaleBias(
00104 valType scale,
00105 valType bias);
00106
00109 template <typename valType>
00110 detail::tmat4x4<valType> scaleBias(
00111 detail::tmat4x4<valType> const & m,
00112 valType scale,
00113 valType bias);
00114
00116
00117 }
00118 }
00119 }
00120
00121 #include "transform2.inl"
00122
00123 namespace glm{using namespace gtx::transform2;}
00124
00125 #endif//glm_gtx_transform2