10 const YAML::Node& n)
const 17 const YAML::Node &n)
const 24 const YAML::Node &n)
const 29 vector<size_t> dim = {2, 1};
35 if(config[
"phi"] && config[
"phi"].size() == 2)
37 phi[0] = config[
"phi"][0].as<
double>();
38 phi[1] = config[
"phi"][1].as<
double>();
40 hdf5util::addArray<double>(g,
"phi", dim, phi);
46 if(config[
"theta"] && config[
"theta"].size() == 2)
48 theta[0] = config[
"theta"][0].as<
double>();
49 theta[1] = config[
"theta"][1].as<
double>();
51 hdf5util::addArray<double>(g,
"theta", dim, theta);
59 resolution[0] = config[
"h_res"].as<
double>();
63 resolution[1] = config[
"v_res"].as<
double>();
65 hdf5util::addArray<double>(g,
"resolution", dim, resolution);
69 if(n[
"pose_estimate"])
71 p_transform = n[
"pose_estimate"].as<
Transformd>();
73 hdf5util::addMatrix<double>(g,
"poseEstimation", p_transform);
78 r_transform = n[
"registration"].as<
Transformd>();
80 hdf5util::addMatrix<double>(g,
"registration", r_transform);
88 timestamps[0] = n[
"start_time"].as<
double>();
92 timestamps[1] = n[
"end_time"].as<
double>();
94 hdf5util::addArray<double>(g,
"timestamps", dim, timestamps);
100 const YAML::Node &n)
const 109 gps[0] = n[
"latitude"].as<
double>();
113 gps[1] = n[
"longitude"].as<
double>();
117 gps[1] = n[
"altitude"].as<
double>();
119 hdf5util::addArray<double>(g,
"gpsPosition", 3, gps);
123 if(n[
"pose_estimate"])
125 p_transform = n[
"pose_estimate"].as<
Transformd>();
127 hdf5util::addMatrix<double>(g,
"poseEstimation", p_transform);
130 if(n[
"registration"])
132 r_transform = n[
"registration"].as<
Transformd>();
134 hdf5util::addMatrix<double>(g,
"registration", r_transform);
141 ts[0] = n[
"timestamp"].as<
double>();
143 hdf5util::addArray<double>(g,
"timestamp", 1, ts);
148 const YAML::Node &n)
const 150 std::cout <<
timestamp <<
"HDF5MetaDescriptionV2::saveScanProject() not implemented..." << std::endl;
156 const YAML::Node& n)
const 158 std::cout <<
timestamp <<
"HDF5MetaDescriptionV2::saveScanCamera() not implemented..." << std::endl;
163 const YAML::Node &n)
const 165 std::cout <<
timestamp <<
"HDF5MetaDescriptionV2::saveScanImage() not implemented..." << std::endl;
170 std::cout <<
timestamp <<
"HDF5MetaDescriptionV2::hyperspectralCamera() not implemented..." << std::endl;
177 std::cout <<
timestamp <<
"HDF5MetaDescriptionV2::hyperspectralPanoramaChannel() not implemented..." << std::endl;
187 std::vector<size_t> timesDim;
188 doubleArr times = hdf5util::getArray<double>(g,
"timestamps", timesDim);
189 if(times && timesDim.size() == 2 && timesDim[0] == 2 && timesDim[1] == 1)
191 std::cout <<
timestamp <<
"YAML timestamp..." << std::endl;
192 node[
"start_time"] = times[0];
193 node[
"end_time"] = times[1];
197 boost::optional<Transformd> poseEstimate =
198 hdf5util::getMatrix<Transformd>(g,
"poseEstimation");
201 node[
"pose_estimate"] = *poseEstimate;
204 boost::optional<Transformd> registration =
205 hdf5util::getMatrix<Transformd>(g,
"registration");
208 node[
"registration"] = *registration;
213 std::vector<size_t> resDim;
214 doubleArr phi = hdf5util::getArray<double>(g,
"phi", resDim);
215 if(phi && resDim.size() == 2 && resDim[0] == 2 && resDim[1] == 1)
217 std::cout <<
timestamp <<
"YAML phi..." << std::endl;
218 config[
"phi"] = YAML::Load(
"[]");
219 config[
"phi"].push_back(phi[0]);
220 config[
"phi"].push_back(phi[1]);
224 doubleArr theta = hdf5util::getArray<double>(g,
"theta", resDim);
225 if(theta && resDim.size() == 2 && resDim[0] == 2 && resDim[1] == 1)
227 std::cout <<
timestamp <<
"YAML theta..." << std::endl;
228 config[
"theta"] = YAML::Load(
"[]");
229 config[
"theta"].push_back(theta[0]);
230 config[
"theta"].push_back(theta[1]);
234 doubleArr res = hdf5util::getArray<double>(g,
"resolution", resDim);
235 if(res && resDim.size() == 2 && resDim[0] == 2 && resDim[1] == 1)
237 std::cout <<
timestamp <<
"YAML resolution..." << std::endl;
238 config[
"v_res"] = theta[0];
239 config[
"h_res"] = theta[1];
243 vector<size_t> v = hdf5util::getDimensions<float>(g,
"points");
246 config[
"num_points"] = v[0];
249 node[
"config"] = config;
258 std::vector<size_t> dim;
259 doubleArr gps = hdf5util::getArray<double>(g,
"gpsPosition", dim);
260 if(gps && dim.size() == 2 && dim[0] == 3 && dim[1] == 1)
262 std::cout <<
timestamp <<
"YAML GPS..." << std::endl;
263 node[
"latitude"] = gps[0];
264 node[
"longitude"] = gps[1];
265 node[
"altitude"] = gps[2];
270 doubleArr ts = hdf5util::getArray<double>(g,
"gpsPosition", dim);
271 if(gps && dim.size() == 2 && dim[0] == 1 && dim[1] == 1)
273 std::cout <<
timestamp <<
"YAML timestamp..." << std::endl;
274 node[
"timestamp"] = ts[0];
279 boost::optional<Transformd> poseEstimate =
280 hdf5util::getMatrix<Transformd>(g,
"poseEstimation");
283 node[
"pose_estimate"] = *poseEstimate;
286 boost::optional<Transformd> registration =
287 hdf5util::getMatrix<Transformd>(g,
"registration");
290 node[
"registration"] = *registration;
298 std::cout <<
timestamp <<
"HDF5MetaDescriptionV2::scanProject() not implemented..." << std::endl;
305 std::cout <<
timestamp <<
"HDF5MetaDescriptionV2::scanCamera() not implemented..." << std::endl;
312 std::cout <<
timestamp <<
"HDF5MetaDescriptionV2::scanImage() not implemented..." << std::endl;
static Timestamp timestamp
A global time stamp object for program runtime measurement.
boost::shared_array< double > doubleArr
Transform< double > Transformd
4x4 double precision transformation matrix