51 lines
1.1 KiB
C++
51 lines
1.1 KiB
C++
|
|
#ifndef SPECTRE_MATH_MATH_H
|
|
#define SPECTRE_MATH_MATH_H
|
|
|
|
#include "Transform.h"
|
|
#include "Vector4.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);
|
|
|
|
//
|
|
Vector2f Vector2UnProject(Vector2f point, Transform InverseMVP, Vector4u screen);
|
|
|
|
// Create a 2D rotation matrix. (rotation around Z-axis)
|
|
Matrix4f rotation(float theta);
|
|
|
|
// Create a 2D translation matrix.
|
|
Matrix4f translate(float x, float y);
|
|
|
|
// Create a 2D scale matrix.
|
|
Matrix4f scale(float x, float y);
|
|
|
|
} } // namespace sp
|
|
|
|
#endif /* SPECTRE_MATH_MATH_H */
|