MCPcopy Create free account
hub / github.com/OneLoneCoder/olcPixelGameEngine / Math

Class Math

extensions/olcPGEX_Graphics3D.h:147–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected