+
+enum trajectory_state trajectory_get_state(struct trajectory *traj)
+{
+ return traj->state;
+}
+
+/* distance unit conversions */
+
+double pos_mm2imp(struct trajectory *traj, double pos)
+{
+ return pos * traj->position->phys.distance_imp_per_mm;
+}
+
+double pos_imp2mm(struct trajectory *traj, double pos)
+{
+ return pos / traj->position->phys.distance_imp_per_mm;
+}
+
+double speed_mm2imp(struct trajectory *traj, double speed)
+{
+ return speed *
+ traj->position->phys.distance_imp_per_mm /
+ traj->cs_hz;
+}
+
+double speed_imp2mm(struct trajectory *traj, double speed)
+{
+ return speed * traj->cs_hz /
+ traj->position->phys.distance_imp_per_mm;
+}
+
+double acc_mm2imp(struct trajectory *traj, double acc)
+{
+ return acc * traj->position->phys.distance_imp_per_mm /
+ (traj->cs_hz * traj->cs_hz);
+}
+
+double acc_imp2mm(struct trajectory *traj, double acc)
+{
+ return acc * traj->cs_hz * traj->cs_hz /
+ traj->position->phys.distance_imp_per_mm;
+}
+
+/* angle unit conversions */
+
+double pos_rd2imp(struct trajectory *traj, double pos)
+{
+ return pos *
+ (traj->position->phys.distance_imp_per_mm *
+ traj->position->phys.track_mm / 2.);
+}
+
+double pos_imp2rd(struct trajectory *traj, double pos)
+{
+ return pos /
+ (traj->position->phys.distance_imp_per_mm *
+ traj->position->phys.track_mm / 2.);
+}
+
+double speed_rd2imp(struct trajectory *traj, double speed)
+{
+ return speed *
+ (traj->position->phys.distance_imp_per_mm *
+ traj->position->phys.track_mm /
+ (2. * traj->cs_hz));
+}
+
+double speed_imp2rd(struct trajectory *traj, double speed)
+{
+ return speed /
+ (traj->position->phys.distance_imp_per_mm *
+ traj->position->phys.track_mm /
+ (2. * traj->cs_hz));
+}
+
+double acc_rd2imp(struct trajectory *traj, double acc)
+{
+ return acc *
+ (traj->position->phys.distance_imp_per_mm *
+ traj->position->phys.track_mm /
+ (2. * traj->cs_hz * traj->cs_hz));
+}
+
+double acc_imp2rd(struct trajectory *traj, double acc)
+{
+ return acc /
+ (traj->position->phys.distance_imp_per_mm *
+ traj->position->phys.track_mm /
+ (2. * traj->cs_hz * traj->cs_hz));
+}
+