hx3d
1
2D/3D Simple Game Framework
|
Math structures and functions. More...
Classes | |
class | Function |
Math function definition. More... | |
class | WeightedRandom |
Weighted random generator with callbacks. More... | |
Enumerations |
Functions | |
template<class T > | |
T | interpolate (T a, T b, float t, Interpolation type) |
Interpolate between two values. More... | |
template<class T > | |
bool | epsEqual (T v1, T v2) |
Test values equality with epsilon. More... | |
float | clamp (float value, float min, float max) |
Simple clamp. More... | |
float | mclamp (float value, float min, float max) |
Modulo clamp. More... | |
int | modulo (int a, int b) |
Modulo. Handles negative values ! More... | |
float | log2 (int a) |
Calculate the log2. More... | |
float | randfloat () |
Generate a random float between 0.0 and 1.0. More... | |
int | random (int min, int max) |
Generate a random integer between min and max. More... | |
bool | flip_coin () |
Generate a random boolean. More... | |
glm::vec3 | rotate (glm::vec3 vector, float angle, glm::vec3 axis) |
Rotate a vector of an angle on one/multiple axis. More... | |
glm::vec2 | cross (glm::vec2 vec, float v) |
Calculate the cross product vector between a 2D vector and a scalar. More... | |
glm::vec2 | cross (float v, glm::vec2 vec) |
Calculate the cross product vector between a scalar and a 2D vector. More... | |
float | cross (glm::vec2 vec1, glm::vec2 vec2) |
Calculate the cross product between two 2D vectors. More... | |
glm::vec2 | normalize (glm::vec2 vec) |
Normalize a 2D vector. More... | |
float | squareLength (glm::vec2 vec) |
Compute the square length of a 2D vector. More... | |
float | angleBetweenVecs (const glm::vec2 vec1, const glm::vec2 vec2) |
Compute the angle between two 2D vectors. More... | |
Variables | |
const float | kEpsilon = 0.0001 |
Float epsilon. | |
const double | PI = 3.141592653589793238460 |
PI. | |
Math structures and functions.
float hx3d::math::angleBetweenVecs | ( | const glm::vec2 | vec1, |
const glm::vec2 | vec2 | ||
) |
Compute the angle between two 2D vectors.
vec1 | First vector |
vec2 | Second vector |
Definition at line 65 of file vector_utils.cpp.
float hx3d::math::clamp | ( | float | value, |
float | min, | ||
float | max | ||
) |
Simple clamp.
Block the value between min and max.
value | Value |
min | Min |
max | Max |
Definition at line 28 of file number_utils.cpp.
glm::vec2 hx3d::math::cross | ( | glm::vec2 | vec, |
float | v | ||
) |
Calculate the cross product vector between a 2D vector and a scalar.
vec | 2D vector |
v | Scalar |
Definition at line 44 of file vector_utils.cpp.
glm::vec2 hx3d::math::cross | ( | float | v, |
glm::vec2 | vec | ||
) |
Calculate the cross product vector between a scalar and a 2D vector.
v | Scalar |
vec | 2D vector |
Definition at line 41 of file vector_utils.cpp.
float hx3d::math::cross | ( | glm::vec2 | vec1, |
glm::vec2 | vec2 | ||
) |
Calculate the cross product between two 2D vectors.
vec1 | First vector |
vec2 | Second vector |
Definition at line 47 of file vector_utils.cpp.
|
inline |
Test values equality with epsilon.
v1 | First value |
v2 | Second value |
Definition at line 27 of file vector_utils.inl.hpp.
bool hx3d::math::flip_coin | ( | ) |
T hx3d::math::interpolate | ( | T | a, |
T | b, | ||
float | t, | ||
Interpolation | type | ||
) |
Interpolate between two values.
a | Starting value |
b | End value |
t | Current time (between 0 and 1) |
type | Interpolation function |
Definition at line 54 of file interpolation.inl.hpp.
float hx3d::math::log2 | ( | int | a | ) |
float hx3d::math::mclamp | ( | float | value, |
float | min, | ||
float | max | ||
) |
Modulo clamp.
Block the value between min and max.
If the value is > to max, it goes back to min. If the value is < to min, it goes back to max.
value | Value |
min | Min |
max | Max |
Definition at line 34 of file number_utils.cpp.
int hx3d::math::modulo | ( | int | a, |
int | b | ||
) |
Modulo. Handles negative values !
a | First value |
b | Second value |
Definition at line 40 of file number_utils.cpp.
glm::vec2 hx3d::math::normalize | ( | glm::vec2 | vec | ) |
Normalize a 2D vector.
vec | Vector |
Definition at line 51 of file vector_utils.cpp.
float hx3d::math::randfloat | ( | ) |
Generate a random float between 0.0 and 1.0.
Definition at line 70 of file random.cpp.
int hx3d::math::random | ( | int | min, |
int | max | ||
) |
Generate a random integer between min and max.
min | Min value |
max | Max value |
Definition at line 74 of file random.cpp.
glm::vec3 hx3d::math::rotate | ( | glm::vec3 | vector, |
float | angle, | ||
glm::vec3 | axis | ||
) |
Rotate a vector of an angle on one/multiple axis.
vector | Vector |
angle | Angle |
axis | Direction(s) |
Definition at line 28 of file vector_utils.cpp.
float hx3d::math::squareLength | ( | glm::vec2 | vec | ) |
Compute the square length of a 2D vector.
vec | Vector |
Definition at line 61 of file vector_utils.cpp.