diff options
Diffstat (limited to 'source/modules/asura-utils/math/matrix44.h')
| -rw-r--r-- | source/modules/asura-utils/math/matrix44.h | 120 | 
1 files changed, 59 insertions, 61 deletions
diff --git a/source/modules/asura-utils/math/matrix44.h b/source/modules/asura-utils/math/matrix44.h index 7b66920..503242f 100644 --- a/source/modules/asura-utils/math/matrix44.h +++ b/source/modules/asura-utils/math/matrix44.h @@ -1,97 +1,95 @@  #ifndef _ASURA_MATRIX_H_  #define _ASURA_MATRIX_H_ +#include <asura-utils/Classes.h> +  #include "../Scripting/Portable.hpp" -namespace AsuraEngine -{ -	namespace Math -	{ +namespace_begin(AsuraEngine) +namespace_begin(Math) -		///  -		/// ҪתõOpenGLglm::mat4 -		/// https://blog.csdn.net/candycat1992/article/details/8830894 -		/// -		class Matrix44 -		{ -		public: +/// ҪתõOpenGLglm::mat4 +/// https://blog.csdn.net/candycat1992/article/details/8830894 +class Matrix44 +{ +public: -			static const Matrix44 Identity; +	static const Matrix44 Identity; -			Matrix44(); +	Matrix44(); -			Matrix44(const Matrix44& m); +	Matrix44(const Matrix44& m); -			~Matrix44(); +	~Matrix44(); -			void operator = (const Matrix44& m); +	void operator = (const Matrix44& m); -			void SetOrtho(float _left, float _right, float _bottom, float _top, float _near, float _far); +	void SetOrtho(float _left, float _right, float _bottom, float _top, float _near, float _far); -			Matrix44 operator * (const Matrix44 & m) const; +	Matrix44 operator * (const Matrix44 & m) const; -			void operator *= (const Matrix44 & m); +	void operator *= (const Matrix44 & m); -			const float* GetElements() const; +	const float* GetElements() const; -			void SetIdentity(); +	void SetIdentity(); -			void SetTranslation(float x, float y); +	void SetTranslation(float x, float y); -			void SetRotation(float r); +	void SetRotation(float r); -			void SetScale(float sx, float sy); +	void SetScale(float sx, float sy); -			void SetShear(float kx, float ky); +	void SetShear(float kx, float ky); -			void SetTransformation(float x, float y, float angle, float sx, float sy, float ox, float oy); +	void SetTransformation(float x, float y, float angle, float sx, float sy, float ox, float oy); -			void Translate(float x, float y); +	void Translate(float x, float y); -			void Rotate(float r); +	void Rotate(float r); -			void Scale(float sx, float sy); +	void Scale(float sx, float sy); -			void Transform(float x, float y, float angle, float sx, float sy, float ox, float oy); +	void Transform(float x, float y, float angle, float sx, float sy, float ox, float oy); -			///  -			/// Multiplies this Matrix44 with a shear transformation. -			/// @param kx Shear along the x-axis. -			/// @param ky Shear along the y-axis. -			///  -			void Shear(float kx, float ky); +	///  +	/// Multiplies this Matrix44 with a shear transformation. +	/// @param kx Shear along the x-axis. +	/// @param ky Shear along the y-axis. +	///  +	void Shear(float kx, float ky); -			void Ortho(float left, float right, float bottom, float top, float near, float far); +	void Ortho(float left, float right, float bottom, float top, float near, float far); -			/////  -			///// Transforms an array of vertices by this Matrix44. The sources and -			///// destination arrays may be the same. -			///// -			///// @param dst Storage for the transformed vertices. -			///// @param src The source vertices. -			///// @param size The number of vertices. -			/////  -			//void transform(Graphics::Vertex* dst, const Graphics::Vertex * src, int size) const; +	/////  +	///// Transforms an array of vertices by this Matrix44. The sources and +	///// destination arrays may be the same. +	///// +	///// @param dst Storage for the transformed vertices. +	///// @param src The source vertices. +	///// @param size The number of vertices. +	/////  +	//void transform(Graphics::Vertex* dst, const Graphics::Vertex * src, int size) const; -			/// -			/// ʽ -			/// -			float Calculate(); +	/// +	/// ʽ +	/// +	float Calculate(); -		private: +private: -			///  -			/// | e0 e4 e8  e12 | -			/// | e1 e5 e9  e13 | -			/// | e2 e6 e10 e14 | -			/// | e3 e7 e11 e15 | -			/// -			float e[16]; +	///  +	/// | e0 e4 e8  e12 | +	/// | e1 e5 e9  e13 | +	/// | e2 e6 e10 e14 | +	/// | e3 e7 e11 e15 | +	/// +	float e[16]; -		}; +}; -	}  -}  +namespace_end +namespace_end  namespace AEMath = AsuraEngine::Math;  | 
