#ifndef GEOMETRIE_H
#define GEOMETRIE_H

#ifndef M_PI
#define M_PI (3.14159265358979323846)
#endif

#define DEGRE_EN_RADIAN  (M_PI / 180.)
#define DISTANCE_INVALIDE (-1.)

struct position_t{
    float x_mm, y_mm;
    float angle_radian;
};

float Geometrie_get_angle_normalisee(float angle);
unsigned int Geometrie_compare_angle(float angle, float angle_min, float angle_max);
unsigned int Geometrie_intersecte_plage_angle(float angle1_min, float angle1_max, float angle2_min, float angle2_max);
float Geometrie_get_angle_optimal(float angle_depart, float angle_souhaite);
struct position_t Geometrie_deplace(struct position_t position_depart, float distance_mm);

#endif