25 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
30 bool is_target_set()
const;
31 bool is_source_set()
const;
33 void set_target(
const gtsam::Key target_key,
const gtsam_points::PointCloud::ConstPtr& target,
const Eigen::Isometry3d& target_pose);
34 void set_source(
const gtsam::Key source_key,
const gtsam_points::PointCloud::ConstPtr& source,
const Eigen::Isometry3d& source_pose);
36 void set_submaps(
const std::vector<SubMap::ConstPtr>& target_submaps,
const std::vector<SubMap::ConstPtr>& source_submaps);
40 gtsam::NonlinearFactor::shared_ptr run();
43 std::pair<gtsam_points::PointCloudCPU::Ptr, gtsam_points::PointCloudCPU::Ptr> preprocess_maps(guik::ProgressInterface& progress);
45 std::shared_ptr<Eigen::Isometry3d> align_global(guik::ProgressInterface& progress);
47 std::shared_ptr<Eigen::Isometry3d> align(guik::ProgressInterface& progress);
48 gtsam::NonlinearFactor::shared_ptr create_factor();
51 bool show_note(
const std::string& note);
54 const int num_threads;
57 std::unique_ptr<guik::GLCanvas> canvas;
58 std::unique_ptr<guik::ProgressModal> progress_modal;
59 std::unique_ptr<guik::ModelControl> model_control;
68 int global_registration_type;
69 bool global_registration_4dof;
71 int ransac_max_iterations;
72 float ransac_early_stop_rate;
73 float ransac_inlier_voxel_resolution;
78 float information_scale;
79 float max_correspondence_distance;
81 gtsam::Key target_key;
82 gtsam::Key source_key;
84 Eigen::Isometry3d target_pose;
85 Eigen::Isometry3d source_pose;
87 gtsam_points::PointCloudCPU::Ptr target;
88 gtsam_points::PointCloudCPU::Ptr source;
90 glk::Drawable::ConstPtr target_drawable;
91 glk::Drawable::ConstPtr source_drawable;
93 gtsam_points::NearestNeighborSearch::Ptr target_fpfh_tree;
94 gtsam_points::NearestNeighborSearch::Ptr source_fpfh_tree;
96 std::vector<SubMap::ConstPtr> target_submaps;
97 std::vector<SubMap::ConstPtr> source_submaps;
99 std::shared_ptr<void> tbb_task_arena;
102 std::shared_ptr<spdlog::logger> logger;