#pragma once #include #include #include namespace engines { struct DetectedObject { int label_id; float confidence; float position[3]; // center x, y, z (mm) float bounding_box_2d[8]; // 4 corners × 2 coords (pixels) float bounding_box_3d[24]; // 8 corners × 3 coords (mm) }; class Engine { public: virtual ~Engine() = default; virtual void enable(sl::Camera& camera) = 0; virtual void detect(sl::Camera& camera) = 0; virtual void set_labels(const std::string& /*labels*/) {} virtual const std::vector& objects() const = 0; virtual std::string label_names() const = 0; }; } // namespace engines