grasp
All Data Structures Namespaces Functions Modules
Polygon.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/Polygon.h>
5 
6 namespace iCub { namespace data3D {
7 bool Polygon::read_vertices(yarp::os::idl::WireReader& reader) {
8  {
9  vertices.clear();
10  uint32_t _size0;
11  yarp::os::idl::WireState _etype3;
12  reader.readListBegin(_etype3, _size0);
13  vertices.resize(_size0);
14  uint32_t _i4;
15  for (_i4 = 0; _i4 < _size0; ++_i4)
16  {
17  if (!reader.readI32(vertices[_i4])) {
18  reader.fail();
19  return false;
20  }
21  }
22  reader.readListEnd();
23  }
24  return true;
25 }
26 bool Polygon::nested_read_vertices(yarp::os::idl::WireReader& reader) {
27  {
28  vertices.clear();
29  uint32_t _size5;
30  yarp::os::idl::WireState _etype8;
31  reader.readListBegin(_etype8, _size5);
32  vertices.resize(_size5);
33  uint32_t _i9;
34  for (_i9 = 0; _i9 < _size5; ++_i9)
35  {
36  if (!reader.readI32(vertices[_i9])) {
37  reader.fail();
38  return false;
39  }
40  }
41  reader.readListEnd();
42  }
43  return true;
44 }
45 bool Polygon::read(yarp::os::idl::WireReader& reader) {
46  if (!read_vertices(reader)) return false;
47  return !reader.isError();
48 }
49 
50 bool Polygon::read(yarp::os::ConnectionReader& connection) {
51  yarp::os::idl::WireReader reader(connection);
52  if (!reader.readListHeader(1)) return false;
53  return read(reader);
54 }
55 
56 bool Polygon::write_vertices(yarp::os::idl::WireWriter& writer) {
57  {
58  if (!writer.writeListBegin(BOTTLE_TAG_INT, static_cast<uint32_t>(vertices.size()))) return false;
59  std::vector<int32_t> ::iterator _iter10;
60  for (_iter10 = vertices.begin(); _iter10 != vertices.end(); ++_iter10)
61  {
62  if (!writer.writeI32((*_iter10))) return false;
63  }
64  if (!writer.writeListEnd()) return false;
65  }
66  return true;
67 }
68 bool Polygon::nested_write_vertices(yarp::os::idl::WireWriter& writer) {
69  {
70  if (!writer.writeListBegin(BOTTLE_TAG_INT, static_cast<uint32_t>(vertices.size()))) return false;
71  std::vector<int32_t> ::iterator _iter11;
72  for (_iter11 = vertices.begin(); _iter11 != vertices.end(); ++_iter11)
73  {
74  if (!writer.writeI32((*_iter11))) return false;
75  }
76  if (!writer.writeListEnd()) return false;
77  }
78  return true;
79 }
80 bool Polygon::write(yarp::os::idl::WireWriter& writer) {
81  if (!write_vertices(writer)) return false;
82  return !writer.isError();
83 }
84 
85 bool Polygon::write(yarp::os::ConnectionWriter& connection) {
86  yarp::os::idl::WireWriter writer(connection);
87  if (!writer.writeListHeader(1)) return false;
88  return write(writer);
89 }
90 bool Polygon::Editor::write(yarp::os::ConnectionWriter& connection) {
91  if (!isValid()) return false;
92  yarp::os::idl::WireWriter writer(connection);
93  if (!writer.writeListHeader(dirty_count+1)) return false;
94  if (!writer.writeString("patch")) return false;
95  if (is_dirty_vertices) {
96  if (!writer.writeListHeader(3)) return false;
97  if (!writer.writeString("set")) return false;
98  if (!writer.writeString("vertices")) return false;
99  if (!obj->nested_write_vertices(writer)) return false;
100  }
101  return !writer.isError();
102 }
103 bool Polygon::Editor::read(yarp::os::ConnectionReader& connection) {
104  if (!isValid()) return false;
105  yarp::os::idl::WireReader reader(connection);
106  reader.expectAccept();
107  if (!reader.readListHeader()) return false;
108  int len = reader.getLength();
109  if (len==0) {
110  yarp::os::idl::WireWriter writer(reader);
111  if (writer.isNull()) return true;
112  if (!writer.writeListHeader(1)) return false;
113  writer.writeString("send: 'help' or 'patch (param1 val1) (param2 val2)'");
114  return true;
115  }
116  yarp::os::ConstString tag;
117  if (!reader.readString(tag)) return false;
118  if (tag=="help") {
119  yarp::os::idl::WireWriter writer(reader);
120  if (writer.isNull()) return true;
121  if (!writer.writeListHeader(2)) return false;
122  if (!writer.writeTag("many",1, 0)) return false;
123  if (reader.getLength()>0) {
124  yarp::os::ConstString field;
125  if (!reader.readString(field)) return false;
126  if (field=="vertices") {
127  if (!writer.writeListHeader(1)) return false;
128  if (!writer.writeString("std::vector<int32_t> vertices")) return false;
129  }
130  }
131  if (!writer.writeListHeader(2)) return false;
132  writer.writeString("*** Available fields:");
133  writer.writeString("vertices");
134  return true;
135  }
136  bool nested = true;
137  bool have_act = false;
138  if (tag!="patch") {
139  if ((len-1)%2 != 0) return false;
140  len = 1 + ((len-1)/2);
141  nested = false;
142  have_act = true;
143  }
144  for (int i=1; i<len; i++) {
145  if (nested && !reader.readListHeader(3)) return false;
146  yarp::os::ConstString act;
147  yarp::os::ConstString key;
148  if (have_act) {
149  act = tag;
150  } else {
151  if (!reader.readString(act)) return false;
152  }
153  if (!reader.readString(key)) return false;
154  // inefficient code follows, bug paulfitz to improve it
155  if (key == "vertices") {
156  will_set_vertices();
157  if (!obj->nested_read_vertices(reader)) return false;
158  did_set_vertices();
159  } else {
160  // would be useful to have a fallback here
161  }
162  }
163  reader.accept();
164  yarp::os::idl::WireWriter writer(reader);
165  if (writer.isNull()) return true;
166  writer.writeListHeader(1);
167  writer.writeVocab(VOCAB2('o','k'));
168  return true;
169 }
170 
171 yarp::os::ConstString Polygon::toString() {
172  yarp::os::Bottle b;
173  b.read(*this);
174  return b.toString();
175 }
176 }} // namespace