/*!
 * @file  InventGUIPro.idl
 * @brief InventGUIPro IDL file
 *
 * @author RTC-Center
 *
 */

struct Frame {
  double mat[3][3];
  double pos[3];
};

struct Position2D {
  double x;
  double y;
  double theta;
};

struct Position3D {
  double x;
  double y;
  double z;
  double a;
  double b;
  double c;
};

interface RefHardCtrl {
  void RHMoveTo(in Position2D pos, in short direction);
  void RHStop();
  void RHReturn(in Position2D base);
  long RHGetStatus();
  Position3D RHGetArmPosition();
  Position2D RHGetLocalizePosition();
  void RHGuideReq(in Position2D entrance, in Position2D room, in string name);
  void RHDrinkServeReq(in Position2D visitor, in Position2D warehouse, in string name);
  void RHDrinkTransportReq(in Position2D dist, in string name);
  void RHGarbageCollectReq(in Position2D dist, in string name);
  void RHGarbageDumpReq(in Position2D dumpsite, in string name);
};
