Trace Engine
A Raycaster Engine in C
Loading...
Searching...
No Matches
trigonometry.h
Go to the documentation of this file.
1#ifndef _H_TRIGONOMETRY
2#define _H_TRIGONOMETRY
3
5#include <stdbool.h>
6
7#define PRECISION 0.0001
9#define DEGREE 0.0174533
11#define PI 3.1415926535
12#define UP_DIR (PI / 2)
13#define DOWN_DIR (3 * (UP_DIR))
14#define LEFT_DIR (PI)
15#define RIGHT_DIR (PI * 0)
17#define DEG_TO_RAD(angleInDegrees) (adjust_angle((angleInDegrees) * PI / 180.0))
18#define RAD_TO_DEG(angleInRadians) (adjust_angle(angleInRadians) * 180.0 / PI)
20#ifndef GAME_EXPORT
21 #include <stdlib.h>
22
30 #define trc_world_position_to_string(X) trc_world_position_to_string_with_name(X, #X)
31
35 char* trc_world_position_to_string_with_name(const trc_world_position_t pos, const char* pos_name);
36#else
37 #define debug_position(X) // Does nothing
38#endif
39
47
51float vector_length(const trc_world_position_t vector);
52
59
64
69
75float adjust_angle(const float angle);
76
83bool are_equals(const float f1, const float f2);
84
85#endif
Definition trc_world_position.h:7
trc_world_position_t scalar_multiplication(const trc_world_position_t vector, const float scalar)
Definition trigonometry.c:46
float angle_from_vector(trc_world_position_t vector)
Definition trigonometry.c:56
char * trc_world_position_to_string_with_name(const trc_world_position_t pos, const char *pos_name)
Definition trigonometry.c:10
float distance_between(const trc_world_position_t p1, const trc_world_position_t p2)
Definition trigonometry.c:25
bool are_equals(const float f1, const float f2)
Definition trigonometry.c:76
trc_world_position_t normalize_vector(const trc_world_position_t vector)
Definition trigonometry.c:35
float vector_length(const trc_world_position_t vector)
Definition trigonometry.c:30
float adjust_angle(const float angle)
Definition trigonometry.c:61