#ifndef MY_DATA_TYPE_IDL
#define MY_DATA_TYPE_IDL

#include "BasicDataType.idl"

module MyDataType {

/** Object Pose structure with Object ID
 * id >= 0
 * pose = {r1, r2, r3, t1, r4, r5, r6, t2, r7, r8, r9, t3}
 *
 * r1 r2 r3 t1
 * r4 r5 r6 t2
 * r7 r8 r9 t3
 *  0  0  0  1
 */
struct ObjectPoseMat {
  long id;
  sequence<double> pose;
};

/* only one object
 */
struct TimedObjectPoseMat {
  RTC::Time tm;
  ObjectPoseMat data;
};

/* multi objects
 */
struct TimedObjectPoseMatSeq {
  RTC::Time tm;
  sequence<ObjectPoseMat> data;
};

}; /* module */

/* AIST Kawai Group Interface
 */
interface RecognitionService {
  long getModelID();
  void setModelID(in long ModelID);
};

#endif /* MY_DATA_TYPE_IDL */
