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