00001 /********************* 00002 * Untitledurpose 00003 * uthor 00004 **********************/ 00005 00006 #pragma once 00007 00008 #include "constants.h" 00009 #include "GMathObject.h" 00010 #include "GVec4f.h" 00011 00012 class GMatrix16 : public GMathObject 00013 { 00014 public: 00015 float data[16]; 00016 00017 GMatrix16(); 00018 GMatrix16(const GMatrix16 &m); 00019 ~GMatrix16() {}; 00020 GMatrix16 operator*(const GMatrix16 &m); 00021 GMatrix16 operator=(const GMatrix16 &m); 00022 GVec4f operator*(const GVec4f &v); 00023 GMatrix16 &operator*=(const GMatrix16 &m); 00024 GMatrix16 getGlMatrix(); 00025 static GMatrix16 GetXRotationMatrix(float pitch); 00026 static GMatrix16 GetYRotationMatrix(float yaw); 00027 static GMatrix16 GetZRotationMatrix(float azimuth); 00028 static GMatrix16 GetTranslationMatrix(float x, float y, float z); 00029 static GMatrix16 GetScalingMatrix(float sx, float sy, float sz); 00030 static GMatrix16 GetUnityMatrix(void); 00031 static float GetDeterminant(GMatrix16 *base); 00032 static GMatrix16 GetInverseMatrix(GMatrix16 *base, float determinant); 00033 static GMatrix16 GetTransposeMatrix(GMatrix16 *base); 00034 };