| 145 | };*/ |
| 146 | |
| 147 | class Math |
| 148 | { |
| 149 | public: |
| 150 | Math(); |
| 151 | public: |
| 152 | static vec3d Mat_MultiplyVector(mat4x4 &m, vec3d &i); |
| 153 | static mat4x4 Mat_MultiplyMatrix(mat4x4 &m1, mat4x4 &m2); |
| 154 | static mat4x4 Mat_MakeIdentity(); |
| 155 | static mat4x4 Mat_MakeRotationX(float fAngleRad); |
| 156 | static mat4x4 Mat_MakeRotationY(float fAngleRad); |
| 157 | static mat4x4 Mat_MakeRotationZ(float fAngleRad); |
| 158 | static mat4x4 Mat_MakeScale(float x, float y, float z); |
| 159 | static mat4x4 Mat_MakeTranslation(float x, float y, float z); |
| 160 | static mat4x4 Mat_MakeProjection(float fFovDegrees, float fAspectRatio, float fNear, float fFar); |
| 161 | static mat4x4 Mat_PointAt(vec3d &pos, vec3d &target, vec3d &up); |
| 162 | static mat4x4 Mat_QuickInverse(mat4x4 &m); // Only for Rotation/Translation Matrices |
| 163 | static mat4x4 Mat_Inverse(olc::GFX3D::mat4x4 &m); |
| 164 | |
| 165 | static vec3d Vec_Add(vec3d &v1, vec3d &v2); |
| 166 | static vec3d Vec_Sub(vec3d &v1, vec3d &v2); |
| 167 | static vec3d Vec_Mul(vec3d &v1, float k); |
| 168 | static vec3d Vec_Div(vec3d &v1, float k); |
| 169 | static float Vec_DotProduct(vec3d &v1, vec3d &v2); |
| 170 | static float Vec_Length(vec3d &v); |
| 171 | static vec3d Vec_Normalise(vec3d &v); |
| 172 | static vec3d Vec_CrossProduct(vec3d &v1, vec3d &v2); |
| 173 | static vec3d Vec_IntersectPlane(vec3d &plane_p, vec3d &plane_n, vec3d &lineStart, vec3d &lineEnd, float &t); |
| 174 | |
| 175 | static int Triangle_ClipAgainstPlane(vec3d plane_p, vec3d plane_n, triangle &in_tri, triangle &out_tri1, triangle &out_tri2); |
| 176 | }; |
| 177 | |
| 178 | enum RENDERFLAGS |
| 179 | { |
nothing calls this directly
no outgoing calls
no test coverage detected