Tech ENABLE_RAYCAST_PICKING - Gizmo flatten: fixed update of raycasters transformations

(cherry picked from commit prusa3d/PrusaSlicer@2a2d442b28)
This commit is contained in:
enricoturri1966 2023-10-29 15:24:45 +08:00 committed by Noisyfox
parent e4ec0cfc2e
commit 094acdb645
5 changed files with 34 additions and 26 deletions

View file

@ -16,17 +16,19 @@ class SceneRaycasterItem
{
int m_id{ -1 };
bool m_active{ true };
bool m_use_back_faces{ false };
const MeshRaycaster* m_raycaster;
Transform3d m_trafo;
public:
SceneRaycasterItem(int id, const MeshRaycaster& raycaster, const Transform3d& trafo)
: m_id(id), m_raycaster(&raycaster), m_trafo(trafo)
SceneRaycasterItem(int id, const MeshRaycaster& raycaster, const Transform3d& trafo, bool use_back_faces = false)
: m_id(id), m_raycaster(&raycaster), m_trafo(trafo), m_use_back_faces(use_back_faces)
{}
int get_id() const { return m_id; }
bool is_active() const { return m_active; }
void set_active(bool active) { m_active = active; }
bool use_back_faces() const { return m_use_back_faces; }
const MeshRaycaster* get_raycaster() const { return m_raycaster; }
const Transform3d& get_transform() const { return m_trafo; }
void set_transform(const Transform3d& trafo) { m_trafo = trafo; }
@ -78,7 +80,8 @@ private:
public:
SceneRaycaster();
std::shared_ptr<SceneRaycasterItem> add_raycaster(EType type, int picking_id, const MeshRaycaster& raycaster, const Transform3d& trafo);
std::shared_ptr<SceneRaycasterItem> add_raycaster(EType type, int picking_id, const MeshRaycaster& raycaster,
const Transform3d& trafo, bool use_back_faces = false);
void remove_raycasters(EType type, int id);
void remove_raycasters(EType type);
void remove_raycaster(std::shared_ptr<SceneRaycasterItem> item);