34 #define M_PI 3.14159265358979323846
38 #define DEG_TO_RAD ((M_PI * 2) / 360.0)
39 #define RAD_TO_DEG (1.0 / DEG_TO_RAD)
43 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
48 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
53 #define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
58 #define ABS(a) (((a) < 0) ? -(a) : (a))
62 #define isPowerOfTwo(x) (((x&(x - 1)) == 0) && (x != 0))
70 NEO_CORE_EXPORT
float loopFloat(
float val,
float min,
float max);
92 NEO_CORE_EXPORT
void sortFloatList(
int indexList[],
float floatList[],
int start,
int end);
93 NEO_CORE_EXPORT
void sortFloatList(
float floatList[],
int start,
int end);
112 NEO_CORE_EXPORT
float cubicInterpolation(
float y0,
float y1,
float y2,
float y3,
float mu);
114 NEO_CORE_EXPORT
float HermiteInterpolation(
float y0,
float y1,
float y2,
float y3,
float mu,
float tension,
float bias,
bool begin =
false,
bool end =
false);
117 NEO_CORE_EXPORT
float HueToRGB(
float v1,
float v2,
float vH);
NEO_CORE_EXPORT bool isRaySphereIntersection(const Vector3 &origin, const Vector3 &direction, const Vector3 &sphereCenter, float sphereRadius, Vector3 *point)
NEO_CORE_EXPORT float HermiteInterpolation(float y0, float y1, float y2, float y3, float mu, float tension, float bias, bool begin=false, bool end=false)
NEO_CORE_EXPORT Vector3 RGBToHSL(Vector3 rgbColor)
NEO_CORE_EXPORT bool isPointInBox(const Vector3 &point, const Vector3 &min, const Vector3 &max)
NEO_CORE_EXPORT float HueToRGB(float v1, float v2, float vH)
NEO_CORE_EXPORT bool isEdgeToEdge2dIntersection(const Vector2 &A, const Vector2 &B, const Vector2 &C, const Vector2 &D, Vector2 *I)
NEO_CORE_EXPORT void simplifyDP(float tol, Vector3 *v, int j, int k, int *mk)
NEO_CORE_EXPORT Vector3 HSLToRGB(Vector3 hslColor)
NEO_CORE_EXPORT float CatmullRomInterpolation(float y0, float y1, float y2, float y3, float mu)
NEO_CORE_EXPORT float linearInterpolation(float y1, float y2, float mu)
Definition: Matrix4x4.h:31
NEO_CORE_EXPORT unsigned int getNextPowerOfTwo(unsigned int x)
NEO_CORE_EXPORT Vector3 getTriangleNormal(const Vector3 &a, const Vector3 &b, const Vector3 &c)
NEO_CORE_EXPORT bool isRayPlaneIntersection(const Vector3 &origin, const Vector3 &direction, const Vector3 &planePoint, const Vector3 &planeNormal, Vector3 *point)
NEO_CORE_EXPORT Vector3 RGBToHSV(Vector3 rgbColor)
int end
Definition: Maths.h:79
int start
Definition: Maths.h:78
NEO_CORE_EXPORT Vector3 HSVToRGB(Vector3 HSVColor)
Implements a range data structure.
Definition: Maths.h:76
NEO_CORE_EXPORT float loopFloat(float val, float min, float max)
NEO_CORE_EXPORT bool isEdgeTriangleIntersection(const Vector3 &origin, const Vector3 &dest, const Vector3 &a, const Vector3 &b, const Vector3 &c, const Vector3 &normal, Vector3 *point)
NEO_CORE_EXPORT bool isEdgeToBoxCollision(const Vector3 &origin, const Vector3 &dest, const Vector3 &min, const Vector3 &max)
NEO_CORE_EXPORT bool isLineCircleIntersection(const Vector2 &origin, const Vector2 &dest, const Vector2 &circleCenter, float circleRadius)
NEO_CORE_EXPORT bool isEdgePlaneIntersection(const Vector3 &origin, const Vector3 &dest, const Vector3 &planePoint, const Vector3 &normal, Vector3 *point)
NEO_CORE_EXPORT bool isBoxToBoxCollision(const Vector3 &minA, const Vector3 &maxA, const Vector3 &minB, const Vector3 &maxB)
NEO_CORE_EXPORT void sortFloatList(int indexList[], float floatList[], int start, int end)
NEO_CORE_EXPORT float cubicInterpolation(float y0, float y1, float y2, float y3, float mu)
NEO_CORE_EXPORT bool isBoxToBox2dCollision(const Vector2 &minA, const Vector2 &maxA, const Vector2 &minB, const Vector2 &maxB)
NEO_CORE_EXPORT bool isPointInBox2d(const Vector2 &point, const Vector2 &min, const Vector2 &max)
Definition: Quaternion.h:31
NEO_CORE_EXPORT bool isPointInTriangle(const Vector3 &point, const Vector3 &a, const Vector3 &b, const Vector3 &c, const Vector3 &normal)