#include "Trajectoire.h"

enum etat_trajet_t{
    TRAJET_EN_COURS,
    TRAJET_TERMINE
};

// Vitesse et acceleration pour translation pure (en mm/s et mm/s²)
#define TRAJECT_CONFIG_AVANCE_DROIT 1000, 500
// Vitesse et acceleration pour un mouvement complexe (en mm et mm/s²)
#define TRAJECT_CONFIG_AVANCE_ET_TOURNE 300, 500
// Vitesse et acceleration pour une rotation (rad/s et rad/s²)
#define TRAJECT_CONFIG_ROTATION_PURE 2, 2


void Trajet_init();
void Trajet_config(double _vitesse_max_trajet_mm_s, double _acceleration_mm_ss);
void Trajet_debut_trajectoire(struct trajectoire_t trajectoire);
enum etat_trajet_t Trajet_avance(double temps_s);
struct position_t Trajet_get_consigne(void);
double Trajet_get_obstacle_mm(void);
void Trajet_set_obstacle_mm(double distance_mm);
void Trajet_stop(double);