mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-12 12:37:47 +00:00
Add Feature to disable snapping to buildplate (#11801)
* identified code for snapping to buidlplate * rename internal name to ensure_on_bed to be consistent, saves option in 2mf, finish Move UI, use in both ensure_on_bed() functions * makes auto_drop a per-object setting, removes global setting * remove adUndef, add auto_drop to constructor/serialize * fixes drop() button * add "auto_drop" checkmark to "load as single object" dialog, nothing changes if auto_drop == yes || "load as single object", if auto_drop == false and "load as single object" == false the objects now retain their relative position to each other * retains auto_drop (and printable) state when assembling or splitting objects, adds ObjectList::printable_state_changed() overload to be able to only provide ModelObject* vector * adds dialog when splitting to ask if auto_drop should be disabled, only shows when auto_drop enabled and atleast one volume floating * adds arrow indicator on bounding box if auto_drop == false * removes unneeded code, keeps "auto_drop" naming consistent * makes for loop simpler in set_printable, set_auto_drop and get_auto_drop, makes get_auto_drop const, fixes wording in Snapshot text --------- Co-authored-by: Hanno Witzleb <hannowitzleb@gmail.com> Co-authored-by: SoftFever <softfeverever@gmail.com> Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
This commit is contained in:
@@ -181,6 +181,7 @@ private:
|
||||
GLModel m_arrow;
|
||||
GLModel m_curved_arrow;
|
||||
GLModel m_box;
|
||||
bool m_auto_drop = true;
|
||||
struct Planes
|
||||
{
|
||||
std::array<Vec3f, 2> check_points{ Vec3f::Zero(), Vec3f::Zero() };
|
||||
@@ -237,6 +238,8 @@ public:
|
||||
void drop();
|
||||
void center_plate(const int plate_idx);
|
||||
void set_printable(bool printable);
|
||||
bool get_auto_drop() const;
|
||||
void set_auto_drop(bool enabled);
|
||||
|
||||
void add_all();
|
||||
void remove_all();
|
||||
@@ -370,7 +373,7 @@ public:
|
||||
|
||||
void render_bounding_box(const BoundingBoxf3& box, const ColorRGB& color, float scale) {
|
||||
m_scale_factor = scale;
|
||||
render_bounding_box(box, Transform3d::Identity(), color);
|
||||
render_bounding_box(box, Transform3d::Identity(), get_auto_drop(), color);
|
||||
}
|
||||
|
||||
//BBS
|
||||
@@ -414,7 +417,7 @@ private:
|
||||
m_bounding_sphere.reset();
|
||||
}
|
||||
void render_synchronized_volumes();
|
||||
void render_bounding_box(const BoundingBoxf3& box, const Transform3d& trafo, const ColorRGB& color);
|
||||
void render_bounding_box(const BoundingBoxf3& box, const Transform3d& trafo, const bool auto_drop, const ColorRGB& color);
|
||||
void render_sidebar_position_hints(const std::string& sidebar_field, GLShaderProgram& shader, const Transform3d& matrix);
|
||||
void render_sidebar_rotation_hints(const std::string& sidebar_field, GLShaderProgram& shader, const Transform3d& matrix);
|
||||
//BBS: GUI refactor: add uniform_scale from gizmo
|
||||
|
||||
Reference in New Issue
Block a user