14 #include <unordered_map>
21 bool ReadImageWarpingFieldFromJSON(
23 pipelines::color_map::ImageWarpingField &warping_field) {
27 bool WriteImageWarpingFieldToJSON(
29 const pipelines::color_map::ImageWarpingField &warping_field) {
33 static const std::unordered_map<
35 std::function<bool(
const std::string &,
36 pipelines::color_map::ImageWarpingField &)>>
37 file_extension_to_warping_field_read_function{
38 {
"json", ReadImageWarpingFieldFromJSON},
41 static const std::unordered_map<
43 std::function<bool(
const std::string &,
44 const pipelines::color_map::ImageWarpingField &)>>
45 file_extension_to_warping_field_write_function{
46 {
"json", WriteImageWarpingFieldToJSON},
54 std::shared_ptr<pipelines::color_map::ImageWarpingField>
57 std::make_shared<pipelines::color_map::ImageWarpingField>();
65 std::string filename_ext =
67 if (filename_ext.empty()) {
69 "Read pipelines::color_map::ImageWarpingField failed: unknown "
75 file_extension_to_warping_field_read_function.find(filename_ext);
76 if (map_itr == file_extension_to_warping_field_read_function.end()) {
78 "Read pipelines::color_map::ImageWarpingField failed: unknown "
83 return map_itr->second(
filename, warping_field);
89 std::string filename_ext =
91 if (filename_ext.empty()) {
93 "Write pipelines::color_map::ImageWarpingField failed: unknown "
99 file_extension_to_warping_field_write_function.find(filename_ext);
100 if (map_itr == file_extension_to_warping_field_write_function.end()) {
102 "Write pipelines::color_map::ImageWarpingField failed: unknown "
107 return map_itr->second(
filename, trajectory);
bool WriteImageWarpingField(const std::string &filename, const pipelines::color_map::ImageWarpingField &trajectory)
std::shared_ptr< pipelines::color_map::ImageWarpingField > CreateImageWarpingFieldFromFile(const std::string &filename)
bool WriteIJsonConvertibleToJSON(const std::string &filename, const cloudViewer::utility::IJsonConvertible &object)
bool ReadIJsonConvertible(const std::string &filename, cloudViewer::utility::IJsonConvertible &object)
bool ReadImageWarpingField(const std::string &filename, pipelines::color_map::ImageWarpingField &warping_field)
std::string GetFileExtensionInLowerCase(const std::string &filename)
Generic file read and write utility for python interface.