71 lines
1.2 KiB
C
71 lines
1.2 KiB
C
#pragma once
|
|
|
|
#include <kinc/global.h>
|
|
|
|
/*! \file core.h
|
|
\brief Just a few very simple additions to math.h
|
|
the C-lib.
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define KINC_PI 3.141592654
|
|
#define KINC_TAU 6.283185307
|
|
|
|
KINC_FUNC float kinc_cot(float x);
|
|
KINC_FUNC float kinc_round(float value);
|
|
KINC_FUNC float kinc_abs(float value);
|
|
KINC_FUNC float kinc_min(float a, float b);
|
|
KINC_FUNC float kinc_max(float a, float b);
|
|
KINC_FUNC int kinc_mini(int a, int b);
|
|
KINC_FUNC int kinc_maxi(int a, int b);
|
|
KINC_FUNC float kinc_clamp(float value, float minValue, float maxValue);
|
|
|
|
#ifdef KINC_IMPLEMENTATION_MATH
|
|
#define KINC_IMPLEMENTATION
|
|
#endif
|
|
|
|
#ifdef KINC_IMPLEMENTATION
|
|
|
|
#include <math.h>
|
|
|
|
float kinc_cot(float x) {
|
|
return cosf(x) / sinf(x);
|
|
}
|
|
|
|
float kinc_round(float value) {
|
|
return floorf(value + 0.5f);
|
|
}
|
|
|
|
float kinc_abs(float value) {
|
|
return value < 0 ? -value : value;
|
|
}
|
|
|
|
float kinc_min(float a, float b) {
|
|
return a > b ? b : a;
|
|
}
|
|
|
|
float kinc_max(float a, float b) {
|
|
return a > b ? a : b;
|
|
}
|
|
|
|
int kinc_mini(int a, int b) {
|
|
return a > b ? b : a;
|
|
}
|
|
|
|
int kinc_maxi(int a, int b) {
|
|
return a > b ? a : b;
|
|
}
|
|
|
|
float kinc_clamp(float value, float minValue, float maxValue) {
|
|
return kinc_max(minValue, kinc_min(maxValue, value));
|
|
}
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|