grasp
All Data Structures Namespaces Functions Modules
SurfaceMeshWithBoundingBox.cpp
1 // This is an automatically-generated file.
2 // It could get re-generated if the ALLOW_IDL_GENERATION flag is on.
3 
4 #include <iCub/data3D/SurfaceMeshWithBoundingBox.h>
5 
6 namespace iCub { namespace data3D {
7 bool SurfaceMeshWithBoundingBox::read_mesh(yarp::os::idl::WireReader& reader) {
8  if (!reader.read(mesh)) {
9  reader.fail();
10  return false;
11  }
12  return true;
13 }
14 bool SurfaceMeshWithBoundingBox::nested_read_mesh(yarp::os::idl::WireReader& reader) {
15  if (!reader.readNested(mesh)) {
16  reader.fail();
17  return false;
18  }
19  return true;
20 }
21 bool SurfaceMeshWithBoundingBox::read_boundingBox(yarp::os::idl::WireReader& reader) {
22  if (!reader.read(boundingBox)) {
23  reader.fail();
24  return false;
25  }
26  return true;
27 }
28 bool SurfaceMeshWithBoundingBox::nested_read_boundingBox(yarp::os::idl::WireReader& reader) {
29  if (!reader.readNested(boundingBox)) {
30  reader.fail();
31  return false;
32  }
33  return true;
34 }
35 bool SurfaceMeshWithBoundingBox::read(yarp::os::idl::WireReader& reader) {
36  if (!read_mesh(reader)) return false;
37  if (!read_boundingBox(reader)) return false;
38  return !reader.isError();
39 }
40 
41 bool SurfaceMeshWithBoundingBox::read(yarp::os::ConnectionReader& connection) {
42  yarp::os::idl::WireReader reader(connection);
43  if (!reader.readListHeader(6)) return false;
44  return read(reader);
45 }
46 
47 bool SurfaceMeshWithBoundingBox::write_mesh(yarp::os::idl::WireWriter& writer) {
48  if (!writer.write(mesh)) return false;
49  return true;
50 }
51 bool SurfaceMeshWithBoundingBox::nested_write_mesh(yarp::os::idl::WireWriter& writer) {
52  if (!writer.writeNested(mesh)) return false;
53  return true;
54 }
55 bool SurfaceMeshWithBoundingBox::write_boundingBox(yarp::os::idl::WireWriter& writer) {
56  if (!writer.write(boundingBox)) return false;
57  return true;
58 }
59 bool SurfaceMeshWithBoundingBox::nested_write_boundingBox(yarp::os::idl::WireWriter& writer) {
60  if (!writer.writeNested(boundingBox)) return false;
61  return true;
62 }
63 bool SurfaceMeshWithBoundingBox::write(yarp::os::idl::WireWriter& writer) {
64  if (!write_mesh(writer)) return false;
65  if (!write_boundingBox(writer)) return false;
66  return !writer.isError();
67 }
68 
69 bool SurfaceMeshWithBoundingBox::write(yarp::os::ConnectionWriter& connection) {
70  yarp::os::idl::WireWriter writer(connection);
71  if (!writer.writeListHeader(6)) return false;
72  return write(writer);
73 }
74 bool SurfaceMeshWithBoundingBox::Editor::write(yarp::os::ConnectionWriter& connection) {
75  if (!isValid()) return false;
76  yarp::os::idl::WireWriter writer(connection);
77  if (!writer.writeListHeader(dirty_count+1)) return false;
78  if (!writer.writeString("patch")) return false;
79  if (is_dirty_mesh) {
80  if (!writer.writeListHeader(3)) return false;
81  if (!writer.writeString("set")) return false;
82  if (!writer.writeString("mesh")) return false;
83  if (!obj->nested_write_mesh(writer)) return false;
84  }
85  if (is_dirty_boundingBox) {
86  if (!writer.writeListHeader(3)) return false;
87  if (!writer.writeString("set")) return false;
88  if (!writer.writeString("boundingBox")) return false;
89  if (!obj->nested_write_boundingBox(writer)) return false;
90  }
91  return !writer.isError();
92 }
93 bool SurfaceMeshWithBoundingBox::Editor::read(yarp::os::ConnectionReader& connection) {
94  if (!isValid()) return false;
95  yarp::os::idl::WireReader reader(connection);
96  reader.expectAccept();
97  if (!reader.readListHeader()) return false;
98  int len = reader.getLength();
99  if (len==0) {
100  yarp::os::idl::WireWriter writer(reader);
101  if (writer.isNull()) return true;
102  if (!writer.writeListHeader(1)) return false;
103  writer.writeString("send: 'help' or 'patch (param1 val1) (param2 val2)'");
104  return true;
105  }
106  yarp::os::ConstString tag;
107  if (!reader.readString(tag)) return false;
108  if (tag=="help") {
109  yarp::os::idl::WireWriter writer(reader);
110  if (writer.isNull()) return true;
111  if (!writer.writeListHeader(2)) return false;
112  if (!writer.writeTag("many",1, 0)) return false;
113  if (reader.getLength()>0) {
114  yarp::os::ConstString field;
115  if (!reader.readString(field)) return false;
116  if (field=="mesh") {
117  if (!writer.writeListHeader(1)) return false;
118  if (!writer.writeString("SurfaceMesh mesh")) return false;
119  }
120  if (field=="boundingBox") {
121  if (!writer.writeListHeader(1)) return false;
122  if (!writer.writeString("Box3D boundingBox")) return false;
123  }
124  }
125  if (!writer.writeListHeader(3)) return false;
126  writer.writeString("*** Available fields:");
127  writer.writeString("mesh");
128  writer.writeString("boundingBox");
129  return true;
130  }
131  bool nested = true;
132  bool have_act = false;
133  if (tag!="patch") {
134  if ((len-1)%2 != 0) return false;
135  len = 1 + ((len-1)/2);
136  nested = false;
137  have_act = true;
138  }
139  for (int i=1; i<len; i++) {
140  if (nested && !reader.readListHeader(3)) return false;
141  yarp::os::ConstString act;
142  yarp::os::ConstString key;
143  if (have_act) {
144  act = tag;
145  } else {
146  if (!reader.readString(act)) return false;
147  }
148  if (!reader.readString(key)) return false;
149  // inefficient code follows, bug paulfitz to improve it
150  if (key == "mesh") {
151  will_set_mesh();
152  if (!obj->nested_read_mesh(reader)) return false;
153  did_set_mesh();
154  } else if (key == "boundingBox") {
155  will_set_boundingBox();
156  if (!obj->nested_read_boundingBox(reader)) return false;
157  did_set_boundingBox();
158  } else {
159  // would be useful to have a fallback here
160  }
161  }
162  reader.accept();
163  yarp::os::idl::WireWriter writer(reader);
164  if (writer.isNull()) return true;
165  writer.writeListHeader(1);
166  writer.writeVocab(VOCAB2('o','k'));
167  return true;
168 }
169 
170 yarp::os::ConstString SurfaceMeshWithBoundingBox::toString() {
171  yarp::os::Bottle b;
172  b.read(*this);
173  return b.toString();
174 }
175 }} // namespace