52 lines
No EOL
1.2 KiB
C++
52 lines
No EOL
1.2 KiB
C++
|
|
#ifndef SPECTRE_MATH_MATH_H
|
|
#define SPECTRE_MATH_MATH_H
|
|
|
|
#include "Vector3.h"
|
|
#include "Vector2.h"
|
|
#include "Matrix4.h"
|
|
|
|
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);
|
|
};
|
|
|
|
#endif /* SPECTRE_MATH_MATH_H */ |