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
							 |