Collection of Math Tools. More...
#include <MathTools.h>
Static Public Member Functions | |
static float | FastSqrt (float x) |
Calculate Sqrt without std::sqrt. | |
static float | RandFloat (float lower, float upper) |
Generates Random Floating Point Number using std::random_device. | |
static void | PointTowards (Matrix &world, Vect target) |
Points object towards target. | |
static float | DegToRad (float a) |
Converts angle in degrees to angle in radians. | |
static float | RadToDeg (float a) |
Converts angle in radians to angle in degrees. | |
static std::vector< Vect > | ScreenToWorldPersp (float x, float y) |
Takes a screen position and returns the world position at the near and far clip plane. | |
Translations | |
static void | ChangePos (Matrix &world, float x, float y, float z) |
Changes world position based on current position. | |
static void | SetPos (Matrix &world, float x, float y, float z) |
Sets world position to exact XYZ coordinates. | |
static float | GetXPos (const Matrix &world) |
Returns objects X Position. | |
static float | GetYPos (const Matrix &world) |
Returns objects Y Position. | |
static float | GetZPos (const Matrix &world) |
Returns objects Z Position. | |
Scaling | |
static void | ChangeScale (Matrix &world, float scaleFactor) |
Uniformly scales object, based on the objects current size * ScaleFactor. | |
static void | SetScale (Matrix &world, float scaleFactor) |
Sets object scaling uniformly to ScaleFactor. | |
static float | GetScaleFactor (const Matrix &world) |
Returns objects ScaleFactor assuming uniform scaling. | |
static float | GetScaleFactorImprecise (const Matrix &world) |
Returns objects ScaleFactor assuming uniform scaling using FastSqrt. | |
Rotations | |
static void | ChangeRotRad (Matrix &world, float x, float y, float z) |
Gets the angle of an object towards a point in radians. | |
static void | ChangeRotRadRev (Matrix &world, float x, float y, float z) |
Changes rotation in radians of object relative to current object: World * Rot. | |
static void | ChangeRotDeg (Matrix &world, float x, float y, float z) |
Changes rotation in degrees of object relative to current object: Rot * World. | |
static void | ChangeRotDegRev (Matrix &world, float x, float y, float z) |
Changes rotation in degrees of object relative to current object: World * Rot. | |
static void | SetRotRad (Matrix &world, float x, float y, float z) |
Sets rotation to an exact angle in radians based on XYZ. | |
static void | SetRotDeg (Matrix &world, float x, float y, float z) |
Sets rotation to an exact angle in degrees based on XYZ. | |
static float | GetRotXRad (const Matrix &world) |
Returns rotation of X in radians. | |
static float | GetRotYRad (const Matrix &world) |
Returns rotation of Y in radians. | |
static float | GetRotZRad (const Matrix &world) |
Returns rotation of Z in radians. | |
static float | GetRotXDeg (const Matrix &world) |
Returns rotation of X in degrees. | |
static float | GetRotYDeg (const Matrix &world) |
Returns rotation of Y in degrees. | |
static float | GetRotZDeg (const Matrix &world) |
Returns rotation of Z in degrees. | |
Collection of Math Tools.