grasp
All Data Structures Namespaces Functions Modules
Box3D.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/Box3D.h>
5 
6 namespace iCub { namespace data3D {
7 bool Box3D::read_corners(yarp::os::idl::WireReader& reader) {
8  {
9  corners.clear();
10  uint32_t _size48;
11  yarp::os::idl::WireState _etype51;
12  reader.readListBegin(_etype51, _size48);
13  corners.resize(_size48);
14  uint32_t _i52;
15  for (_i52 = 0; _i52 < _size48; ++_i52)
16  {
17  if (!reader.readNested(corners[_i52])) {
18  reader.fail();
19  return false;
20  }
21  }
22  reader.readListEnd();
23  }
24  return true;
25 }
26 bool Box3D::nested_read_corners(yarp::os::idl::WireReader& reader) {
27  {
28  corners.clear();
29  uint32_t _size53;
30  yarp::os::idl::WireState _etype56;
31  reader.readListBegin(_etype56, _size53);
32  corners.resize(_size53);
33  uint32_t _i57;
34  for (_i57 = 0; _i57 < _size53; ++_i57)
35  {
36  if (!reader.readNested(corners[_i57])) {
37  reader.fail();
38  return false;
39  }
40  }
41  reader.readListEnd();
42  }
43  return true;
44 }
45 bool Box3D::read_orientation(yarp::os::idl::WireReader& reader) {
46  if (!reader.read(orientation)) {
47  reader.fail();
48  return false;
49  }
50  return true;
51 }
52 bool Box3D::nested_read_orientation(yarp::os::idl::WireReader& reader) {
53  if (!reader.readNested(orientation)) {
54  reader.fail();
55  return false;
56  }
57  return true;
58 }
59 bool Box3D::read(yarp::os::idl::WireReader& reader) {
60  if (!read_corners(reader)) return false;
61  if (!read_orientation(reader)) return false;
62  return !reader.isError();
63 }
64 
65 bool Box3D::read(yarp::os::ConnectionReader& connection) {
66  yarp::os::idl::WireReader reader(connection);
67  if (!reader.readListHeader(2)) return false;
68  return read(reader);
69 }
70 
71 bool Box3D::write_corners(yarp::os::idl::WireWriter& writer) {
72  {
73  if (!writer.writeListBegin(BOTTLE_TAG_LIST, static_cast<uint32_t>(corners.size()))) return false;
74  std::vector<PointXYZ> ::iterator _iter58;
75  for (_iter58 = corners.begin(); _iter58 != corners.end(); ++_iter58)
76  {
77  if (!writer.writeNested((*_iter58))) return false;
78  }
79  if (!writer.writeListEnd()) return false;
80  }
81  return true;
82 }
83 bool Box3D::nested_write_corners(yarp::os::idl::WireWriter& writer) {
84  {
85  if (!writer.writeListBegin(BOTTLE_TAG_LIST, static_cast<uint32_t>(corners.size()))) return false;
86  std::vector<PointXYZ> ::iterator _iter59;
87  for (_iter59 = corners.begin(); _iter59 != corners.end(); ++_iter59)
88  {
89  if (!writer.writeNested((*_iter59))) return false;
90  }
91  if (!writer.writeListEnd()) return false;
92  }
93  return true;
94 }
95 bool Box3D::write_orientation(yarp::os::idl::WireWriter& writer) {
96  if (!writer.write(orientation)) return false;
97  return true;
98 }
99 bool Box3D::nested_write_orientation(yarp::os::idl::WireWriter& writer) {
100  if (!writer.writeNested(orientation)) return false;
101  return true;
102 }
103 bool Box3D::write(yarp::os::idl::WireWriter& writer) {
104  if (!write_corners(writer)) return false;
105  if (!write_orientation(writer)) return false;
106  return !writer.isError();
107 }
108 
109 bool Box3D::write(yarp::os::ConnectionWriter& connection) {
110  yarp::os::idl::WireWriter writer(connection);
111  if (!writer.writeListHeader(2)) return false;
112  return write(writer);
113 }
114 bool Box3D::Editor::write(yarp::os::ConnectionWriter& connection) {
115  if (!isValid()) return false;
116  yarp::os::idl::WireWriter writer(connection);
117  if (!writer.writeListHeader(dirty_count+1)) return false;
118  if (!writer.writeString("patch")) return false;
119  if (is_dirty_corners) {
120  if (!writer.writeListHeader(3)) return false;
121  if (!writer.writeString("set")) return false;
122  if (!writer.writeString("corners")) return false;
123  if (!obj->nested_write_corners(writer)) return false;
124  }
125  if (is_dirty_orientation) {
126  if (!writer.writeListHeader(3)) return false;
127  if (!writer.writeString("set")) return false;
128  if (!writer.writeString("orientation")) return false;
129  if (!obj->nested_write_orientation(writer)) return false;
130  }
131  return !writer.isError();
132 }
133 bool Box3D::Editor::read(yarp::os::ConnectionReader& connection) {
134  if (!isValid()) return false;
135  yarp::os::idl::WireReader reader(connection);
136  reader.expectAccept();
137  if (!reader.readListHeader()) return false;
138  int len = reader.getLength();
139  if (len==0) {
140  yarp::os::idl::WireWriter writer(reader);
141  if (writer.isNull()) return true;
142  if (!writer.writeListHeader(1)) return false;
143  writer.writeString("send: 'help' or 'patch (param1 val1) (param2 val2)'");
144  return true;
145  }
146  yarp::os::ConstString tag;
147  if (!reader.readString(tag)) return false;
148  if (tag=="help") {
149  yarp::os::idl::WireWriter writer(reader);
150  if (writer.isNull()) return true;
151  if (!writer.writeListHeader(2)) return false;
152  if (!writer.writeTag("many",1, 0)) return false;
153  if (reader.getLength()>0) {
154  yarp::os::ConstString field;
155  if (!reader.readString(field)) return false;
156  if (field=="corners") {
157  if (!writer.writeListHeader(1)) return false;
158  if (!writer.writeString("std::vector<PointXYZ> corners")) return false;
159  }
160  if (field=="orientation") {
161  if (!writer.writeListHeader(1)) return false;
162  if (!writer.writeString("yarp::sig::Matrix orientation")) return false;
163  }
164  }
165  if (!writer.writeListHeader(3)) return false;
166  writer.writeString("*** Available fields:");
167  writer.writeString("corners");
168  writer.writeString("orientation");
169  return true;
170  }
171  bool nested = true;
172  bool have_act = false;
173  if (tag!="patch") {
174  if ((len-1)%2 != 0) return false;
175  len = 1 + ((len-1)/2);
176  nested = false;
177  have_act = true;
178  }
179  for (int i=1; i<len; i++) {
180  if (nested && !reader.readListHeader(3)) return false;
181  yarp::os::ConstString act;
182  yarp::os::ConstString key;
183  if (have_act) {
184  act = tag;
185  } else {
186  if (!reader.readString(act)) return false;
187  }
188  if (!reader.readString(key)) return false;
189  // inefficient code follows, bug paulfitz to improve it
190  if (key == "corners") {
191  will_set_corners();
192  if (!obj->nested_read_corners(reader)) return false;
193  did_set_corners();
194  } else if (key == "orientation") {
195  will_set_orientation();
196  if (!obj->nested_read_orientation(reader)) return false;
197  did_set_orientation();
198  } else {
199  // would be useful to have a fallback here
200  }
201  }
202  reader.accept();
203  yarp::os::idl::WireWriter writer(reader);
204  if (writer.isNull()) return true;
205  writer.writeListHeader(1);
206  writer.writeVocab(VOCAB2('o','k'));
207  return true;
208 }
209 
210 yarp::os::ConstString Box3D::toString() {
211  yarp::os::Bottle b;
212  b.read(*this);
213  return b.toString();
214 }
215 }} // namespace