14 #include <unordered_map>
21 bool ReadPoseGraphFromJSON(
const std::string &
filename,
26 bool WritePoseGraphToJSON(
32 static const std::unordered_map<
34 std::function<bool(
const std::string &,
36 file_extension_to_pose_graph_read_function{
37 {
"json", ReadPoseGraphFromJSON},
40 static const std::unordered_map<
42 std::function<bool(
const std::string &,
44 file_extension_to_pose_graph_write_function{
45 {
"json", WritePoseGraphToJSON},
55 auto pose_graph = std::make_shared<pipelines::registration::PoseGraph>();
62 std::string filename_ext =
64 if (filename_ext.empty()) {
66 "Read pipelines::registration::PoseGraph failed: unknown file "
71 file_extension_to_pose_graph_read_function.find(filename_ext);
72 if (map_itr == file_extension_to_pose_graph_read_function.end()) {
74 "Read pipelines::registration::PoseGraph failed: unknown file "
78 return map_itr->second(
filename, pose_graph);
83 std::string filename_ext =
85 if (filename_ext.empty()) {
87 "Write pipelines::registration::PoseGraph failed: unknown file "
92 file_extension_to_pose_graph_write_function.find(filename_ext);
93 if (map_itr == file_extension_to_pose_graph_write_function.end()) {
95 "Write pipelines::registration::PoseGraph failed: unknown file "
99 return map_itr->second(
filename, pose_graph);
Data structure defining the pose graph.
bool ReadPoseGraph(const std::string &filename, pipelines::registration::PoseGraph &pose_graph)
std::shared_ptr< pipelines::registration::PoseGraph > CreatePoseGraphFromFile(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 WritePoseGraph(const std::string &filename, const pipelines::registration::PoseGraph &pose_graph)
cloudViewer::pipelines::registration::PoseGraph PoseGraph
std::string GetFileExtensionInLowerCase(const std::string &filename)
Generic file read and write utility for python interface.