#pragma once // unitless trapezoidal struct Trapezoidal { float max_vel; float max_acc; float dist; }; struct Setpoint { float acceleration; // unitless float velocity; // unitless float position; // unitless bool complete; // the setpoint will no longer change }; // returns the position and velocity at the given time on a trapezoidal motion plan // this could be baked if too computationally expensive // not fully fuzzed struct Setpoint trapezoidal_planner(struct Trapezoidal* trapezoidal, float time); // returns the time a given plan will take float trapezoidal_time(struct Trapezoidal* trapezoidal);