6#include "reusex/core/logging.hpp"
7#include "reusex/types.hpp"
9#include <Eigen/Geometry>
10#include <fmt/format.h>
50 using Pair = std::pair<Eigen::Vector4d, Eigen::Vector3d>;
59 if constexpr (std::is_same_v<T, Eigen::Vector4d>) {
61 }
else if constexpr (std::is_same_v<
62 T, std::pair<Eigen::Vector4d, Eigen::Vector3d>>) {
64 }
else if constexpr (std::is_same_v<T, PlanePair>) {
66 }
else if constexpr (std::is_same_v<
67 T, std::shared_ptr<geometry::CellComplex>>) {
69 }
else if constexpr (std::is_same_v<T, CloudConstPtr>) {
74 core::debug(
"viewer_add_geometry<{}> called for '{}' at stage '{}' "
75 "(no handler registered)",
76 typeid(T).name(), name,
to_string(stage));
83 for (
size_t i = 0; i < geometries.size(); ++i) {
91 [[maybe_unused]]
const Eigen::Vector4d &plane,
92 Stage stage,
int = 0) {
94 core::debug(
"viewer_add_plane called for '{}' at stage '{}' "
95 "(no handler registered)",
100 std::string_view name,
101 [[maybe_unused]]
const std::pair<Eigen::Vector4d, Eigen::Vector3d> &plane,
102 Stage stage,
int = 0) {
104 core::debug(
"viewer_add_plane (with origin) called for '{}' at stage '{}' "
105 "(no handler registered)",
111 Stage stage,
int = 0) {
113 core::debug(
"viewer_add_plane_pair called for '{}' at stage '{}' "
114 "(no handler registered)",
119 std::string_view name,
120 [[maybe_unused]]
const std::shared_ptr<reusex::geometry::CellComplex> &cc,
121 Stage stage,
int = 0) {
123 core::debug(
"viewer_add_cell_complex called for '{}' at stage '{}' "
124 "(no handler registered)",
130 Stage stage,
int = 0) {
132 core::debug(
"viewer_add_cloud called for '{}' at stage '{}' "
133 "(no handler registered)",
138 std::string_view name, [[maybe_unused]]
double focal_x,
139 [[maybe_unused]]
double focal_y, [[maybe_unused]]
int image_width,
140 [[maybe_unused]]
int image_height,
141 [[maybe_unused]]
const Eigen::Affine3f &pose,
Stage stage,
144 core::debug(
"viewer_add_camera_frustum called for '{}' at stage '{}' "
145 "(no handler registered)",
virtual void on_process_started(Stage, size_t)
virtual void on_process_finished(Stage)
virtual void on_process_updated(Stage, size_t)
virtual ~IProgressObserver()=default
virtual void viewer_add_plane(std::string_view name, const std::pair< Eigen::Vector4d, Eigen::Vector3d > &plane, Stage stage, int=0)
virtual ~IVisualObserver()=default
virtual void viewer_add_cloud(std::string_view name, const CloudConstPtr &cloud, Stage stage, int=0)
std::pair< Eigen::Vector4d, Eigen::Vector3d > Pair
virtual void viewer_add_plane_pair(std::string_view name, const PlanePair &pair, Stage stage, int=0)
virtual void viewer_add_camera_frustum(std::string_view name, double focal_x, double focal_y, int image_width, int image_height, const Eigen::Affine3f &pose, Stage stage, int=0)
virtual void viewer_add_cell_complex(std::string_view name, const std::shared_ptr< reusex::geometry::CellComplex > &cc, Stage stage, int=0)
std::pair< Pair, Pair > PlanePair
void viewer_add_geometry(std::string_view name, const T &geometry, Stage stage, int idx=0)
virtual void viewer_add_plane(std::string_view name, const Eigen::Vector4d &plane, Stage stage, int=0)
void viewer_add_geometries(std::string_view name, const T &geometries, Stage stage)
void operator+=(size_t increment)
ProgressObserver(Stage stage, size_t total=0)
void update(size_t progress=1)
void reset_visual_observer()
auto to_string(Material value) -> std::string_view
Convert Material enum to its string identifier.
void set_visual_observer(IVisualObserver *observer)
auto get_visual_observer() -> IVisualObserver *
void reset_progress_observer()
auto get_progress_observer() -> IProgressObserver *
void set_progress_observer(IProgressObserver *observer)
typename Cloud::ConstPtr CloudConstPtr