#ifndef C_API_PROTOCOL_MSGS_EDGE_H
#define C_API_PROTOCOL_MSGS_EDGE_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>
#include <stddef.h>
#include "protocol_msgs/Trajectory.h"
#include "protocol_msgs/Action.h"

#define PROTOCOL_MSGS_EDGE_ORIENTATION_GLOBAL "GLOBAL"
#define PROTOCOL_MSGS_EDGE_ORIENTATION_TANGENTIAL "TANGENTIAL"

typedef struct
{
  char *edgeId;
  int32_t sequenceId;
  char *edgeDescription;
  uint8_t released;
  char *startNodeId;
  char *endNodeId;
  double maxSpeed;
  double maxHeight;
  double minHeight;
  double orientation;
  char *orientationType;
  char *direction;
  uint8_t rotationAllowed;
  double maxRotationSpeed;
  Trajectory trajectory;
  double length;
  Action *actions;
  size_t actions_count;
} Edge;

#ifdef __cplusplus
}
#endif

#endif // C_API_PROTOCOL_MSGS_EDGE_H
