initial commit
This commit is contained in:
		
							
								
								
									
										107
									
								
								lib/glm/gtx/transform2.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								lib/glm/gtx/transform2.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,107 @@ | ||||
| /// @ref gtx_transform2 | ||||
| /// @file glm/gtx/transform2.hpp | ||||
| /// | ||||
| /// @see core (dependence) | ||||
| /// @see gtx_transform (dependence) | ||||
| /// | ||||
| /// @defgroup gtx_transform2 GLM_GTX_transform2 | ||||
| /// @ingroup gtx | ||||
| /// | ||||
| /// @brief Add extra transformation matrices | ||||
| /// | ||||
| /// <glm/gtx/transform2.hpp> need to be included to use these functionalities. | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| // Dependency: | ||||
| #include "../glm.hpp" | ||||
| #include "../gtx/transform.hpp" | ||||
|  | ||||
| #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) | ||||
| #	pragma message("GLM: GLM_GTX_transform2 extension included") | ||||
| #endif | ||||
|  | ||||
| namespace glm | ||||
| { | ||||
| 	/// @addtogroup gtx_transform2 | ||||
| 	/// @{ | ||||
|  | ||||
| 	//! Transforms a matrix with a shearing on X axis. | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename T, precision P> | ||||
| 	GLM_FUNC_DECL tmat3x3<T, P> shearX2D( | ||||
| 		tmat3x3<T, P> const & m,  | ||||
| 		T y); | ||||
|  | ||||
| 	//! Transforms a matrix with a shearing on Y axis. | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename T, precision P>  | ||||
| 	GLM_FUNC_DECL tmat3x3<T, P> shearY2D( | ||||
| 		tmat3x3<T, P> const & m,  | ||||
| 		T x); | ||||
|  | ||||
| 	//! Transforms a matrix with a shearing on X axis | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename T, precision P>  | ||||
| 	GLM_FUNC_DECL tmat4x4<T, P> shearX3D( | ||||
| 		const tmat4x4<T, P> & m, | ||||
| 		T y,  | ||||
| 		T z); | ||||
|  | ||||
| 	//! Transforms a matrix with a shearing on Y axis. | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename T, precision P>  | ||||
| 	GLM_FUNC_DECL tmat4x4<T, P> shearY3D( | ||||
| 		const tmat4x4<T, P> & m,  | ||||
| 		T x,  | ||||
| 		T z); | ||||
|  | ||||
| 	//! Transforms a matrix with a shearing on Z axis.  | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename T, precision P>  | ||||
| 	GLM_FUNC_DECL tmat4x4<T, P> shearZ3D( | ||||
| 		const tmat4x4<T, P> & m,  | ||||
| 		T x,  | ||||
| 		T y); | ||||
|  | ||||
| 	//template <typename T> GLM_FUNC_QUALIFIER tmat4x4<T, P> shear(const tmat4x4<T, P> & m, shearPlane, planePoint, angle) | ||||
| 	// Identity + tan(angle) * cross(Normal, OnPlaneVector)     0 | ||||
| 	// - dot(PointOnPlane, normal) * OnPlaneVector              1 | ||||
|  | ||||
| 	// Reflect functions seem to don't work | ||||
| 	//template <typename T> tmat3x3<T, P> reflect2D(const tmat3x3<T, P> & m, const tvec3<T, P>& normal){return reflect2DGTX(m, normal);}									//!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension) | ||||
| 	//template <typename T> tmat4x4<T, P> reflect3D(const tmat4x4<T, P> & m, const tvec3<T, P>& normal){return reflect3DGTX(m, normal);}									//!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension) | ||||
| 		 | ||||
| 	//! Build planar projection matrix along normal axis. | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename T, precision P>  | ||||
| 	GLM_FUNC_DECL tmat3x3<T, P> proj2D( | ||||
| 		const tmat3x3<T, P> & m,  | ||||
| 		const tvec3<T, P>& normal); | ||||
|  | ||||
| 	//! Build planar projection matrix along normal axis. | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename T, precision P>  | ||||
| 	GLM_FUNC_DECL tmat4x4<T, P> proj3D( | ||||
| 		const tmat4x4<T, P> & m,  | ||||
| 		const tvec3<T, P>& normal); | ||||
|  | ||||
| 	//! Build a scale bias matrix.  | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename valType, precision P>  | ||||
| 	GLM_FUNC_DECL tmat4x4<valType, P> scaleBias( | ||||
| 		valType scale,  | ||||
| 		valType bias); | ||||
|  | ||||
| 	//! Build a scale bias matrix. | ||||
| 	//! From GLM_GTX_transform2 extension. | ||||
| 	template <typename valType, precision P>  | ||||
| 	GLM_FUNC_DECL tmat4x4<valType, P> scaleBias( | ||||
| 		tmat4x4<valType, P> const & m,  | ||||
| 		valType scale,  | ||||
| 		valType bias); | ||||
|  | ||||
| 	/// @} | ||||
| }// namespace glm | ||||
|  | ||||
| #include "transform2.inl" | ||||
		Reference in New Issue
	
	Block a user
	 izenynn
					izenynn