1
0
Fork 0
spectre/include/Spectre/Math/Math.h
Henrik Hautakoski e10daeaaa6
Move everything from global namespace to "sp" namespace
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.
2019-09-30 19:10:17 +02:00

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 */