25 qi::AnyReferenceVector anyref;
27 std::ostringstream ss;
29 anyref = value.asListValuePtr();
31 catch(std::runtime_error& e)
33 ss <<
"Could not transform AnyValue into list: " << e.what();
34 throw std::runtime_error(ss.str());
39 ref = anyref[0].content();
40 if(ref.kind() == qi::TypeKind_Int)
42 result.
width = ref.asInt32();
46 ss <<
"Could not retrieve width";
47 throw std::runtime_error(ss.str());
51 ref = anyref[1].content();
52 if(ref.kind() == qi::TypeKind_Int)
54 result.
height = ref.asInt32();
58 ss <<
"Could not retrieve height";
59 throw std::runtime_error(ss.str());
63 ref = anyref[2].content();
64 if(ref.kind() == qi::TypeKind_Int)
70 ss <<
"Could not retrieve number of layers";
71 throw std::runtime_error(ss.str());
75 ref = anyref[3].content();
76 if(ref.kind() == qi::TypeKind_Int)
82 ss <<
"Could not retrieve colorspace";
83 throw std::runtime_error(ss.str());
87 ref = anyref[4].content();
88 if(ref.kind() == qi::TypeKind_Int)
94 ss <<
"Could not retrieve timestamp_s";
95 throw std::runtime_error(ss.str());
99 ref = anyref[5].content();
100 if(ref.kind() == qi::TypeKind_Int)
106 ss <<
"Could not retrieve timestamp_us";
107 throw std::runtime_error(ss.str());
111 ref = anyref[6].content();
112 if(ref.kind() == qi::TypeKind_Raw)
114 result.
buffer = (
void*)ref.asRaw().first;
118 ss <<
"Could not retrieve buffer";
119 throw std::runtime_error(ss.str());
123 ref = anyref[7].content();
124 if(ref.kind() == qi::TypeKind_Int)
126 result.
cam_id = ref.asInt32();
130 ss <<
"Could not retrieve cam_id";
131 throw std::runtime_error(ss.str());
135 ref = anyref[8].content();
136 if(ref.kind() == qi::TypeKind_Float)
142 ss <<
"Could not retrieve fov_left";
143 throw std::runtime_error(ss.str());
147 ref = anyref[9].content();
148 if(ref.kind() == qi::TypeKind_Float)
150 result.
fov_top = ref.asFloat();
154 ss <<
"Could not retrieve fov_top";
155 throw std::runtime_error(ss.str());
159 ref = anyref[10].content();
160 if(ref.kind() == qi::TypeKind_Float)
166 ss <<
"Could not retrieve fov_right";
167 throw std::runtime_error(ss.str());
171 ref = anyref[11].content();
172 if(ref.kind() == qi::TypeKind_Float)
178 ss <<
"Could not retrieve fov_bottom";
179 throw std::runtime_error(ss.str());
186 qi::AnyReferenceVector anyrefs = value.asListValuePtr();
188 for(
int i=0; i<anyrefs.size();i++)
192 result.push_back(anyrefs[i].content().toFloat());
194 catch(std::runtime_error& e)
196 result.push_back(-1.0);
197 std::cout << e.what() <<
"=> set to -1" << std::endl;
204 qi::AnyReferenceVector anyrefs = value.asListValuePtr();
206 for(
int i=0; i<anyrefs.size();i++)
210 result.push_back(anyrefs[i].content().toString());
212 catch(std::runtime_error& e)
214 result.push_back(
"Not available");
215 std::cout << e.what() <<
" => set to 'Not available'" << std::endl;
224 std::vector< std::vector<float> > &result) {
226 qi::AnyReferenceVector anyrefs;
229 anyrefs = value.asListValuePtr();
231 }
catch (
const std::exception& e) {
232 throw std::exception(e);
235 result.resize(anyrefs.size());
237 for(
int i=0; i<anyrefs.size(); i++) {
238 qi::AnyReferenceVector anyref;
241 anyref = anyrefs[i].asListValuePtr();
243 }
catch (
const std::exception& e) {
244 throw std::exception(e);
247 result[i].resize(anyref.size());
249 for(
int j=0; j<anyref.size(); j++) {
251 result[i][j] = anyref[j].content().toFloat();
253 }
catch(std::runtime_error& e) {
254 throw std::exception(e);