When writing the X11 (linux) implementation there was a problem with X11 defining a "Display" type and we also have a Display class in the engine. So to fix that problem and minimize the risk for running into other name conflicts. We move everything from global namespace.
53 lines
No EOL
1.2 KiB
C++
53 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 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 */ |