24 #include <interfaces/OpenRaveInterface.h>
26 #include <core/exceptions/software.h>
46 OpenRaveInterface::OpenRaveInterface() : Interface()
48 data_size =
sizeof(OpenRaveInterface_data_t);
49 data_ptr = malloc(data_size);
50 data = (OpenRaveInterface_data_t *)data_ptr;
51 data_ts = (interface_data_ts_t *)data_ptr;
52 memset(data_ptr, 0, data_size);
53 add_fieldinfo(
IFT_UINT32,
"msgid", 1, &data->msgid);
54 add_fieldinfo(
IFT_BOOL,
"final", 1, &data->final);
55 add_fieldinfo(
IFT_UINT32,
"error_code", 1, &data->error_code);
56 add_fieldinfo(
IFT_BOOL,
"success", 1, &data->success);
57 add_messageinfo(
"StartViewerMessage");
58 add_messageinfo(
"AddObjectMessage");
59 add_messageinfo(
"DeleteObjectMessage");
60 add_messageinfo(
"DeleteAllObjectsMessage");
61 add_messageinfo(
"AttachObjectMessage");
62 add_messageinfo(
"ReleaseObjectMessage");
63 add_messageinfo(
"ReleaseAllObjectsMessage");
64 add_messageinfo(
"MoveObjectMessage");
65 add_messageinfo(
"RotateObjectQuatMessage");
66 add_messageinfo(
"RotateObjectMessage");
67 add_messageinfo(
"RenameObjectMessage");
68 unsigned char tmp_hash[] = {0xac, 0x95, 0xde, 0xc, 0xea, 0xa4, 0x97, 0x56, 0x5c, 0x46, 0x11, 0x5b, 0xf7, 0x60, 0x41, 0xb};
73 OpenRaveInterface::~OpenRaveInterface()
107 data->msgid = new_msgid;
140 data->final = new_final;
153 return data->error_code;
175 data->error_code = new_error_code;
186 return data->success;
206 data->success = new_success;
214 if ( strncmp(
"StartViewerMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
216 }
else if ( strncmp(
"AddObjectMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
218 }
else if ( strncmp(
"DeleteObjectMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
219 return new DeleteObjectMessage();
220 }
else if ( strncmp(
"DeleteAllObjectsMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
221 return new DeleteAllObjectsMessage();
222 }
else if ( strncmp(
"AttachObjectMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
223 return new AttachObjectMessage();
224 }
else if ( strncmp(
"ReleaseObjectMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
225 return new ReleaseObjectMessage();
226 }
else if ( strncmp(
"ReleaseAllObjectsMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
227 return new ReleaseAllObjectsMessage();
228 }
else if ( strncmp(
"MoveObjectMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
229 return new MoveObjectMessage();
230 }
else if ( strncmp(
"RotateObjectQuatMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
231 return new RotateObjectQuatMessage();
232 }
else if ( strncmp(
"RotateObjectMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
233 return new RotateObjectMessage();
234 }
else if ( strncmp(
"RenameObjectMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
235 return new RenameObjectMessage();
237 throw UnknownTypeException(
"The given type '%s' does not match any known "
238 "message type for this interface type.",
type);
249 const OpenRaveInterface *oi =
dynamic_cast<const OpenRaveInterface *
>(other);
251 throw TypeMismatchException(
"Can only copy values from interface of same type (%s vs. %s)",
252 type(), other->type());
254 memcpy(data, oi->data,
sizeof(OpenRaveInterface_data_t));
260 throw UnknownTypeException(
"Unknown enum type %s", enumtype);
275 data_size =
sizeof(StartViewerMessage_data_t);
278 data = (StartViewerMessage_data_t *)
data_ptr;
296 data = (StartViewerMessage_data_t *)
data_ptr;
324 data_size =
sizeof(AddObjectMessage_data_t);
327 data = (AddObjectMessage_data_t *)
data_ptr;
329 strncpy(data->name, ini_name, 30-1);
330 data->name[30-1] = 0;
331 strncpy(data->path, ini_path, 1024-1);
332 data->path[1024-1] = 0;
339 data_size =
sizeof(AddObjectMessage_data_t);
342 data = (AddObjectMessage_data_t *)
data_ptr;
362 data = (AddObjectMessage_data_t *)
data_ptr;
394 strncpy(data->name, new_name,
sizeof(data->name)-1);
395 data->name[
sizeof(data->name)-1] = 0;
425 strncpy(data->path, new_path,
sizeof(data->path)-1);
426 data->path[
sizeof(data->path)-1] = 0;
451 data_size =
sizeof(DeleteObjectMessage_data_t);
454 data = (DeleteObjectMessage_data_t *)
data_ptr;
456 strncpy(data->name, ini_name, 30-1);
457 data->name[30-1] = 0;
463 data_size =
sizeof(DeleteObjectMessage_data_t);
466 data = (DeleteObjectMessage_data_t *)
data_ptr;
485 data = (DeleteObjectMessage_data_t *)
data_ptr;
517 strncpy(data->name, new_name,
sizeof(data->name)-1);
518 data->name[
sizeof(data->name)-1] = 0;
541 data_size =
sizeof(DeleteAllObjectsMessage_data_t);
544 data = (DeleteAllObjectsMessage_data_t *)
data_ptr;
562 data = (DeleteAllObjectsMessage_data_t *)
data_ptr;
590 data_size =
sizeof(AttachObjectMessage_data_t);
593 data = (AttachObjectMessage_data_t *)
data_ptr;
595 strncpy(data->name, ini_name, 30-1);
596 data->name[30-1] = 0;
597 strncpy(data->manip_name, ini_manip_name, 30-1);
598 data->manip_name[30-1] = 0;
605 data_size =
sizeof(AttachObjectMessage_data_t);
608 data = (AttachObjectMessage_data_t *)
data_ptr;
628 data = (AttachObjectMessage_data_t *)
data_ptr;
660 strncpy(data->name, new_name,
sizeof(data->name)-1);
661 data->name[
sizeof(data->name)-1] = 0;
671 return data->manip_name;
691 strncpy(data->manip_name, new_manip_name,
sizeof(data->manip_name)-1);
692 data->manip_name[
sizeof(data->manip_name)-1] = 0;
717 data_size =
sizeof(ReleaseObjectMessage_data_t);
720 data = (ReleaseObjectMessage_data_t *)
data_ptr;
722 strncpy(data->name, ini_name, 30-1);
723 data->name[30-1] = 0;
729 data_size =
sizeof(ReleaseObjectMessage_data_t);
732 data = (ReleaseObjectMessage_data_t *)
data_ptr;
751 data = (ReleaseObjectMessage_data_t *)
data_ptr;
783 strncpy(data->name, new_name,
sizeof(data->name)-1);
784 data->name[
sizeof(data->name)-1] = 0;
807 data_size =
sizeof(ReleaseAllObjectsMessage_data_t);
810 data = (ReleaseAllObjectsMessage_data_t *)
data_ptr;
828 data = (ReleaseAllObjectsMessage_data_t *)
data_ptr;
858 data_size =
sizeof(MoveObjectMessage_data_t);
861 data = (MoveObjectMessage_data_t *)
data_ptr;
863 strncpy(data->name, ini_name, 30-1);
864 data->name[30-1] = 0;
876 data_size =
sizeof(MoveObjectMessage_data_t);
879 data = (MoveObjectMessage_data_t *)
data_ptr;
901 data = (MoveObjectMessage_data_t *)
data_ptr;
933 strncpy(data->name, new_name,
sizeof(data->name)-1);
934 data->name[
sizeof(data->name)-1] = 0;
1053 data_size =
sizeof(RotateObjectQuatMessage_data_t);
1056 data = (RotateObjectQuatMessage_data_t *)
data_ptr;
1058 strncpy(data->name, ini_name, 30-1);
1059 data->name[30-1] = 0;
1073 data_size =
sizeof(RotateObjectQuatMessage_data_t);
1076 data = (RotateObjectQuatMessage_data_t *)
data_ptr;
1099 data = (RotateObjectQuatMessage_data_t *)
data_ptr;
1131 strncpy(data->name, new_name,
sizeof(data->name)-1);
1132 data->name[
sizeof(data->name)-1] = 0;
1280 data_size =
sizeof(RotateObjectMessage_data_t);
1283 data = (RotateObjectMessage_data_t *)
data_ptr;
1285 strncpy(data->name, ini_name, 30-1);
1286 data->name[30-1] = 0;
1298 data_size =
sizeof(RotateObjectMessage_data_t);
1301 data = (RotateObjectMessage_data_t *)
data_ptr;
1323 data = (RotateObjectMessage_data_t *)
data_ptr;
1355 strncpy(data->name, new_name,
sizeof(data->name)-1);
1356 data->name[
sizeof(data->name)-1] = 0;
1472 data_size =
sizeof(RenameObjectMessage_data_t);
1475 data = (RenameObjectMessage_data_t *)
data_ptr;
1477 strncpy(data->name, ini_name, 30-1);
1478 data->name[30-1] = 0;
1479 strncpy(data->newName, ini_newName, 30-1);
1480 data->newName[30-1] = 0;
1487 data_size =
sizeof(RenameObjectMessage_data_t);
1490 data = (RenameObjectMessage_data_t *)
data_ptr;
1510 data = (RenameObjectMessage_data_t *)
data_ptr;
1542 strncpy(data->name, new_name,
sizeof(data->name)-1);
1543 data->name[
sizeof(data->name)-1] = 0;
1553 return data->newName;
1573 strncpy(data->newName, new_newName,
sizeof(data->newName)-1);
1574 data->newName[
sizeof(data->newName)-1] = 0;
1602 const DeleteObjectMessage *m2 =
dynamic_cast<const DeleteObjectMessage *
>(message);
1606 const DeleteAllObjectsMessage *m3 =
dynamic_cast<const DeleteAllObjectsMessage *
>(message);
1610 const AttachObjectMessage *m4 =
dynamic_cast<const AttachObjectMessage *
>(message);
1614 const ReleaseObjectMessage *m5 =
dynamic_cast<const ReleaseObjectMessage *
>(message);
1618 const ReleaseAllObjectsMessage *m6 =
dynamic_cast<const ReleaseAllObjectsMessage *
>(message);
1622 const MoveObjectMessage *m7 =
dynamic_cast<const MoveObjectMessage *
>(message);
1626 const RotateObjectQuatMessage *m8 =
dynamic_cast<const RotateObjectQuatMessage *
>(message);
1630 const RotateObjectMessage *m9 =
dynamic_cast<const RotateObjectMessage *
>(message);
1634 const RenameObjectMessage *m10 =
dynamic_cast<const RenameObjectMessage *
>(message);
1635 if ( m10 != NULL ) {
1642 EXPORT_INTERFACE(OpenRaveInterface)