#ifndef SPECTRE_MATH_MATH_H #define SPECTRE_MATH_MATH_H #include "Vector3.h" #include "Vector2.h" #include "Matrix4.h" namespace sp { namespace math { float rand(float min, float max); // Convert degrees to radians. float deg2rad(float deg); // ------------------------------ // Logarithmic functions. // ------------------------------ double log(double base, double value); double log2(double value); unsigned int nextPowerOfTwo(unsigned int value); // ------------------------------ // Matrix Projection functions. // ------------------------------ // Create a orthographic projection matrix. Matrix4f orthoProjection(float left, float right, float bottom, float top, float zNear = -1.0f, float zFar = 1.0f); // Create a 2D rotation matrix. (rotation around Z-axis) Matrix4f rotation(float theta); // Create a 2D translation matrix. Matrix4f translate(const Vector2f& v); // Create a 2D scale matrix. Matrix4f scale(const Vector2f& f); // Get translation part of a matrix. Vector3f getTranslate(const Matrix4f matrix); Vector3f getUpVector(const Matrix4f matrix); Vector3f getForwardVector(const Matrix4f matrix); } } // namespace sp #endif /* SPECTRE_MATH_MATH_H */