syntax = "proto3";

package nf.common;

// When representing robot world space, Z is up
message Vec3 {
  float x = 1;
  float y = 2;
  float z = 3;
}

message Pose {
  Vec3 rotation = 1; // Rodriguez rotation vector
  Vec3 position = 2;
}

// Episode control commands

enum EpCommand {
  EPCOMMAND_NOTHING = 0;
  EPCOMMAND_ABANDON = 1;
  EPCOMMAND_END_RECORDING = 2;
  EPCOMMAND_START_OR_COMPLETE = 3;
  EPCOMMAND_EVAL_START = 4;
  EPCOMMAND_EVAL_STOP = 5;
}

message EpisodeControl {
  EpCommand command = 1;
}

enum AnchorType {
  // the type of anchor is not yet known
  ANCHORTYPE_UNSPECIFIED = 0;
  // four anchors each controlling one line
  ANCHORTYPE_PILOT = 1;
  // two anchors each controlling two lines
  ANCHORTYPE_ARPEGGIO = 2;
}