39 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
41 enum class PickType { POINTS = 1, FRAME = (1 << 1), FACTOR = (1 << 2) };
42 enum class FactorType { MATCHING_COST, BETWEEN, IMU };
47 virtual bool ok()
const override;
55 virtual void setup_ui() {}
57 void invoke(
const std::function<
void()>& task);
58 void drawable_selection();
65 void odometry_on_new_frame(
const EstimationFrame::ConstPtr& new_frame);
66 void globalmap_on_insert_submap(
const SubMap::ConstPtr& submap);
67 void globalmap_on_update_submaps(
const std::vector<SubMap::Ptr>& updated_submaps);
68 void globalmap_on_smoother_update(
gtsam_points::ISAM2Ext& isam2, gtsam::NonlinearFactorGraph& new_factors, gtsam::Values& new_values);
72 std::atomic_bool request_to_clear;
73 std::atomic_bool request_to_terminate;
74 std::atomic_bool kill_switch;
81 std::mutex invoke_queue_mutex;
82 std::vector<std::function<void()>> invoke_queue;
99 bool enable_partial_rendering;
100 int partial_rendering_budget;
103 bool point_size_metric;
104 bool point_shape_circle;
106 Eigen::Vector2f z_range;
109 double factors_alpha;
111 std::atomic_bool needs_session_merge;
114 Eigen::Vector4i right_clicked_info;
115 Eigen::Vector3f right_clicked_pos;
118 std::unique_ptr<ManualLoopCloseModal> manual_loop_close_modal;
119 std::unique_ptr<BundleAdjustmentModal> bundle_adjustment_modal;
122 std::unique_ptr<TrajectoryManager> trajectory;
125 std::vector<Eigen::Isometry3d> submap_poses;
126 std::vector<SubMap::ConstPtr> submaps;
129 std::vector<std::tuple<FactorType, std::uint64_t, std::uint64_t>> global_factors;
135 std::shared_ptr<spdlog::logger> logger;