Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libslic3r/Model.cpp11
-rw-r--r--src/libslic3r/Technologies.hpp5
-rw-r--r--src/slic3r/GUI/3DScene.cpp112
-rw-r--r--src/slic3r/GUI/3DScene.hpp52
-rw-r--r--src/slic3r/GUI/GLCanvas3D.cpp856
-rw-r--r--src/slic3r/GUI/GLCanvas3D.hpp117
-rw-r--r--src/slic3r/GUI/GLCanvas3DManager.cpp56
-rw-r--r--src/slic3r/GUI/GLCanvas3DManager.hpp17
-rw-r--r--src/slic3r/GUI/GLGizmo.cpp421
-rw-r--r--src/slic3r/GUI/GLGizmo.hpp118
-rw-r--r--src/slic3r/GUI/GLToolbar.cpp6
-rw-r--r--src/slic3r/GUI/GLToolbar.hpp6
-rw-r--r--src/slic3r/GUI/GUI_ObjectList.cpp15
-rw-r--r--src/slic3r/GUI/GUI_ObjectManipulation.cpp2
-rw-r--r--src/slic3r/GUI/GUI_ObjectManipulation.hpp5
-rw-r--r--src/slic3r/GUI/Plater.cpp372
16 files changed, 21 insertions, 2150 deletions
diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp
index 9aad49397..89b476d75 100644
--- a/src/libslic3r/Model.cpp
+++ b/src/libslic3r/Model.cpp
@@ -693,23 +693,12 @@ void ModelObject::center_around_origin()
if (v->is_model_part())
bb.merge(v->mesh.bounding_box());
-#if ENABLE_EXTENDED_SELECTION
// Shift is the vector from the center of the bounding box to the origin
Vec3d shift = -bb.center();
-#else
- // Shift is the vector from the center of the bottom face of the bounding box to the origin
- Vec3d shift = -bb.center();
- shift(2) = -bb.min(2);
-#endif // ENABLE_EXTENDED_SELECTION
this->translate(shift);
this->origin_translation += shift;
-#if !ENABLE_EXTENDED_SELECTION
- // set z to zero, translation in z has already been done within the mesh
- shift(2) = 0.0;
-#endif // !ENABLE_EXTENDED_SELECTION
-
if (!this->instances.empty()) {
for (ModelInstance *i : this->instances) {
i->set_offset(i->get_offset() - shift);
diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp
index a844d5f4b..73d342f08 100644
--- a/src/libslic3r/Technologies.hpp
+++ b/src/libslic3r/Technologies.hpp
@@ -17,9 +17,8 @@
#define ENABLE_GIZMOS_RESET (1 && ENABLE_1_42_0)
// Uses a unique opengl context
#define ENABLE_USE_UNIQUE_GLCONTEXT (1 && ENABLE_1_42_0)
-// New selections
-#define ENABLE_EXTENDED_SELECTION (1 && ENABLE_1_42_0)
-#define DISABLE_INSTANCES_SYNCH (1 && ENABLE_EXTENDED_SELECTION)
+// Disable synchronization of unselected instances
+#define DISABLE_INSTANCES_SYNCH (1 && ENABLE_1_42_0)
// Modified camera target behavior
#define ENABLE_MODIFIED_CAMERA_TARGET (1 && ENABLE_1_42_0)
// Add Geometry::Transformation class and use it into ModelInstance, ModelVolume and GLVolume
diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp
index 924b969e0..7745710e1 100644
--- a/src/slic3r/GUI/3DScene.cpp
+++ b/src/slic3r/GUI/3DScene.cpp
@@ -209,10 +209,6 @@ GLVolume::GLVolume(float r, float g, float b, float a)
, m_transformed_convex_hull_bounding_box_dirty(true)
, m_convex_hull(nullptr)
, composite_id(-1)
-#if !ENABLE_EXTENDED_SELECTION
- , select_group_id(-1)
- , drag_group_id(-1)
-#endif // !ENABLE_EXTENDED_SELECTION
, extruder_id(0)
, selected(false)
, is_active(true)
@@ -270,14 +266,11 @@ const Vec3d& GLVolume::get_rotation() const
void GLVolume::set_rotation(const Vec3d& rotation)
{
-#if ENABLE_EXTENDED_SELECTION
static const double TWO_PI = 2.0 * (double)PI;
-#endif // ENABLE_EXTENDED_SELECTION
if (m_rotation != rotation)
{
m_rotation = rotation;
-#if ENABLE_EXTENDED_SELECTION
for (int i = 0; i < 3; ++i)
{
while (m_rotation(i) < 0.0)
@@ -289,7 +282,6 @@ void GLVolume::set_rotation(const Vec3d& rotation)
m_rotation(i) -= TWO_PI;
}
}
-#endif // ENABLE_EXTENDED_SELECTION
m_world_matrix_dirty = true;
m_transformed_bounding_box_dirty = true;
m_transformed_convex_hull_bounding_box_dirty = true;
@@ -312,12 +304,10 @@ void GLVolume::set_offset(const Vec3d& offset)
}
}
-#if ENABLE_EXTENDED_SELECTION
const Vec3d& GLVolume::get_scaling_factor() const
{
return m_scaling_factor;
}
-#endif // ENABLE_EXTENDED_SELECTION
void GLVolume::set_scaling_factor(const Vec3d& scaling_factor)
{
@@ -368,26 +358,6 @@ void GLVolume::set_convex_hull(const TriangleMesh& convex_hull)
m_convex_hull = &convex_hull;
}
-#if !ENABLE_EXTENDED_SELECTION
-void GLVolume::set_select_group_id(const std::string& select_by)
-{
- if (select_by == "object")
- select_group_id = object_idx() * 1000000;
- else if (select_by == "volume")
- select_group_id = object_idx() * 1000000 + volume_idx() * 1000;
- else if (select_by == "instance")
- select_group_id = composite_id;
-}
-
-void GLVolume::set_drag_group_id(const std::string& drag_by)
-{
- if (drag_by == "object")
- drag_group_id = object_idx() * 1000;
- else if (drag_by == "instance")
- drag_group_id = object_idx() * 1000 + instance_idx();
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
#if !ENABLE_MODELVOLUME_TRANSFORM
const Transform3f& GLVolume::world_matrix() const
{
@@ -722,23 +692,12 @@ void GLVolume::generate_layer_height_texture(const PrintObject *print_object, bo
#define LAYER_HEIGHT_TEXTURE_WIDTH 1024
#define LAYER_HEIGHT_TEXTURE_HEIGHT 1024
-#if ENABLE_EXTENDED_SELECTION
std::vector<int> GLVolumeCollection::load_object(
const ModelObject *model_object,
int obj_idx,
const std::vector<int> &instance_idxs,
const std::string &color_by,
bool use_VBOs)
-#else
-std::vector<int> GLVolumeCollection::load_object(
- const ModelObject *model_object,
- int obj_idx,
- const std::vector<int> &instance_idxs,
- const std::string &color_by,
- const std::string &select_by,
- const std::string &drag_by,
- bool use_VBOs)
-#endif // ENABLE_EXTENDED_SELECTION
{
static float colors[4][4] = {
{ 1.0f, 1.0f, 0.0f, 1.f },
@@ -789,10 +748,6 @@ std::vector<int> GLVolumeCollection::load_object(
v.bounding_box = v.indexed_vertex_array.bounding_box();
v.indexed_vertex_array.finalize_geometry(use_VBOs);
v.composite_id = obj_idx * 1000000 + volume_idx * 1000 + instance_idx;
-#if !ENABLE_EXTENDED_SELECTION
- v.set_select_group_id(select_by);
- v.set_drag_group_id(drag_by);
-#endif // !ENABLE_EXTENDED_SELECTION
if (model_volume->is_model_part())
{
v.set_convex_hull(model_volume->get_convex_hull());
@@ -884,10 +839,6 @@ int GLVolumeCollection::load_wipe_tower_preview(
v.bounding_box = v.indexed_vertex_array.bounding_box();
v.indexed_vertex_array.finalize_geometry(use_VBOs);
v.composite_id = obj_idx * 1000000;
-#if !ENABLE_EXTENDED_SELECTION
- v.select_group_id = obj_idx * 1000000;
- v.drag_group_id = obj_idx * 1000;
-#endif // !ENABLE_EXTENDED_SELECTION
v.is_wipe_tower = true;
v.shader_outside_printer_detection_enabled = ! size_unknown;
return int(this->volumes.size() - 1);
@@ -1083,26 +1034,6 @@ void GLVolumeCollection::update_colors_by_extruder(const DynamicPrintConfig* con
}
}
-#if !ENABLE_EXTENDED_SELECTION
-void GLVolumeCollection::set_select_by(const std::string& select_by)
-{
- for (GLVolume *vol : this->volumes)
- {
- if (vol != nullptr)
- vol->set_select_group_id(select_by);
- }
-}
-
-void GLVolumeCollection::set_drag_by(const std::string& drag_by)
-{
- for (GLVolume *vol : this->volumes)
- {
- if (vol != nullptr)
- vol->set_drag_group_id(drag_by);
- }
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
std::vector<double> GLVolumeCollection::get_current_print_zs(bool active_only) const
{
// Collect layer top positions of all volumes.
@@ -1874,23 +1805,6 @@ void _3DScene::reset_volumes(wxGLCanvas* canvas)
s_canvas_mgr.reset_volumes(canvas);
}
-#if !ENABLE_EXTENDED_SELECTION
-void _3DScene::deselect_volumes(wxGLCanvas* canvas)
-{
- s_canvas_mgr.deselect_volumes(canvas);
-}
-
-void _3DScene::select_volume(wxGLCanvas* canvas, unsigned int id)
-{
- s_canvas_mgr.select_volume(canvas, id);
-}
-
-void _3DScene::update_volumes_selection(wxGLCanvas* canvas, const std::vector<int>& selections)
-{
- s_canvas_mgr.update_volumes_selection(canvas, selections);
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
int _3DScene::check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config)
{
return s_canvas_mgr.check_volumes_outside_state(canvas, config);
@@ -1906,17 +1820,10 @@ bool _3DScene::move_volume_down(wxGLCanvas* canvas, unsigned int id)
return s_canvas_mgr.move_volume_down(canvas, id);
}
-#if ENABLE_EXTENDED_SELECTION
GUI::GLCanvas3D* _3DScene::get_canvas(wxGLCanvas* canvas)
{
return s_canvas_mgr.get_canvas(canvas);
}
-#else
-void _3DScene::set_objects_selections(wxGLCanvas* canvas, const std::vector<int>& selections)
-{
- s_canvas_mgr.set_objects_selections(canvas, selections);
-}
-#endif // ENABLE_EXTENDED_SELECTION
void _3DScene::set_config(wxGLCanvas* canvas, DynamicPrintConfig* config)
{
@@ -1963,23 +1870,6 @@ void _3DScene::set_color_by(wxGLCanvas* canvas, const std::string& value)
s_canvas_mgr.set_color_by(canvas, value);
}
-#if !ENABLE_EXTENDED_SELECTION
-void _3DScene::set_select_by(wxGLCanvas* canvas, const std::string& value)
-{
- s_canvas_mgr.set_select_by(canvas, value);
-}
-
-void _3DScene::set_drag_by(wxGLCanvas* canvas, const std::string& value)
-{
- s_canvas_mgr.set_drag_by(canvas, value);
-}
-
-std::string _3DScene::get_select_by(wxGLCanvas* canvas)
-{
- return s_canvas_mgr.get_select_by(canvas);
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
bool _3DScene::is_layers_editing_enabled(wxGLCanvas* canvas)
{
return s_canvas_mgr.is_layers_editing_enabled(canvas);
@@ -2157,12 +2047,10 @@ int _3DScene::get_in_object_volume_id(wxGLCanvas* canvas, int scene_vol_idx)
return s_canvas_mgr.get_in_object_volume_id(canvas, scene_vol_idx);
}
-#if ENABLE_EXTENDED_SELECTION
void _3DScene::mirror_selection(wxGLCanvas* canvas, Axis axis)
{
s_canvas_mgr.mirror_selection(canvas, axis);
}
-#endif // ENABLE_EXTENDED_SELECTION
void _3DScene::reload_scene(wxGLCanvas* canvas, bool force)
{
diff --git a/src/slic3r/GUI/3DScene.hpp b/src/slic3r/GUI/3DScene.hpp
index 35638b2ef..d33f34b85 100644
--- a/src/slic3r/GUI/3DScene.hpp
+++ b/src/slic3r/GUI/3DScene.hpp
@@ -290,12 +290,6 @@ public:
float render_color[4];
// An ID containing the object ID, volume ID and instance ID.
int composite_id;
-#if !ENABLE_EXTENDED_SELECTION
- // An ID for group selection. It may be the same for all meshes of all object instances, or for just a single object instance.
- int select_group_id;
- // An ID for group dragging. It may be the same for all meshes of all object instances, or for just a single object instance.
- int drag_group_id;
-#endif // !ENABLE_EXTENDED_SELECTION
// An ID containing the extruder ID (used to select color).
int extruder_id;
// Is this object selected?
@@ -365,9 +359,7 @@ public:
const Vec3d& get_rotation() const;
void set_rotation(const Vec3d& rotation);
-#if ENABLE_EXTENDED_SELECTION
const Vec3d& get_scaling_factor() const;
-#endif // ENABLE_EXTENDED_SELECTION
void set_scaling_factor(const Vec3d& scaling_factor);
const Vec3d& get_mirror() const;
@@ -381,11 +373,6 @@ public:
void set_convex_hull(const TriangleMesh& convex_hull);
-#if !ENABLE_EXTENDED_SELECTION
- void set_select_group_id(const std::string& select_by);
- void set_drag_group_id(const std::string& drag_by);
-#endif // !ENABLE_EXTENDED_SELECTION
-
int object_idx() const { return this->composite_id / 1000000; }
int volume_idx() const { return (this->composite_id / 1000) % 1000; }
int instance_idx() const { return this->composite_id % 1000; }
@@ -450,9 +437,7 @@ public:
#endif // ENABLE_MODELVOLUME_TRANSFORM
};
-#if ENABLE_EXTENDED_SELECTION
typedef std::vector<GLVolume*> GLVolumePtrs;
-#endif // ENABLE_EXTENDED_SELECTION
class GLVolumeCollection
{
@@ -461,32 +446,17 @@ class GLVolumeCollection
float print_box_max[3];
public:
-#if ENABLE_EXTENDED_SELECTION
GLVolumePtrs volumes;
-#else
- std::vector<GLVolume*> volumes;
-#endif // ENABLE_EXTENDED_SELECTION
GLVolumeCollection() {};
~GLVolumeCollection() { clear(); };
-#if ENABLE_EXTENDED_SELECTION
- std::vector<int> load_object(
- const ModelObject *model_object,
- int obj_idx,
- const std::vector<int> &instance_idxs,
- const std::string &color_by,
- bool use_VBOs);
-#else
std::vector<int> load_object(
const ModelObject *model_object,
int obj_idx,
const std::vector<int> &instance_idxs,
const std::string &color_by,
- const std::string &select_by,
- const std::string &drag_by,
bool use_VBOs);
-#endif // ENABLE_EXTENDED_SELECTION
int load_wipe_tower_preview(
int obj_idx, float pos_x, float pos_y, float width, float depth, float height, float rotation_angle, bool use_VBOs, bool size_unknown, float brim_width);
@@ -520,11 +490,6 @@ public:
void update_colors_by_extruder(const DynamicPrintConfig* config);
-#if !ENABLE_EXTENDED_SELECTION
- void set_select_by(const std::string& select_by);
- void set_drag_by(const std::string& drag_by);
-#endif // !ENABLE_EXTENDED_SELECTION
-
// Returns a vector containing the sorted list of all the print_zs of the volumes contained in this collection
std::vector<double> get_current_print_zs(bool active_only) const;
@@ -552,20 +517,11 @@ public:
static unsigned int get_volumes_count(wxGLCanvas* canvas);
static void reset_volumes(wxGLCanvas* canvas);
-#if !ENABLE_EXTENDED_SELECTION
- static void deselect_volumes(wxGLCanvas* canvas);
- static void select_volume(wxGLCanvas* canvas, unsigned int id);
- static void update_volumes_selection(wxGLCanvas* canvas, const std::vector<int>& selections);
-#endif // !ENABLE_EXTENDED_SELECTION
static int check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config);
static bool move_volume_up(wxGLCanvas* canvas, unsigned int id);
static bool move_volume_down(wxGLCanvas* canvas, unsigned int id);
-#if ENABLE_EXTENDED_SELECTION
static GUI::GLCanvas3D* get_canvas(wxGLCanvas* canvas);
-#else
- static void set_objects_selections(wxGLCanvas* canvas, const std::vector<int>& selections);
-#endif // ENABLE_EXTENDED_SELECTION
static void set_config(wxGLCanvas* canvas, DynamicPrintConfig* config);
static void set_print(wxGLCanvas* canvas, Print* print);
@@ -581,12 +537,6 @@ public:
static void set_cutting_plane(wxGLCanvas* canvas, float z, const ExPolygons& polygons);
static void set_color_by(wxGLCanvas* canvas, const std::string& value);
-#if !ENABLE_EXTENDED_SELECTION
- static void set_select_by(wxGLCanvas* canvas, const std::string& value);
- static void set_drag_by(wxGLCanvas* canvas, const std::string& value);
-
- static std::string get_select_by(wxGLCanvas* canvas);
-#endif // !ENABLE_EXTENDED_SELECTION
static bool is_layers_editing_enabled(wxGLCanvas* canvas);
static bool is_layers_editing_allowed(wxGLCanvas* canvas);
@@ -628,9 +578,7 @@ public:
static int get_first_volume_id(wxGLCanvas* canvas, int obj_idx);
static int get_in_object_volume_id(wxGLCanvas* canvas, int scene_vol_idx);
-#if ENABLE_EXTENDED_SELECTION
static void mirror_selection(wxGLCanvas* canvas, Axis axis);
-#endif // ENABLE_EXTENDED_SELECTION
static void reload_scene(wxGLCanvas* canvas, bool force);
diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp
index 5a03be086..5ea74fc17 100644
--- a/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/src/slic3r/GUI/GLCanvas3D.cpp
@@ -1093,14 +1093,7 @@ const Vec3d GLCanvas3D::Mouse::Drag::Invalid_3D_Point(DBL_MAX, DBL_MAX, DBL_MAX)
GLCanvas3D::Mouse::Drag::Drag()
: start_position_2D(Invalid_2D_Point)
, start_position_3D(Invalid_3D_Point)
-#if !ENABLE_EXTENDED_SELECTION
- , volume_center_offset(0, 0, 0)
- , move_with_shift(false)
-#endif // !ENABLE_EXTENDED_SELECTION
, move_volume_idx(-1)
-#if !ENABLE_EXTENDED_SELECTION
- , gizmo_volume_idx(-1)
-#endif // !ENABLE_EXTENDED_SELECTION
{
}
@@ -1133,7 +1126,6 @@ bool GLCanvas3D::Mouse::is_start_position_3D_defined() const
return (drag.start_position_3D != Drag::Invalid_3D_Point);
}
-#if ENABLE_EXTENDED_SELECTION
GLCanvas3D::Selection::VolumeCache::VolumeCache()
: m_position(Vec3d::Zero())
, m_rotation(Vec3d::Zero())
@@ -1918,7 +1910,6 @@ void GLCanvas3D::Selection::_synchronize_unselected_instances()
}
}
}
-#endif // ENABLE_EXTENDED_SELECTION
const float GLCanvas3D::Gizmos::OverlayTexturesScale = 0.75f;
const float GLCanvas3D::Gizmos::OverlayOffsetX = 10.0f * OverlayTexturesScale;
@@ -2006,22 +1997,12 @@ void GLCanvas3D::Gizmos::set_enabled(bool enable)
m_enabled = enable;
}
-#if ENABLE_EXTENDED_SELECTION
std::string GLCanvas3D::Gizmos::update_hover_state(const GLCanvas3D& canvas, const Vec2d& mouse_pos, const GLCanvas3D::Selection& selection)
-#else
-void GLCanvas3D::Gizmos::update_hover_state(const GLCanvas3D& canvas, const Vec2d& mouse_pos)
-#endif // ENABLE_EXTENDED_SELECTION
{
-#if ENABLE_EXTENDED_SELECTION
std::string name = "";
-#endif // ENABLE_EXTENDED_SELECTION
if (!m_enabled)
-#if ENABLE_EXTENDED_SELECTION
return name;
-#else
- return;
-#endif // ENABLE_EXTENDED_SELECTION
float cnv_h = (float)canvas.get_canvas_size().get_height();
float height = _get_total_overlay_height();
@@ -2035,32 +2016,20 @@ void GLCanvas3D::Gizmos::update_hover_state(const GLCanvas3D& canvas, const Vec2
float half_tex_size = 0.5f * tex_size;
// we currently use circular icons for gizmo, so we check the radius
-#if ENABLE_EXTENDED_SELECTION
if (it->second->is_activable(selection) && (it->second->get_state() != GLGizmoBase::On))
-#else
- if (it->second->get_state() != GLGizmoBase::On)
-#endif // ENABLE_EXTENDED_SELECTION
{
bool inside = (mouse_pos - Vec2d(OverlayOffsetX + half_tex_size, top_y + half_tex_size)).norm() < half_tex_size;
it->second->set_state(inside ? GLGizmoBase::Hover : GLGizmoBase::Off);
-#if ENABLE_EXTENDED_SELECTION
if (inside)
name = it->second->get_name();
-#endif // ENABLE_EXTENDED_SELECTION
}
top_y += (tex_size + OverlayGapY);
}
-#if ENABLE_EXTENDED_SELECTION
return name;
-#endif // ENABLE_EXTENDED_SELECTION
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::update_on_off_state(const GLCanvas3D& canvas, const Vec2d& mouse_pos, const GLCanvas3D::Selection& selection)
-#else
-void GLCanvas3D::Gizmos::update_on_off_state(const GLCanvas3D& canvas, const Vec2d& mouse_pos)
-#endif // ENABLE_EXTENDED_SELECTION
{
if (!m_enabled)
return;
@@ -2077,11 +2046,7 @@ void GLCanvas3D::Gizmos::update_on_off_state(const GLCanvas3D& canvas, const Vec
float half_tex_size = 0.5f * tex_size;
// we currently use circular icons for gizmo, so we check the radius
-#if ENABLE_EXTENDED_SELECTION
if (it->second->is_activable(selection) && ((mouse_pos - Vec2d(OverlayOffsetX + half_tex_size, top_y + half_tex_size)).norm() < half_tex_size))
-#else
- if ((mouse_pos - Vec2d(OverlayOffsetX + half_tex_size, top_y + half_tex_size)).norm() < half_tex_size)
-#endif // ENABLE_EXTENDED_SELECTION
{
if ((it->second->get_state() == GLGizmoBase::On))
{
@@ -2105,7 +2070,6 @@ void GLCanvas3D::Gizmos::update_on_off_state(const GLCanvas3D& canvas, const Vec
it->second->set_state(GLGizmoBase::On);
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::update_on_off_state(const Selection& selection)
{
GizmosMap::iterator it = m_gizmos.find(m_current);
@@ -2118,7 +2082,6 @@ void GLCanvas3D::Gizmos::update_on_off_state(const Selection& selection)
}
}
}
-#endif // ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::reset_all_states()
{
@@ -2149,7 +2112,6 @@ void GLCanvas3D::Gizmos::set_hover_id(int id)
}
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::enable_grabber(EType type, unsigned int id, bool enable)
{
if (!m_enabled)
@@ -2164,7 +2126,6 @@ void GLCanvas3D::Gizmos::enable_grabber(EType type, unsigned int id, bool enable
it->second->disable_grabber(id);
}
}
-#endif // ENABLE_EXTENDED_SELECTION
bool GLCanvas3D::Gizmos::overlay_contains_mouse(const GLCanvas3D& canvas, const Vec2d& mouse_pos) const
{
@@ -2246,7 +2207,6 @@ bool GLCanvas3D::Gizmos::is_dragging() const
return (curr != nullptr) ? curr->is_dragging() : false;
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::start_dragging(const GLCanvas3D::Selection& selection)
{
if (!m_enabled)
@@ -2256,17 +2216,6 @@ void GLCanvas3D::Gizmos::start_dragging(const GLCanvas3D::Selection& selection)
if (curr != nullptr)
curr->start_dragging(selection);
}
-#else
-void GLCanvas3D::Gizmos::start_dragging(const BoundingBoxf3& box)
-{
- if (!m_enabled)
- return;
-
- GLGizmoBase* curr = _get_current();
- if (curr != nullptr)
- curr->start_dragging(box);
-}
-#endif // ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::stop_dragging()
{
@@ -2278,7 +2227,6 @@ void GLCanvas3D::Gizmos::stop_dragging()
curr->stop_dragging();
}
-#if ENABLE_EXTENDED_SELECTION
Vec3d GLCanvas3D::Gizmos::get_displacement() const
{
if (!m_enabled)
@@ -2287,26 +2235,6 @@ Vec3d GLCanvas3D::Gizmos::get_displacement() const
GizmosMap::const_iterator it = m_gizmos.find(Move);
return (it != m_gizmos.end()) ? reinterpret_cast<GLGizmoMove3D*>(it->second)->get_displacement() : Vec3d::Zero();
}
-#else
-Vec3d GLCanvas3D::Gizmos::get_position() const
-{
- if (!m_enabled)
- return Vec3d::Zero();
-
- GizmosMap::const_iterator it = m_gizmos.find(Move);
- return (it != m_gizmos.end()) ? reinterpret_cast<GLGizmoMove3D*>(it->second)->get_position() : Vec3d::Zero();
-}
-
-void GLCanvas3D::Gizmos::set_position(const Vec3d& position)
-{
- if (!m_enabled)
- return;
-
- GizmosMap::const_iterator it = m_gizmos.find(Move);
- if (it != m_gizmos.end())
- reinterpret_cast<GLGizmoMove3D*>(it->second)->set_position(position);
-}
-#endif // ENABLE_EXTENDED_SELECTION
Vec3d GLCanvas3D::Gizmos::get_scale() const
{
@@ -2395,26 +2323,16 @@ void GLCanvas3D::Gizmos::delete_current_grabber(bool delete_all)
reinterpret_cast<GLGizmoSlaSupports*>(it->second)->delete_current_grabber(delete_all);
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::render_current_gizmo(const GLCanvas3D::Selection& selection) const
-#else
-void GLCanvas3D::Gizmos::render_current_gizmo(const BoundingBoxf3& box) const
-#endif // ENABLE_EXTENDED_SELECTION
{
if (!m_enabled)
return;
::glDisable(GL_DEPTH_TEST);
-#if ENABLE_EXTENDED_SELECTION
_render_current_gizmo(selection);
-#else
- if (box.radius() > 0.0)
- _render_current_gizmo(box);
-#endif // ENABLE_EXTENDED_SELECTION
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::render_current_gizmo_for_picking_pass(const GLCanvas3D::Selection& selection) const
{
if (!m_enabled)
@@ -2424,17 +2342,6 @@ void GLCanvas3D::Gizmos::render_current_gizmo_for_picking_pass(const GLCanvas3D:
if (curr != nullptr)
curr->render_for_picking(selection);
}
-#else
-void GLCanvas3D::Gizmos::render_current_gizmo_for_picking_pass(const BoundingBoxf3& box) const
-{
- if (!m_enabled)
- return;
-
- GLGizmoBase* curr = _get_current();
- if (curr != nullptr)
- curr->render_for_picking(box);
-}
-#endif // ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::render_overlay(const GLCanvas3D& canvas) const
{
@@ -2485,21 +2392,12 @@ void GLCanvas3D::Gizmos::_render_overlay(const GLCanvas3D& canvas) const
}
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::Gizmos::_render_current_gizmo(const GLCanvas3D::Selection& selection) const
{
GLGizmoBase* curr = _get_current();
if (curr != nullptr)
curr->render(selection);
}
-#else
-void GLCanvas3D::Gizmos::_render_current_gizmo(const BoundingBoxf3& box) const
-{
- GLGizmoBase* curr = _get_current();
- if (curr != nullptr)
- curr->render(box);
-}
-#endif // ENABLE_EXTENDED_SELECTION
float GLCanvas3D::Gizmos::_get_total_overlay_height() const
{
@@ -2825,35 +2723,18 @@ void GLCanvas3D::LegendTexture::render(const GLCanvas3D& canvas) const
}
wxDEFINE_EVENT(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, SimpleEvent);
-#if ENABLE_EXTENDED_SELECTION
wxDEFINE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent);
-#else
-wxDEFINE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, ObjectSelectEvent);
-#endif // ENABLE_EXTENDED_SELECTION
wxDEFINE_EVENT(EVT_GLCANVAS_VIEWPORT_CHANGED, SimpleEvent);
-#if !ENABLE_EXTENDED_SELECTION
-wxDEFINE_EVENT(EVT_GLCANVAS_DOUBLE_CLICK, SimpleEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
wxDEFINE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, Vec2dEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_MODEL_UPDATE, SimpleEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_REMOVE_OBJECT, SimpleEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_ARRANGE, SimpleEvent);
-#if !ENABLE_EXTENDED_SELECTION
-wxDEFINE_EVENT(EVT_GLCANVAS_ROTATE_OBJECT, Event<int>);
-wxDEFINE_EVENT(EVT_GLCANVAS_SCALE_UNIFORMLY, SimpleEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
wxDEFINE_EVENT(EVT_GLCANVAS_INCREASE_INSTANCES, Event<int>);
wxDEFINE_EVENT(EVT_GLCANVAS_INSTANCE_MOVED, SimpleEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_WIPETOWER_MOVED, Vec3dEvent);
wxDEFINE_EVENT(EVT_GLCANVAS_ENABLE_ACTION_BUTTONS, Event<bool>);
wxDEFINE_EVENT(EVT_GLCANVAS_UPDATE_GEOMETRY, Vec3dsEvent<2>);
-#if !ENABLE_EXTENDED_SELECTION
-wxDEFINE_EVENT(EVT_GIZMO_SCALE, Vec3dEvent);
-wxDEFINE_EVENT(EVT_GIZMO_ROTATE, Vec3dEvent);
-wxDEFINE_EVENT(EVT_GIZMO_FLATTEN, Vec3dEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
-
GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas)
: m_canvas(canvas)
, m_context(nullptr)
@@ -2875,14 +2756,8 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas)
, m_shader_enabled(false)
, m_dynamic_background_enabled(false)
, m_multisample_allowed(false)
-#if ENABLE_EXTENDED_SELECTION
, m_regenerate_volumes(true)
-#endif // ENABLE_EXTENDED_SELECTION
, m_color_by("volume")
-#if !ENABLE_EXTENDED_SELECTION
- , m_select_by("object")
- , m_drag_by("instance")
-#endif // !ENABLE_EXTENDED_SELECTION
, m_reload_delayed(false)
{
if (m_canvas != nullptr)
@@ -2893,9 +2768,7 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas)
m_timer.SetOwner(m_canvas);
}
-#if ENABLE_EXTENDED_SELECTION
m_selection.set_volumes(&m_volumes.volumes);
-#endif // ENABLE_EXTENDED_SELECTION
}
GLCanvas3D::~GLCanvas3D()
@@ -3028,9 +2901,7 @@ void GLCanvas3D::reset_volumes()
return;
#endif // !ENABLE_USE_UNIQUE_GLCONTEXT
-#if ENABLE_EXTENDED_SELECTION
m_selection.clear();
-#endif // ENABLE_EXTENDED_SELECTION
m_volumes.release_geometry();
m_volumes.clear();
m_dirty = true;
@@ -3040,48 +2911,6 @@ void GLCanvas3D::reset_volumes()
_reset_warning_texture();
}
-#if !ENABLE_EXTENDED_SELECTION
-void GLCanvas3D::deselect_volumes()
-{
- for (GLVolume* vol : m_volumes.volumes)
- {
- if (vol != nullptr)
- vol->selected = false;
- }
-}
-
-void GLCanvas3D::select_volume(unsigned int id)
-{
- if (id < (unsigned int)m_volumes.volumes.size())
- {
- GLVolume* vol = m_volumes.volumes[id];
- if (vol != nullptr)
- vol->selected = true;
- }
-}
-
-void GLCanvas3D::update_volumes_selection(const std::vector<int>& selections)
-{
- if (m_model == nullptr)
- return;
-
- if (selections.empty())
- return;
-
- for (unsigned int obj_idx = 0; obj_idx < (unsigned int)m_model->objects.size(); ++obj_idx)
- {
- if ((selections[obj_idx] == 1) && (obj_idx < (unsigned int)m_objects_volumes_idxs.size()))
- {
- const std::vector<int>& volume_idxs = m_objects_volumes_idxs[obj_idx];
- for (int v : volume_idxs)
- {
- select_volume(v);
- }
- }
- }
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
int GLCanvas3D::check_volumes_outside_state(const DynamicPrintConfig* config) const
{
ModelInstance::EPrintVolumeState state;
@@ -3095,10 +2924,6 @@ bool GLCanvas3D::move_volume_up(unsigned int id)
{
std::swap(m_volumes.volumes[id - 1], m_volumes.volumes[id]);
std::swap(m_volumes.volumes[id - 1]->composite_id, m_volumes.volumes[id]->composite_id);
-#if !ENABLE_EXTENDED_SELECTION
- std::swap(m_volumes.volumes[id - 1]->select_group_id, m_volumes.volumes[id]->select_group_id);
- std::swap(m_volumes.volumes[id - 1]->drag_group_id, m_volumes.volumes[id]->drag_group_id);
-#endif // !ENABLE_EXTENDED_SELECTION
return true;
}
@@ -3111,23 +2936,12 @@ bool GLCanvas3D::move_volume_down(unsigned int id)
{
std::swap(m_volumes.volumes[id + 1], m_volumes.volumes[id]);
std::swap(m_volumes.volumes[id + 1]->composite_id, m_volumes.volumes[id]->composite_id);
-#if !ENABLE_EXTENDED_SELECTION
- std::swap(m_volumes.volumes[id + 1]->select_group_id, m_volumes.volumes[id]->select_group_id);
- std::swap(m_volumes.volumes[id + 1]->drag_group_id, m_volumes.volumes[id]->drag_group_id);
-#endif // !ENABLE_EXTENDED_SELECTION
return true;
}
return false;
}
-#if !ENABLE_EXTENDED_SELECTION
-void GLCanvas3D::set_objects_selections(const std::vector<int>& selections)
-{
- m_objects_selections = selections;
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
void GLCanvas3D::set_config(DynamicPrintConfig* config)
{
m_config = config;
@@ -3141,9 +2955,7 @@ void GLCanvas3D::set_print(Print* print)
void GLCanvas3D::set_model(Model* model)
{
m_model = model;
-#if ENABLE_EXTENDED_SELECTION
m_selection.set_model(m_model);
-#endif // ENABLE_EXTENDED_SELECTION
}
void GLCanvas3D::set_bed_shape(const Pointfs& shape)
@@ -3201,30 +3013,6 @@ void GLCanvas3D::set_color_by(const std::string& value)
m_color_by = value;
}
-#if !ENABLE_EXTENDED_SELECTION
-void GLCanvas3D::set_select_by(const std::string& value)
-{
- m_select_by = value;
- m_volumes.set_select_by(value);
-}
-
-void GLCanvas3D::set_drag_by(const std::string& value)
-{
- m_drag_by = value;
- m_volumes.set_drag_by(value);
-}
-
-const std::string& GLCanvas3D::get_select_by() const
-{
- return m_select_by;
-}
-
-const std::string& GLCanvas3D::get_drag_by() const
-{
- return m_drag_by;
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
float GLCanvas3D::get_camera_zoom() const
{
return m_camera.zoom;
@@ -3279,9 +3067,7 @@ void GLCanvas3D::enable_legend_texture(bool enable)
void GLCanvas3D::enable_picking(bool enable)
{
m_picking_enabled = enable;
-#if ENABLE_EXTENDED_SELECTION
m_selection.set_mode(Selection::Instance);
-#endif // ENABLE_EXTENDED_SELECTION
}
void GLCanvas3D::enable_moving(bool enable)
@@ -3345,13 +3131,11 @@ void GLCanvas3D::zoom_to_volumes()
}
#if ENABLE_MODIFIED_CAMERA_TARGET
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::zoom_to_selection()
{
if (!m_selection.is_empty())
_zoom_to_bounding_box(m_selection.get_bounding_box());
}
-#endif // ENABLE_EXTENDED_SELECTION
#endif // ENABLE_MODIFIED_CAMERA_TARGET
void GLCanvas3D::select_view(const std::string& direction)
@@ -3405,7 +3189,6 @@ void GLCanvas3D::update_gizmos_data()
if (!m_gizmos.is_enabled())
return;
-#if ENABLE_EXTENDED_SELECTION
bool enable_move_z = !m_selection.is_wipe_tower();
m_gizmos.enable_grabber(Gizmos::Move, 2, enable_move_z);
bool enable_scale_xyz = m_selection.is_single_full_instance();
@@ -3429,32 +3212,6 @@ void GLCanvas3D::update_gizmos_data()
m_gizmos.set_rotation(Vec3d::Zero());
m_gizmos.set_flattening_data(nullptr);
}
-#else
- int id = _get_first_selected_object_id();
- if ((id != -1) && (m_model != nullptr))
- {
- ModelObject* model_object = m_model->objects[id];
- if (model_object != nullptr)
- {
- ModelInstance* model_instance = model_object->instances[0];
- if (model_instance != nullptr)
- {
- m_gizmos.set_position(model_instance->get_offset());
- m_gizmos.set_scale(model_instance->get_scaling_factor());
- m_gizmos.set_rotation(model_instance->get_rotation());
- m_gizmos.set_flattening_data(model_object);
- m_gizmos.set_model_object_ptr(model_object);
- }
- }
- }
- else
- {
- m_gizmos.set_position(Vec3d::Zero());
- m_gizmos.set_scale(Vec3d::Ones());
- m_gizmos.set_rotation(Vec3d::Zero());
- m_gizmos.set_flattening_data(nullptr);
- }
-#endif // ENABLE_EXTENDED_SELECTION
}
// Returns a Rect object denoting size and position of the Reset button used by a gizmo.
@@ -3522,9 +3279,7 @@ void GLCanvas3D::render()
}
_render_objects();
-#if ENABLE_EXTENDED_SELECTION
_render_selection();
-#endif // ENABLE_EXTENDED_SELECTION
if (!is_custom_bed) // textured bed needs to be rendered after objects
{
@@ -3567,11 +3322,7 @@ std::vector<int> GLCanvas3D::load_object(const ModelObject& model_object, int ob
instance_idxs.push_back(i);
}
}
-#if ENABLE_EXTENDED_SELECTION
return m_volumes.load_object(&model_object, obj_idx, instance_idxs, m_color_by, m_use_VBOs && m_initialized);
-#else
- return m_volumes.load_object(&model_object, obj_idx, instance_idxs, m_color_by, m_select_by, m_drag_by, m_use_VBOs && m_initialized);
-#endif // ENABLE_EXTENDED_SELECTION
}
std::vector<int> GLCanvas3D::load_object(const Model& model, int obj_idx)
@@ -3602,31 +3353,24 @@ int GLCanvas3D::get_in_object_volume_id(int scene_vol_idx) const
return ((0 <= scene_vol_idx) && (scene_vol_idx < (int)m_volumes.volumes.size())) ? m_volumes.volumes[scene_vol_idx]->volume_idx() : -1;
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::mirror_selection(Axis axis)
{
m_selection.mirror(axis);
_on_mirror();
wxGetApp().obj_manipul()->update_settings_value(m_selection);
}
-#endif // ENABLE_EXTENDED_SELECTION
void GLCanvas3D::reload_scene(bool force)
{
if ((m_canvas == nullptr) || (m_config == nullptr) || (m_model == nullptr))
return;
-#if !ENABLE_EXTENDED_SELECTION
- reset_volumes();
-#endif // !ENABLE_EXTENDED_SELECTION
-
#if !ENABLE_USE_UNIQUE_GLCONTEXT
// ensures this canvas is current
if (!set_current())
return;
#endif // !ENABLE_USE_UNIQUE_GLCONTEXT
-#if ENABLE_EXTENDED_SELECTION
if (m_regenerate_volumes)
{
reset_volumes();
@@ -3634,7 +3378,6 @@ void GLCanvas3D::reload_scene(bool force)
// to update the toolbar
post_event(SimpleEvent(EVT_GLCANVAS_OBJECT_SELECT));
}
-#endif // ENABLE_EXTENDED_SELECTION
set_bed_shape(dynamic_cast<const ConfigOptionPoints*>(m_config->option("bed_shape"))->values);
@@ -3646,7 +3389,6 @@ void GLCanvas3D::reload_scene(bool force)
m_reload_delayed = false;
-#if ENABLE_EXTENDED_SELECTION
if (m_regenerate_volumes)
{
for (unsigned int obj_idx = 0; obj_idx < (unsigned int)m_model->objects.size(); ++obj_idx)
@@ -3656,26 +3398,9 @@ void GLCanvas3D::reload_scene(bool force)
}
update_gizmos_data();
-#else
- m_objects_volumes_idxs.clear();
-
- for (unsigned int obj_idx = 0; obj_idx < (unsigned int)m_model->objects.size(); ++obj_idx)
- {
- m_objects_volumes_idxs.push_back(load_object(*m_model, obj_idx));
- }
-
- // 1st call to reset if no objects left
- update_gizmos_data();
- update_volumes_selection(m_objects_selections);
- // 2nd call to restore selection, if any
- if (!m_objects_selections.empty())
- update_gizmos_data();
-#endif // ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
if (m_regenerate_volumes)
{
-#endif // ENABLE_EXTENDED_SELECTION
if (m_config->has("nozzle_diameter"))
{
// Should the wipe tower be visualized ?
@@ -3705,9 +3430,7 @@ void GLCanvas3D::reload_scene(bool force)
}
update_volumes_colors_by_extruder();
-#if ENABLE_EXTENDED_SELECTION
}
-#endif // ENABLE_EXTENDED_SELECTION
// checks for geometry outside the print volume to render it accordingly
if (!m_volumes.empty())
@@ -3736,10 +3459,8 @@ void GLCanvas3D::reload_scene(bool force)
post_event(Event<bool>(EVT_GLCANVAS_ENABLE_ACTION_BUTTONS, false));
}
-#if ENABLE_EXTENDED_SELECTION
// restore to default value
m_regenerate_volumes = true;
-#endif // ENABLE_EXTENDED_SELECTION
}
void GLCanvas3D::load_gcode_preview(const GCodePreviewData& preview_data, const std::vector<std::string>& str_tool_colors)
@@ -3903,19 +3624,7 @@ void GLCanvas3D::on_char(wxKeyEvent& evt)
// key B/b
case 66:
case 98: { zoom_to_bed(); break; }
-#if !ENABLE_EXTENDED_SELECTION
- // key L/l
- case 76:
- case 108: { post_event(Event<int>(EVT_GLCANVAS_ROTATE_OBJECT, -1)); break; }
- // key R/r
- case 82:
- case 114: { post_event(Event<int>(EVT_GLCANVAS_ROTATE_OBJECT, +1)); break; }
- // key S/s
- case 83:
- case 115: { post_event(SimpleEvent(EVT_GLCANVAS_SCALE_UNIFORMLY)); break; }
-#endif // !ENABLE_EXTENDED_SELECTION
#if ENABLE_MODIFIED_CAMERA_TARGET
-#if ENABLE_EXTENDED_SELECTION
// key Z/z
case 90:
case 122:
@@ -3931,11 +3640,6 @@ void GLCanvas3D::on_char(wxKeyEvent& evt)
// key Z/z
case 90:
case 122: { zoom_to_volumes(); break; }
-#endif // ENABLE_EXTENDED_SELECTION
-#else
- // key Z/z
- case 90:
- case 122: { zoom_to_volumes(); break; }
#endif // ENABLE_MODIFIED_CAMERA_TARGET
default:
{
@@ -3957,11 +3661,7 @@ void GLCanvas3D::on_mouse_wheel(wxMouseEvent& evt)
// Performs layers editing updates, if enabled
if (is_layers_editing_enabled())
{
-#if ENABLE_EXTENDED_SELECTION
int object_idx_selected = m_selection.get_object_idx();
-#else
- int object_idx_selected = _get_first_selected_object_id();
-#endif // ENABLE_EXTENDED_SELECTION
if (object_idx_selected != -1)
{
// A volume is selected. Test, whether hovering over a layer thickness bar.
@@ -4005,13 +3705,8 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
{
Point pos(evt.GetX(), evt.GetY());
-#if ENABLE_EXTENDED_SELECTION
int selected_object_idx = m_selection.get_object_idx();
int layer_editing_object_idx = is_layers_editing_enabled() ? selected_object_idx : -1;
-#else
- int selected_object_idx = _get_first_selected_object_id();
- int layer_editing_object_idx = is_layers_editing_enabled() ? selected_object_idx : -1;
-#endif // ENABLE_EXTENDED_SELECTION
m_layers_editing.last_object_id = layer_editing_object_idx;
bool gizmos_overlay_contains_mouse = m_gizmos.overlay_contains_mouse(*this, m_mouse.position);
int toolbar_contains_mouse = m_toolbar.contains_mouse(m_mouse.position);
@@ -4032,10 +3727,6 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
m_mouse.position = Vec2d(-1.0, -1.0);
m_dirty = true;
}
-#if !ENABLE_EXTENDED_SELECTION
- else if (evt.LeftDClick() && (m_hover_volume_id != -1) && !gizmos_overlay_contains_mouse && (toolbar_contains_mouse == -1))
- post_event(SimpleEvent(EVT_GLCANVAS_DOUBLE_CLICK));
-#endif // !ENABLE_EXTENDED_SELECTION
else if (evt.LeftDClick() && (toolbar_contains_mouse != -1))
{
m_toolbar_action_running = true;
@@ -4050,33 +3741,17 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
{
case Gizmos::Scale:
{
-#if ENABLE_EXTENDED_SELECTION
m_selection.scale(m_gizmos.get_scale());
_on_scale();
-#else
- post_event(Vec3dEvent(EVT_GIZMO_SCALE, m_gizmos.get_scale()));
-#endif // ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- wxGetApp().obj_manipul()->update_scale_values();
-#endif // ENABLE_EXTENDED_SELECTION
m_dirty = true;
break;
}
case Gizmos::Rotate:
{
-#if ENABLE_EXTENDED_SELECTION
m_selection.rotate(m_gizmos.get_rotation());
_on_rotate();
-#else
- post_event(Vec3dEvent(EVT_GIZMO_ROTATE, std::move(m_gizmos.get_rotation())));
-#endif // ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- wxGetApp().obj_manipul()->update_rotation_values();
-#endif // ENABLE_EXTENDED_SELECTION
m_dirty = true;
break;
}
@@ -4091,9 +3766,6 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
{
// If user pressed left or right button we first check whether this happened
// on a volume or not.
-#if !ENABLE_EXTENDED_SELECTION
- int volume_idx = m_hover_volume_id;
-#endif // !ENABLE_EXTENDED_SELECTION
m_layers_editing.state = LayersEditing::Unknown;
if ((layer_editing_object_idx != -1) && m_layers_editing.bar_rect_contains(*this, pos(0), pos(1)))
{
@@ -4127,45 +3799,23 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
m_dirty = true;
}
}
-#if ENABLE_EXTENDED_SELECTION
else if (!m_selection.is_empty() && gizmos_overlay_contains_mouse)
{
m_gizmos.update_on_off_state(*this, m_mouse.position, m_selection);
update_gizmos_data();
m_dirty = true;
}
-#else
- else if ((selected_object_idx != -1) && gizmos_overlay_contains_mouse)
- {
- update_gizmos_data();
- m_gizmos.update_on_off_state(*this, m_mouse.position);
- m_dirty = true;
- }
-#endif // ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
else if (evt.LeftDown() && !m_selection.is_empty() && m_gizmos.grabber_contains_mouse())
-#else
- else if (evt.LeftDown() && (selected_object_idx != -1) && m_gizmos.grabber_contains_mouse())
-#endif // ENABLE_EXTENDED_SELECTION
{
update_gizmos_data();
-#if ENABLE_EXTENDED_SELECTION
m_selection.start_dragging();
m_gizmos.start_dragging(m_selection);
-#else
- m_gizmos.start_dragging(_selected_volumes_bounding_box());
- m_mouse.drag.gizmo_volume_idx = _get_first_selected_volume_id(selected_object_idx);
-#endif // ENABLE_EXTENDED_SELECTION
if (m_gizmos.get_current_type() == Gizmos::Flatten) {
// Rotate the object so the normal points downward:
-#if ENABLE_EXTENDED_SELECTION
m_selection.rotate(m_gizmos.get_flattening_rotation());
_on_flatten();
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- post_event(Vec3dEvent(EVT_GIZMO_FLATTEN, m_gizmos.get_flattening_rotation()));
-#endif // ENABLE_EXTENDED_SELECTION
}
m_dirty = true;
@@ -4185,13 +3835,8 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
// Don't deselect a volume if layer editing is enabled. We want the object to stay selected
// during the scene manipulation.
-#if ENABLE_EXTENDED_SELECTION
if (m_picking_enabled && ((m_hover_volume_id != -1) || !is_layers_editing_enabled()))
-#else
- if (m_picking_enabled && ((volume_idx != -1) || !is_layers_editing_enabled()))
-#endif // ENABLE_EXTENDED_SELECTION
{
-#if ENABLE_EXTENDED_SELECTION
if (evt.LeftDown() && (m_hover_volume_id != -1))
{
bool already_selected = m_selection.contains_volume(m_hover_volume_id);
@@ -4211,76 +3856,27 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
post_event(SimpleEvent(EVT_GLCANVAS_OBJECT_SELECT));
m_dirty = true;
}
-#else
- if (volume_idx != -1)
- {
- deselect_volumes();
- select_volume(volume_idx);
- int group_id = m_volumes.volumes[volume_idx]->select_group_id;
- if (group_id != -1)
- {
- for (GLVolume* vol : m_volumes.volumes)
- {
- if ((vol != nullptr) && (vol->select_group_id == group_id))
- vol->selected = true;
- }
- }
-
- update_gizmos_data();
- m_dirty = true;
- }
-#endif // ENABLE_EXTENDED_SELECTION
}
// propagate event through callback
-#if !ENABLE_EXTENDED_SELECTION
- if (m_picking_enabled && (volume_idx != -1))
- _on_select(volume_idx, selected_object_idx);
-#endif // !ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
if (m_hover_volume_id != -1)
-#else
- if (volume_idx != -1)
-#endif // ENABLE_EXTENDED_SELECTION
{
-#if ENABLE_EXTENDED_SELECTION
if (evt.LeftDown() && m_moving_enabled && (m_mouse.drag.move_volume_idx == -1))
-#else
- if (evt.LeftDown() && m_moving_enabled)
-#endif // ENABLE_EXTENDED_SELECTION
{
// The mouse_to_3d gets the Z coordinate from the Z buffer at the screen coordinate pos x, y,
// an converts the screen space coordinate to unscaled object space.
-#if ENABLE_EXTENDED_SELECTION
Vec3d pos3d = _mouse_to_3d(pos);
-#else
- Vec3d pos3d = (volume_idx == -1) ? Vec3d(DBL_MAX, DBL_MAX, DBL_MAX) : _mouse_to_3d(pos);
-#endif
// Only accept the initial position, if it is inside the volume bounding box.
-#if ENABLE_EXTENDED_SELECTION
BoundingBoxf3 volume_bbox = m_volumes.volumes[m_hover_volume_id]->transformed_bounding_box();
-#else
- BoundingBoxf3 volume_bbox = m_volumes.volumes[volume_idx]->transformed_bounding_box();
-#endif // ENABLE_EXTENDED_SELECTION
volume_bbox.offset(1.0);
if (volume_bbox.contains(pos3d))
{
// The dragging operation is initiated.
-#if ENABLE_EXTENDED_SELECTION
m_mouse.drag.move_volume_idx = m_hover_volume_id;
m_selection.start_dragging();
-#else
- m_mouse.drag.move_with_shift = evt.ShiftDown();
- m_mouse.drag.move_volume_idx = volume_idx;
-#endif // ENABLE_EXTENDED_SELECTION
m_mouse.drag.start_position_3D = pos3d;
-#if !ENABLE_EXTENDED_SELECTION
- // Remember the shift to to the object center.The object center will later be used
- // to limit the object placement close to the bed.
- m_mouse.drag.volume_center_offset = volume_bbox.center() - pos3d;
-#endif // !ENABLE_EXTENDED_SELECTION
}
}
else if (evt.RightDown())
@@ -4291,7 +3887,6 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
render();
if (m_hover_volume_id != -1)
{
-#if ENABLE_EXTENDED_SELECTION
// if right clicking on volume, propagate event through callback (shows context menu)
if (m_volumes.volumes[m_hover_volume_id]->hover && !m_volumes.volumes[m_hover_volume_id]->is_wipe_tower)
{
@@ -4305,11 +3900,6 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
render();
post_event(Vec2dEvent(EVT_GLCANVAS_RIGHT_CLICK, pos.cast<double>()));
}
-#else
- // if right clicking on volume, propagate event through callback (shows context menu)
- if (m_volumes.volumes[volume_idx]->hover)
- post_event(Vec2dEvent(EVT_GLCANVAS_RIGHT_CLICK, pos.cast<double>()));
-#endif // ENABLE_EXTENDED_SELECTION
}
}
}
@@ -4322,60 +3912,13 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
// Get new position at the same Z of the initial click point.
float z0 = 0.0f;
float z1 = 1.0f;
-#if ENABLE_EXTENDED_SELECTION
// we do not want to translate objects if the user just clicked on an object while pressing shift to remove it from the selection and then drag
Vec3d cur_pos = m_selection.contains_volume(m_hover_volume_id) ? Linef3(_mouse_to_3d(pos, &z0), _mouse_to_3d(pos, &z1)).intersect_plane(m_mouse.drag.start_position_3D(2)) : m_mouse.drag.start_position_3D;
-#else
- Vec3d cur_pos = Linef3(_mouse_to_3d(pos, &z0), _mouse_to_3d(pos, &z1)).intersect_plane(m_mouse.drag.start_position_3D(2));
-#endif // ENABLE_EXTENDED_SELECTION
-
-#if !ENABLE_EXTENDED_SELECTION
- // Clip the new position, so the object center remains close to the bed.
- cur_pos += m_mouse.drag.volume_center_offset;
- Point cur_pos2(scale_(cur_pos(0)), scale_(cur_pos(1)));
- if (!m_bed.contains(cur_pos2))
- {
- Point ip = m_bed.point_projection(cur_pos2);
- cur_pos(0) = unscale<double>(ip(0));
- cur_pos(1) = unscale<double>(ip(1));
- }
- cur_pos -= m_mouse.drag.volume_center_offset;
-#endif // !ENABLE_EXTENDED_SELECTION
// Calculate the translation vector.
Vec3d displacement = cur_pos - m_mouse.drag.start_position_3D;
-#if ENABLE_EXTENDED_SELECTION
m_selection.translate(displacement);
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- // Get the volume being dragged.
- GLVolume* volume = m_volumes.volumes[m_mouse.drag.move_volume_idx];
- // Get all volumes belonging to the same group, if any.
- std::vector<GLVolume*> volumes;
- int group_id = m_mouse.drag.move_with_shift ? volume->select_group_id : volume->drag_group_id;
- if (group_id == -1)
- volumes.push_back(volume);
- else
- {
- for (GLVolume* v : m_volumes.volumes)
- {
- if (v != nullptr)
- {
- if ((m_mouse.drag.move_with_shift && (v->select_group_id == group_id)) || (!m_mouse.drag.move_with_shift && (v->drag_group_id == group_id)))
- volumes.push_back(v);
- }
- }
- }
-
- // Apply new temporary volume origin and ignore Z.
- for (GLVolume* v : volumes)
- {
- v->set_offset(v->get_offset() + Vec3d(displacement(0), displacement(1), 0.0));
- }
-
- wxGetApp().obj_manipul()->update_position_value(volume->get_offset());
- m_mouse.drag.start_position_3D = cur_pos;
-#endif // ENABLE_EXTENDED_SELECTION
m_dirty = true;
}
@@ -4387,95 +3930,44 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
m_mouse.dragging = true;
m_gizmos.update(mouse_ray(pos), &pos);
-#if !ENABLE_EXTENDED_SELECTION
- std::vector<GLVolume*> volumes;
- if (m_mouse.drag.gizmo_volume_idx != -1)
- {
- GLVolume* volume = m_volumes.volumes[m_mouse.drag.gizmo_volume_idx];
- // Get all volumes belonging to the same group, if any.
- if (volume->select_group_id == -1)
- volumes.push_back(volume);
- else
- {
- for (GLVolume* v : m_volumes.volumes)
- {
- if ((v != nullptr) && (v->select_group_id == volume->select_group_id))
- volumes.push_back(v);
- }
- }
- }
-#endif // !ENABLE_EXTENDED_SELECTION
-
switch (m_gizmos.get_current_type())
{
case Gizmos::Move:
{
// Apply new temporary offset
-#if ENABLE_EXTENDED_SELECTION
m_selection.translate(m_gizmos.get_displacement());
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- GLVolume* volume = m_volumes.volumes[m_mouse.drag.gizmo_volume_idx];
- Vec3d offset = m_gizmos.get_position() - volume->get_offset();
- for (GLVolume* v : volumes)
- {
- v->set_offset(v->get_offset() + offset);
- }
- wxGetApp().obj_manipul()->update_position_value(volume->get_offset());
-#endif // ENABLE_EXTENDED_SELECTION
break;
}
case Gizmos::Scale:
{
// Apply new temporary scale factors
-#if ENABLE_EXTENDED_SELECTION
m_selection.scale(m_gizmos.get_scale());
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- const Vec3d& scale = m_gizmos.get_scale();
- for (GLVolume* v : volumes)
- {
- v->set_scaling_factor(scale);
- }
- wxGetApp().obj_manipul()->update_scale_value(scale);
-#endif // ENABLE_EXTENDED_SELECTION
break;
}
case Gizmos::Rotate:
{
// Apply new temporary rotations
-#if ENABLE_EXTENDED_SELECTION
m_selection.rotate(m_gizmos.get_rotation());
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- // Apply new temporary rotation
- const Vec3d& rotation = m_gizmos.get_rotation();
- for (GLVolume* v : volumes)
- {
- v->set_rotation(rotation);
- }
- wxGetApp().obj_manipul()->update_rotation_value(rotation);
-#endif // ENABLE_EXTENDED_SELECTION
break;
}
default:
break;
}
-#if ENABLE_EXTENDED_SELECTION
-#else
- if (!volumes.empty())
- {
- BoundingBoxf3 bb;
- for (const GLVolume* volume : volumes)
- {
- bb.merge(volume->transformed_bounding_box());
- }
- const Vec3d& size = bb.size();
- const Vec3d& scale = m_gizmos.get_scale();
- post_event(Vec3dsEvent<2>(EVT_GLCANVAS_UPDATE_GEOMETRY, {size, scale}));
- }
-#endif // ENABLE_EXTENDED_SELECTION
+// if (!volumes.empty())
+// {
+// BoundingBoxf3 bb;
+// for (const GLVolume* volume : volumes)
+// {
+// bb.merge(volume->transformed_bounding_box());
+// }
+// const Vec3d& size = bb.size();
+// const Vec3d& scale = m_gizmos.get_scale();
+// post_event(Vec3dsEvent<2>(EVT_GLCANVAS_UPDATE_GEOMETRY, {size, scale}));
+// }
m_dirty = true;
}
@@ -4534,40 +4026,13 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
}
else if ((m_mouse.drag.move_volume_idx != -1) && m_mouse.dragging)
{
-#if ENABLE_EXTENDED_SELECTION
m_regenerate_volumes = false;
_on_move();
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- // get all volumes belonging to the same group, if any
- std::vector<int> volume_idxs;
- int vol_id = m_mouse.drag.move_volume_idx;
- int group_id = m_mouse.drag.move_with_shift ? m_volumes.volumes[vol_id]->select_group_id : m_volumes.volumes[vol_id]->drag_group_id;
- if (group_id == -1)
- volume_idxs.push_back(vol_id);
- else
- {
- for (int i = 0; i < (int)m_volumes.volumes.size(); ++i)
- {
- if ((m_mouse.drag.move_with_shift && (m_volumes.volumes[i]->select_group_id == group_id)) || (m_volumes.volumes[i]->drag_group_id == group_id))
- volume_idxs.push_back(i);
- }
- }
-
- _on_move(volume_idxs);
-
- // force re-selection of the wipe tower, if needed
- if ((volume_idxs.size() == 1) && m_volumes.volumes[volume_idxs[0]]->is_wipe_tower)
- select_volume(volume_idxs[0]);
-#endif // ENABLE_EXTENDED_SELECTION
}
else if (m_gizmos.get_current_type() == Gizmos::SlaSupports && m_hover_volume_id != -1)
{
-#if ENABLE_EXTENDED_SELECTION
int id = m_selection.get_object_idx();
-#else
- int id = _get_first_selected_object_id();
-#endif // ENABLE_EXTENDED_SELECTION
if ((id != -1) && (m_model != nullptr)) {
m_gizmos.clicked_on_object(Vec2d(pos(0), pos(1)));
@@ -4582,14 +4047,9 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
if (m_picking_enabled && !m_toolbar_action_running)
#endif // ENABLE_GIZMOS_RESET
{
-#if ENABLE_EXTENDED_SELECTION
m_selection.clear();
wxGetApp().obj_manipul()->update_settings_value(m_selection);
post_event(SimpleEvent(EVT_GLCANVAS_OBJECT_SELECT));
-#else
- deselect_volumes();
- _on_select(-1, -1);
-#endif // ENABLE_EXTENDED_SELECTION
update_gizmos_data();
}
#if ENABLE_GIZMOS_RESET
@@ -4603,61 +4063,28 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
{
case Gizmos::Move:
{
-#if ENABLE_EXTENDED_SELECTION
m_regenerate_volumes = false;
_on_move();
-#else
- // get all volumes belonging to the same group, if any
- std::vector<int> volume_idxs;
- int vol_id = m_mouse.drag.gizmo_volume_idx;
- int group_id = m_volumes.volumes[vol_id]->select_group_id;
- if (group_id == -1)
- volume_idxs.push_back(vol_id);
- else
- {
- for (int i = 0; i < (int)m_volumes.volumes.size(); ++i)
- {
- if (m_volumes.volumes[i]->select_group_id == group_id)
- volume_idxs.push_back(i);
- }
- }
-
- _on_move(volume_idxs);
-#endif // ENABLE_EXTENDED_SELECTION
-
break;
}
case Gizmos::Scale:
{
-#if ENABLE_EXTENDED_SELECTION
_on_scale();
-#endif // ENABLE_EXTENDED_SELECTION
break;
}
case Gizmos::Rotate:
{
-#if ENABLE_EXTENDED_SELECTION
_on_rotate();
-#else
- post_event(Vec3dEvent(EVT_GIZMO_ROTATE, m_gizmos.get_rotation()));
-#endif // ENABLE_EXTENDED_SELECTION
break;
}
default:
break;
}
m_gizmos.stop_dragging();
-#if ENABLE_EXTENDED_SELECTION
wxGetApp().obj_manipul()->update_settings_value(m_selection);
-#else
- wxGetApp().obj_manipul()->update_values();
-#endif // ENABLE_EXTENDED_SELECTION
}
m_mouse.drag.move_volume_idx = -1;
-#if !ENABLE_EXTENDED_SELECTION
- m_mouse.drag.gizmo_volume_idx = -1;
-#endif // !ENABLE_EXTENDED_SELECTION
m_mouse.set_start_position_3D_as_invalid();
m_mouse.set_start_position_2D_as_invalid();
m_mouse.dragging = false;
@@ -4859,16 +4286,6 @@ bool GLCanvas3D::_init_toolbar()
if (!m_toolbar.add_separator())
return false;
-#if !ENABLE_EXTENDED_SELECTION
- item.name = "settings";
- item.tooltip = GUI::L_str("Settings...");
- item.sprite_id = 8;
- item.is_toggable = false;
- item.action_event = EVT_GLTOOLBAR_SETTINGS;
- if (!m_toolbar.add_item(item))
- return false;
-#endif // !ENABLE_EXTENDED_SELECTION
-
item.name = "layersediting";
item.tooltip = GUI::L_str("Layers editing");
item.sprite_id = 9;
@@ -4880,16 +4297,6 @@ bool GLCanvas3D::_init_toolbar()
if (!m_toolbar.add_separator())
return false;
-#if !ENABLE_EXTENDED_SELECTION
- item.name = "selectbyparts";
- item.tooltip = GUI::L_str("Select by parts");
- item.sprite_id = 10;
- item.is_toggable = true;
- item.action_event = EVT_GLTOOLBAR_SELECTBYPARTS;
- if (!m_toolbar.add_item(item))
- return false;
-#endif // !ENABLE_EXTENDED_SELECTION
-
enable_toolbar_item("add", true);
return true;
@@ -4984,53 +4391,6 @@ BoundingBoxf3 GLCanvas3D::_max_bounding_box() const
return bb;
}
-#if !ENABLE_EXTENDED_SELECTION
-BoundingBoxf3 GLCanvas3D::_selected_volumes_bounding_box() const
-{
- BoundingBoxf3 bb;
-
- std::vector<const GLVolume*> selected_volumes;
- for (const GLVolume* volume : m_volumes.volumes)
- {
- if ((volume != nullptr) && !volume->is_wipe_tower && volume->selected)
- selected_volumes.push_back(volume);
- }
-
- bool use_drag_group_id = selected_volumes.size() > 1;
- if (use_drag_group_id)
- {
- int drag_group_id = selected_volumes[0]->drag_group_id;
- for (const GLVolume* volume : selected_volumes)
- {
- if (drag_group_id != volume->drag_group_id)
- {
- use_drag_group_id = false;
- break;
- }
- }
- }
-
- if (use_drag_group_id)
- {
- for (const GLVolume* volume : selected_volumes)
- {
- bb.merge(volume->bounding_box);
- }
-
- bb = bb.transformed(selected_volumes[0]->world_matrix().cast<double>());
- }
- else
- {
- for (const GLVolume* volume : selected_volumes)
- {
- bb.merge(volume->transformed_bounding_box());
- }
- }
-
- return bb;
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
void GLCanvas3D::_zoom_to_bounding_box(const BoundingBoxf3& bbox)
{
// Calculate the zoom factor needed to adjust viewport to bounding box.
@@ -5121,11 +4481,7 @@ void GLCanvas3D::_mark_volumes_for_layer_height() const
for (GLVolume* vol : m_volumes.volumes)
{
-#if ENABLE_EXTENDED_SELECTION
int object_id = vol->object_idx();
-#else
- int object_id = int(vol->select_group_id / 1000000);
-#endif // ENABLE_EXTENDED_SELECTION
int shader_id = m_layers_editing.get_shader_program_id();
if (is_layers_editing_enabled() && (shader_id != -1) && vol->selected &&
@@ -5180,22 +4536,12 @@ void GLCanvas3D::_picking_pass() const
::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
_render_volumes(true);
-#if ENABLE_EXTENDED_SELECTION
m_gizmos.render_current_gizmo_for_picking_pass(m_selection);
-#else
- m_gizmos.render_current_gizmo_for_picking_pass(_selected_volumes_bounding_box());
-#endif // ENABLE_EXTENDED_SELECTION
if (m_multisample_allowed)
::glEnable(GL_MULTISAMPLE);
int volume_id = -1;
-#if !ENABLE_EXTENDED_SELECTION
- for (GLVolume* vol : m_volumes.volumes)
- {
- vol->hover = false;
- }
-#endif // !ENABLE_EXTENDED_SELECTION
GLubyte color[4] = { 0, 0, 0, 0 };
const Size& cnv_size = get_canvas_size();
@@ -5209,18 +4555,6 @@ void GLCanvas3D::_picking_pass() const
if ((0 <= volume_id) && (volume_id < (int)m_volumes.volumes.size()))
{
m_hover_volume_id = volume_id;
-#if !ENABLE_EXTENDED_SELECTION
- m_volumes.volumes[volume_id]->hover = true;
- int group_id = m_volumes.volumes[volume_id]->select_group_id;
- if (group_id != -1)
- {
- for (GLVolume* vol : m_volumes.volumes)
- {
- if (vol->select_group_id == group_id)
- vol->hover = true;
- }
- }
-#endif // !ENABLE_EXTENDED_SELECTION
m_gizmos.set_hover_id(-1);
}
else
@@ -5229,22 +4563,15 @@ void GLCanvas3D::_picking_pass() const
m_gizmos.set_hover_id(inside ? (254 - (int)color[2]) : -1);
}
-#if ENABLE_EXTENDED_SELECTION
_update_volumes_hover_state();
-#endif // ENABLE_EXTENDED_SELECTION
// updates gizmos overlay
-#if ENABLE_EXTENDED_SELECTION
if (!m_selection.is_empty())
{
std::string name = m_gizmos.update_hover_state(*this, pos, m_selection);
if (!name.empty())
set_tooltip(name);
}
-#else
- if (_get_first_selected_object_id() != -1)
- m_gizmos.update_hover_state(*this, pos);
-#endif // ENABLE_EXTENDED_SELECTION
else
m_gizmos.reset_all_states();
@@ -5344,14 +4671,12 @@ void GLCanvas3D::_render_objects() const
::glDisable(GL_LIGHTING);
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::_render_selection() const
{
Gizmos::EType type = m_gizmos.get_current_type();
bool show_indirect_selection = m_gizmos.is_running() && ((type == Gizmos::Rotate) || (type == Gizmos::Scale) || (type == Gizmos::Flatten));
m_selection.render(show_indirect_selection);
}
-#endif // ENABLE_EXTENDED_SELECTION
void GLCanvas3D::_render_cutting_plane() const
{
@@ -5395,11 +4720,7 @@ void GLCanvas3D::_render_layer_editing_overlay() const
// If the active object was not allocated at the Print, go away.This should only be a momentary case between an object addition / deletion
// and an update by Platter::async_apply_config.
-#if ENABLE_EXTENDED_SELECTION
int object_idx = volume->object_idx();
-#else
- int object_idx = int(volume->select_group_id / 1000000);
-#endif // ENABLE_EXTENDED_SELECTION
if ((int)m_print->objects().size() <= object_idx)
return;
@@ -5459,11 +4780,7 @@ void GLCanvas3D::_render_volumes(bool fake_colors) const
void GLCanvas3D::_render_current_gizmo() const
{
-#if ENABLE_EXTENDED_SELECTION
m_gizmos.render_current_gizmo(m_selection);
-#else
- m_gizmos.render_current_gizmo(_selected_volumes_bounding_box());
-#endif // ENABLE_EXTENDED_SELECTION
}
void GLCanvas3D::_render_gizmos_overlay() const
@@ -5504,7 +4821,6 @@ void GLCanvas3D::_render_camera_target() const
}
#endif // ENABLE_SHOW_CAMERA_TARGET
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::_update_volumes_hover_state() const
{
for (GLVolume* v : m_volumes.volumes)
@@ -5539,7 +4855,6 @@ void GLCanvas3D::_update_volumes_hover_state() const
}
}
}
-#endif // ENABLE_EXTENDED_SELECTION
float GLCanvas3D::_get_layers_editing_cursor_z_relative() const
{
@@ -5643,42 +4958,6 @@ void GLCanvas3D::_stop_timer()
m_timer.Stop();
}
-#if !ENABLE_EXTENDED_SELECTION
-int GLCanvas3D::_get_first_selected_object_id() const
-{
- if (m_print != nullptr)
- {
- int objects_count = (int)m_print->objects().size();
-
- for (const GLVolume* vol : m_volumes.volumes)
- {
- if ((vol != nullptr) && vol->selected)
- {
- int object_id = vol->select_group_id / 1000000;
- // Objects with object_id >= 1000 have a specific meaning, for example the wipe tower proxy.
- if (object_id < 10000)
- return (object_id >= objects_count) ? -1 : object_id;
- }
- }
- }
- return -1;
-}
-
-int GLCanvas3D::_get_first_selected_volume_id(int object_id) const
-{
- int volume_id = -1;
-
- for (const GLVolume* vol : m_volumes.volumes)
- {
- ++volume_id;
- if ((vol != nullptr) && vol->selected && (object_id == vol->select_group_id / 1000000))
- return volume_id;
- }
-
- return -1;
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
void GLCanvas3D::_load_print_toolpaths()
{
#if !ENABLE_USE_UNIQUE_GLCONTEXT
@@ -5806,11 +5085,7 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c
tbb::parallel_for(
tbb::blocked_range<size_t>(0, ctxt.layers.size(), grain_size),
[&ctxt, &new_volume](const tbb::blocked_range<size_t>& range) {
-#if ENABLE_EXTENDED_SELECTION
GLVolumePtrs vols;
-#else
- std::vector<GLVolume*> vols;
-#endif // ENABLE_EXTENDED_SELECTION
if (ctxt.color_by_tool()) {
for (size_t i = 0; i < ctxt.number_tools(); ++i)
vols.emplace_back(new_volume(ctxt.color_tool(i)));
@@ -5969,11 +5244,7 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector<std::string>& str_
tbb::blocked_range<size_t>(0, n_items, grain_size),
[&ctxt, &new_volume](const tbb::blocked_range<size_t>& range) {
// Bounding box of this slab of a wipe tower.
-#if ENABLE_EXTENDED_SELECTION
GLVolumePtrs vols;
-#else
- std::vector<GLVolume*> vols;
-#endif // ENABLE_EXTENDED_SELECTION
if (ctxt.color_by_tool()) {
for (size_t i = 0; i < ctxt.number_tools(); ++i)
vols.emplace_back(new_volume(ctxt.color_tool(i)));
@@ -6199,15 +5470,9 @@ void GLCanvas3D::_load_gcode_extrusion_paths(const GCodePreviewData& preview_dat
m_gcode_preview_volume_index.first_volumes.pop_back();
if (initial_volumes_count != m_volumes.volumes.size())
{
-#if ENABLE_EXTENDED_SELECTION
GLVolumePtrs::iterator begin = m_volumes.volumes.begin() + initial_volumes_count;
GLVolumePtrs::iterator end = m_volumes.volumes.end();
for (GLVolumePtrs::iterator it = begin; it < end; ++it)
-#else
- std::vector<GLVolume*>::iterator begin = m_volumes.volumes.begin() + initial_volumes_count;
- std::vector<GLVolume*>::iterator end = m_volumes.volumes.end();
- for (std::vector<GLVolume*>::iterator it = begin; it < end; ++it)
-#endif // ENABLE_EXTENDED_SELECTION
{
GLVolume* volume = *it;
delete volume;
@@ -6278,15 +5543,9 @@ void GLCanvas3D::_load_gcode_travel_paths(const GCodePreviewData& preview_data,
// an error occourred - restore to previous state and return
if (initial_volumes_count != m_volumes.volumes.size())
{
-#if ENABLE_EXTENDED_SELECTION
GLVolumePtrs::iterator begin = m_volumes.volumes.begin() + initial_volumes_count;
GLVolumePtrs::iterator end = m_volumes.volumes.end();
for (GLVolumePtrs::iterator it = begin; it < end; ++it)
-#else
- std::vector<GLVolume*>::iterator begin = m_volumes.volumes.begin() + initial_volumes_count;
- std::vector<GLVolume*>::iterator end = m_volumes.volumes.end();
- for (std::vector<GLVolume*>::iterator it = begin; it < end; ++it)
-#endif // ENABLE_EXTENDED_SELECTION
{
GLVolume* volume = *it;
delete volume;
@@ -6590,11 +5849,7 @@ void GLCanvas3D::_load_shells()
instance_ids[i] = i;
}
-#if ENABLE_EXTENDED_SELECTION
m_volumes.load_object(model_obj, object_id, instance_ids, "object", m_use_VBOs && m_initialized);
-#else
- m_volumes.load_object(model_obj, object_id, instance_ids, "object", "object", "object", m_use_VBOs && m_initialized);
-#endif // ENABLE_EXTENDED_SELECTION
++object_id;
}
@@ -6617,17 +5872,10 @@ void GLCanvas3D::_update_gcode_volumes_visibility(const GCodePreviewData& previe
unsigned int size = (unsigned int)m_gcode_preview_volume_index.first_volumes.size();
for (unsigned int i = 0; i < size; ++i)
{
-#if ENABLE_EXTENDED_SELECTION
GLVolumePtrs::iterator begin = m_volumes.volumes.begin() + m_gcode_preview_volume_index.first_volumes[i].id;
GLVolumePtrs::iterator end = (i + 1 < size) ? m_volumes.volumes.begin() + m_gcode_preview_volume_index.first_volumes[i + 1].id : m_volumes.volumes.end();
for (GLVolumePtrs::iterator it = begin; it != end; ++it)
-#else
- std::vector<GLVolume*>::iterator begin = m_volumes.volumes.begin() + m_gcode_preview_volume_index.first_volumes[i].id;
- std::vector<GLVolume*>::iterator end = (i + 1 < size) ? m_volumes.volumes.begin() + m_gcode_preview_volume_index.first_volumes[i + 1].id : m_volumes.volumes.end();
-
- for (std::vector<GLVolume*>::iterator it = begin; it != end; ++it)
-#endif // ENABLE_EXTENDED_SELECTION
{
GLVolume* volume = *it;
@@ -6716,7 +5964,6 @@ void GLCanvas3D::_show_warning_texture_if_needed()
}
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3D::_on_move()
{
if (m_model == nullptr)
@@ -6893,87 +6140,6 @@ void GLCanvas3D::_on_mirror()
post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS));
}
-#else
-void GLCanvas3D::_on_move(const std::vector<int>& volume_idxs)
-{
- if (m_model == nullptr)
- return;
-
- std::set<std::string> done; // prevent moving instances twice
- bool object_moved = false;
- Vec3d wipe_tower_origin = Vec3d::Zero();
- for (int volume_idx : volume_idxs)
- {
- GLVolume* volume = m_volumes.volumes[volume_idx];
- int obj_idx = volume->object_idx();
- int instance_idx = volume->instance_idx();
-
- // prevent moving instances twice
- char done_id[64];
- ::sprintf(done_id, "%d_%d", obj_idx, instance_idx);
- if (done.find(done_id) != done.end())
- continue;
-
- done.insert(done_id);
-
- if (obj_idx < 1000)
- {
- // Move a regular object.
- ModelObject* model_object = m_model->objects[obj_idx];
- if (model_object != nullptr)
- {
- model_object->instances[instance_idx]->set_offset(volume->get_offset());
- model_object->invalidate_bounding_box();
- wxGetApp().obj_manipul()->update_position_values();
- object_moved = true;
- }
- }
- else if (obj_idx == 1000)
- // Move a wipe tower proxy.
- wipe_tower_origin = volume->get_offset();
- }
-
- if (object_moved)
- post_event(SimpleEvent(EVT_GLCANVAS_INSTANCE_MOVED));
-
- if (wipe_tower_origin != Vec3d::Zero())
- post_event(Vec3dEvent(EVT_GLCANVAS_WIPETOWER_MOVED, std::move(wipe_tower_origin)));
-}
-#endif // ENABLE_EXTENDED_SELECTION
-
-#if !ENABLE_EXTENDED_SELECTION
-void GLCanvas3D::_on_select(int volume_idx, int object_idx)
-{
- int vol_id = -1;
- int obj_id = -1;
-
- if ((volume_idx != -1) && (volume_idx < (int)m_volumes.volumes.size()))
- {
- if (m_select_by == "volume")
- {
- if (m_volumes.volumes[volume_idx]->object_idx() != object_idx)
- {
- set_select_by("object");
- obj_id = m_volumes.volumes[volume_idx]->object_idx();
- vol_id = -1;
- }
- else
- {
- obj_id = object_idx;
- vol_id = m_volumes.volumes[volume_idx]->volume_idx();
- }
- }
- else if (m_select_by == "object")
- {
- obj_id = m_volumes.volumes[volume_idx]->object_idx();
- vol_id = -1;
- }
- }
-
- post_event(ObjectSelectEvent(obj_id, vol_id));
- wxGetApp().obj_list()->select_current_volume(obj_id, vol_id);
-}
-#endif // !ENABLE_EXTENDED_SELECTION
std::vector<float> GLCanvas3D::_parse_colors(const std::vector<std::string>& colors)
{
diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp
index 779dce98b..dc2f03817 100644
--- a/src/slic3r/GUI/GLCanvas3D.hpp
+++ b/src/slic3r/GUI/GLCanvas3D.hpp
@@ -82,21 +82,7 @@ public:
void set_bottom(float bottom);
};
-#if ENABLE_EXTENDED_SELECTION
wxDECLARE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent);
-#else
-struct ObjectSelectEvent;
-wxDECLARE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, ObjectSelectEvent);
-struct ObjectSelectEvent : public ArrayEvent<ptrdiff_t, 2>
-{
- ObjectSelectEvent(ptrdiff_t object_id, ptrdiff_t volume_id, wxObject *origin = nullptr)
- : ArrayEvent(EVT_GLCANVAS_OBJECT_SELECT, {object_id, volume_id}, origin)
- {}
-
- ptrdiff_t object_id() const { return data[0]; }
- ptrdiff_t volume_id() const { return data[1]; }
-};
-#endif // ENABLE_EXTENDED_SELECTION
using Vec2dEvent = Event<Vec2d>;
template <size_t N> using Vec2dsEvent = ArrayEvent<Vec2d, N>;
@@ -106,30 +92,16 @@ template <size_t N> using Vec3dsEvent = ArrayEvent<Vec3d, N>;
wxDECLARE_EVENT(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, SimpleEvent);
wxDECLARE_EVENT(EVT_GLCANVAS_VIEWPORT_CHANGED, SimpleEvent);
-#if !ENABLE_EXTENDED_SELECTION
-wxDECLARE_EVENT(EVT_GLCANVAS_DOUBLE_CLICK, SimpleEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
wxDECLARE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, Vec2dEvent);
wxDECLARE_EVENT(EVT_GLCANVAS_MODEL_UPDATE, SimpleEvent);
wxDECLARE_EVENT(EVT_GLCANVAS_REMOVE_OBJECT, SimpleEvent);
wxDECLARE_EVENT(EVT_GLCANVAS_ARRANGE, SimpleEvent);
-#if !ENABLE_EXTENDED_SELECTION
-wxDECLARE_EVENT(EVT_GLCANVAS_ROTATE_OBJECT, Event<int>); // data: -1 => rotate left, +1 => rotate right
-wxDECLARE_EVENT(EVT_GLCANVAS_SCALE_UNIFORMLY, SimpleEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
wxDECLARE_EVENT(EVT_GLCANVAS_INCREASE_INSTANCES, Event<int>); // data: +1 => increase, -1 => decrease
wxDECLARE_EVENT(EVT_GLCANVAS_INSTANCE_MOVED, SimpleEvent);
wxDECLARE_EVENT(EVT_GLCANVAS_WIPETOWER_MOVED, Vec3dEvent);
wxDECLARE_EVENT(EVT_GLCANVAS_ENABLE_ACTION_BUTTONS, Event<bool>);
wxDECLARE_EVENT(EVT_GLCANVAS_UPDATE_GEOMETRY, Vec3dsEvent<2>);
-#if !ENABLE_EXTENDED_SELECTION
-wxDECLARE_EVENT(EVT_GIZMO_SCALE, Vec3dEvent);
-wxDECLARE_EVENT(EVT_GIZMO_ROTATE, Vec3dEvent);
-wxDECLARE_EVENT(EVT_GIZMO_FLATTEN, Vec3dEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
-
-
class GLCanvas3D
{
struct GCodePreviewVolumeIndex
@@ -356,15 +328,7 @@ class GLCanvas3D
Point start_position_2D;
Vec3d start_position_3D;
-#if !ENABLE_EXTENDED_SELECTION
- Vec3d volume_center_offset;
-
- bool move_with_shift;
-#endif // !ENABLE_EXTENDED_SELECTION
int move_volume_idx;
-#if !ENABLE_EXTENDED_SELECTION
- int gizmo_volume_idx;
-#endif // !ENABLE_EXTENDED_SELECTION
public:
Drag();
@@ -386,7 +350,6 @@ class GLCanvas3D
bool is_start_position_3D_defined() const;
};
-#if ENABLE_EXTENDED_SELECTION
public:
class Selection
{
@@ -529,8 +492,6 @@ public:
};
private:
-#endif // ENABLE_EXTENDED_SELECTION
-
class Gizmos
{
static const float OverlayTexturesScale;
@@ -564,20 +525,13 @@ private:
bool is_enabled() const;
void set_enabled(bool enable);
-#if ENABLE_EXTENDED_SELECTION
std::string update_hover_state(const GLCanvas3D& canvas, const Vec2d& mouse_pos, const Selection& selection);
void update_on_off_state(const GLCanvas3D& canvas, const Vec2d& mouse_pos, const Selection& selection);
void update_on_off_state(const Selection& selection);
-#else
- void update_hover_state(const GLCanvas3D& canvas, const Vec2d& mouse_pos);
- void update_on_off_state(const GLCanvas3D& canvas, const Vec2d& mouse_pos);
-#endif // ENABLE_EXTENDED_SELECTION
void reset_all_states();
void set_hover_id(int id);
-#if ENABLE_EXTENDED_SELECTION
void enable_grabber(EType type, unsigned int id, bool enable);
-#endif // ENABLE_EXTENDED_SELECTION
bool overlay_contains_mouse(const GLCanvas3D& canvas, const Vec2d& mouse_pos) const;
bool grabber_contains_mouse() const;
@@ -591,19 +545,10 @@ private:
bool is_running() const;
bool is_dragging() const;
-#if ENABLE_EXTENDED_SELECTION
void start_dragging(const Selection& selection);
-#else
- void start_dragging(const BoundingBoxf3& box);
-#endif // ENABLE_EXTENDED_SELECTION
void stop_dragging();
-#if ENABLE_EXTENDED_SELECTION
Vec3d get_displacement() const;
-#else
- Vec3d get_position() const;
- void set_position(const Vec3d& position);
-#endif // ENABLE_EXTENDED_SELECTION
Vec3d get_scale() const;
void set_scale(const Vec3d& scale);
@@ -619,13 +564,8 @@ private:
void clicked_on_object(const Vec2d& mouse_position);
void delete_current_grabber(bool delete_all = false);
-#if ENABLE_EXTENDED_SELECTION
void render_current_gizmo(const Selection& selection) const;
void render_current_gizmo_for_picking_pass(const Selection& selection) const;
-#else
- void render_current_gizmo(const BoundingBoxf3& box) const;
- void render_current_gizmo_for_picking_pass(const BoundingBoxf3& box) const;
-#endif // ENABLE_EXTENDED_SELECTION
void render_overlay(const GLCanvas3D& canvas) const;
@@ -633,11 +573,7 @@ private:
void _reset();
void _render_overlay(const GLCanvas3D& canvas) const;
-#if ENABLE_EXTENDED_SELECTION
void _render_current_gizmo(const Selection& selection) const;
-#else
- void _render_current_gizmo(const BoundingBoxf3& box) const;
-#endif // ENABLE_EXTENDED_SELECTION
float _get_total_overlay_height() const;
GLGizmoBase* _get_current() const;
@@ -697,9 +633,7 @@ private:
mutable GLToolbar m_toolbar;
mutable GLVolumeCollection m_volumes;
-#if ENABLE_EXTENDED_SELECTION
Selection m_selection;
-#endif // ENABLE_EXTENDED_SELECTION
DynamicPrintConfig* m_config;
Print* m_print;
Model* m_model;
@@ -718,21 +652,11 @@ private:
bool m_shader_enabled;
bool m_dynamic_background_enabled;
bool m_multisample_allowed;
-#if ENABLE_EXTENDED_SELECTION
bool m_regenerate_volumes;
-#endif // ENABLE_EXTENDED_SELECTION
std::string m_color_by;
-#if !ENABLE_EXTENDED_SELECTION
- std::string m_select_by;
- std::string m_drag_by;
-#endif // !ENABLE_EXTENDED_SELECTION
bool m_reload_delayed;
-#if !ENABLE_EXTENDED_SELECTION
- std::vector<std::vector<int>> m_objects_volumes_idxs;
- std::vector<int> m_objects_selections;
-#endif // !ENABLE_EXTENDED_SELECTION
GCodePreviewVolumeIndex m_gcode_preview_volume_index;
@@ -759,27 +683,16 @@ public:
unsigned int get_volumes_count() const;
void reset_volumes();
-#if !ENABLE_EXTENDED_SELECTION
- void deselect_volumes();
- void select_volume(unsigned int id);
- void update_volumes_selection(const std::vector<int>& selections);
-#endif // !ENABLE_EXTENDED_SELECTION
int check_volumes_outside_state(const DynamicPrintConfig* config) const;
bool move_volume_up(unsigned int id);
bool move_volume_down(unsigned int id);
-#if !ENABLE_EXTENDED_SELECTION
- void set_objects_selections(const std::vector<int>& selections);
-#endif // !ENABLE_EXTENDED_SELECTION
-
void set_config(DynamicPrintConfig* config);
void set_print(Print* print);
void set_model(Model* model);
-#if ENABLE_EXTENDED_SELECTION
const Selection& get_selection() const { return m_selection; }
Selection& get_selection() { return m_selection; }
-#endif // ENABLE_EXTENDED_SELECTION
// Set the bed shape to a single closed 2D polygon(array of two element arrays),
// triangulate the bed and store the triangles into m_bed.m_triangles,
@@ -794,13 +707,6 @@ public:
void set_cutting_plane(float z, const ExPolygons& polygons);
void set_color_by(const std::string& value);
-#if !ENABLE_EXTENDED_SELECTION
- void set_select_by(const std::string& value);
- void set_drag_by(const std::string& value);
-
- const std::string& get_select_by() const;
- const std::string& get_drag_by() const;
-#endif // !ENABLE_EXTENDED_SELECTION
float get_camera_zoom() const;
@@ -830,9 +736,7 @@ public:
void zoom_to_bed();
void zoom_to_volumes();
#if ENABLE_MODIFIED_CAMERA_TARGET
-#if ENABLE_EXTENDED_SELECTION
void zoom_to_selection();
-#endif // ENABLE_EXTENDED_SELECTION
#endif // ENABLE_MODIFIED_CAMERA_TARGET
void select_view(const std::string& direction);
void set_viewport_from_scene(const GLCanvas3D& other);
@@ -853,9 +757,7 @@ public:
int get_first_volume_id(int obj_idx) const;
int get_in_object_volume_id(int scene_vol_idx) const;
-#if ENABLE_EXTENDED_SELECTION
void mirror_selection(Axis axis);
-#endif // ENABLE_EXTENDED_SELECTION
void reload_scene(bool force);
@@ -893,9 +795,6 @@ private:
void _resize(unsigned int w, unsigned int h);
BoundingBoxf3 _max_bounding_box() const;
-#if !ENABLE_EXTENDED_SELECTION
- BoundingBoxf3 _selected_volumes_bounding_box() const;
-#endif // !ENABLE_EXTENDED_SELECTION
void _zoom_to_bounding_box(const BoundingBoxf3& bbox);
float _get_zoom_to_bounding_box_factor(const BoundingBoxf3& bbox) const;
@@ -909,9 +808,7 @@ private:
void _render_bed(float theta) const;
void _render_axes(bool depth_test) const;
void _render_objects() const;
-#if ENABLE_EXTENDED_SELECTION
void _render_selection() const;
-#endif // ENABLE_EXTENDED_SELECTION
void _render_cutting_plane() const;
void _render_warning_texture() const;
void _render_legend_texture() const;
@@ -924,9 +821,7 @@ private:
void _render_camera_target() const;
#endif // ENABLE_SHOW_CAMERA_TARGET
-#if ENABLE_EXTENDED_SELECTION
void _update_volumes_hover_state() const;
-#endif // ENABLE_EXTENDED_SELECTION
float _get_layers_editing_cursor_z_relative() const;
void _perform_layer_editing_action(wxMouseEvent* evt = nullptr);
@@ -944,11 +839,6 @@ private:
void _start_timer();
void _stop_timer();
-#if !ENABLE_EXTENDED_SELECTION
- int _get_first_selected_object_id() const;
- int _get_first_selected_volume_id(int object_id) const;
-#endif // !ENABLE_EXTENDED_SELECTION
-
// Create 3D thick extrusion lines for a skirt and brim.
// Adds a new Slic3r::GUI::3DScene::Volume to volumes.
void _load_print_toolpaths();
@@ -977,18 +867,11 @@ private:
void _update_toolpath_volumes_outside_state();
void _show_warning_texture_if_needed();
-#if ENABLE_EXTENDED_SELECTION
void _on_move();
void _on_rotate();
void _on_scale();
void _on_flatten();
void _on_mirror();
-#else
- void _on_move(const std::vector<int>& volume_idxs);
-#endif // ENABLE_EXTENDED_SELECTION
-#if !ENABLE_EXTENDED_SELECTION
- void _on_select(int volume_idx, int object_idx);
-#endif // !ENABLE_EXTENDED_SELECTION
// generates the legend texture in dependence of the current shown view type
void _generate_legend_texture(const GCodePreviewData& preview_data, const std::vector<float>& tool_colors);
diff --git a/src/slic3r/GUI/GLCanvas3DManager.cpp b/src/slic3r/GUI/GLCanvas3DManager.cpp
index 9a673b703..55697e2be 100644
--- a/src/slic3r/GUI/GLCanvas3DManager.cpp
+++ b/src/slic3r/GUI/GLCanvas3DManager.cpp
@@ -246,29 +246,6 @@ void GLCanvas3DManager::reset_volumes(wxGLCanvas* canvas)
it->second->reset_volumes();
}
-#if !ENABLE_EXTENDED_SELECTION
-void GLCanvas3DManager::deselect_volumes(wxGLCanvas* canvas)
-{
- CanvasesMap::iterator it = _get_canvas(canvas);
- if (it != m_canvases.end())
- it->second->deselect_volumes();
-}
-
-void GLCanvas3DManager::select_volume(wxGLCanvas* canvas, unsigned int id)
-{
- CanvasesMap::iterator it = _get_canvas(canvas);
- if (it != m_canvases.end())
- it->second->select_volume(id);
-}
-
-void GLCanvas3DManager::update_volumes_selection(wxGLCanvas* canvas, const std::vector<int>& selections)
-{
- CanvasesMap::iterator it = _get_canvas(canvas);
- if (it != m_canvases.end())
- it->second->update_volumes_selection(selections);
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
int GLCanvas3DManager::check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config) const
{
CanvasesMap::const_iterator it = _get_canvas(canvas);
@@ -287,20 +264,11 @@ bool GLCanvas3DManager::move_volume_down(wxGLCanvas* canvas, unsigned int id)
return (it != m_canvases.end()) ? it->second->move_volume_down(id) : false;
}
-#if ENABLE_EXTENDED_SELECTION
GLCanvas3D* GLCanvas3DManager::get_canvas(wxGLCanvas* canvas)
{
CanvasesMap::const_iterator it = _get_canvas(canvas);
return (it != m_canvases.end()) ? it->second : nullptr;
}
-#else
-void GLCanvas3DManager::set_objects_selections(wxGLCanvas* canvas, const std::vector<int>& selections)
-{
- CanvasesMap::iterator it = _get_canvas(canvas);
- if (it != m_canvases.end())
- it->second->set_objects_selections(selections);
-}
-#endif // ENABLE_EXTENDED_SELECTION
void GLCanvas3DManager::set_config(wxGLCanvas* canvas, DynamicPrintConfig* config)
{
@@ -364,28 +332,6 @@ void GLCanvas3DManager::set_color_by(wxGLCanvas* canvas, const std::string& valu
it->second->set_color_by(value);
}
-#if !ENABLE_EXTENDED_SELECTION
-void GLCanvas3DManager::set_select_by(wxGLCanvas* canvas, const std::string& value)
-{
- CanvasesMap::iterator it = _get_canvas(canvas);
- if (it != m_canvases.end())
- it->second->set_select_by(value);
-}
-
-void GLCanvas3DManager::set_drag_by(wxGLCanvas* canvas, const std::string& value)
-{
- CanvasesMap::iterator it = _get_canvas(canvas);
- if (it != m_canvases.end())
- it->second->set_drag_by(value);
-}
-
-std::string GLCanvas3DManager::get_select_by(wxGLCanvas* canvas) const
-{
- CanvasesMap::const_iterator it = _get_canvas(canvas);
- return (it != m_canvases.end()) ? it->second->get_select_by() : "";
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
bool GLCanvas3DManager::is_layers_editing_enabled(wxGLCanvas* canvas) const
{
CanvasesMap::const_iterator it = _get_canvas(canvas);
@@ -596,14 +542,12 @@ int GLCanvas3DManager::get_in_object_volume_id(wxGLCanvas* canvas, int scene_vol
return (it != m_canvases.end()) ? it->second->get_in_object_volume_id(scene_vol_idx) : -1;
}
-#if ENABLE_EXTENDED_SELECTION
void GLCanvas3DManager::mirror_selection(wxGLCanvas* canvas, Axis axis)
{
CanvasesMap::iterator it = _get_canvas(canvas);
if (it != m_canvases.end())
it->second->mirror_selection(axis);
}
-#endif // ENABLE_EXTENDED_SELECTION
void GLCanvas3DManager::reload_scene(wxGLCanvas* canvas, bool force)
{
diff --git a/src/slic3r/GUI/GLCanvas3DManager.hpp b/src/slic3r/GUI/GLCanvas3DManager.hpp
index 66d5fb1cd..6ce805bdd 100644
--- a/src/slic3r/GUI/GLCanvas3DManager.hpp
+++ b/src/slic3r/GUI/GLCanvas3DManager.hpp
@@ -87,20 +87,11 @@ public:
unsigned int get_volumes_count(wxGLCanvas* canvas) const;
void reset_volumes(wxGLCanvas* canvas);
-#if !ENABLE_EXTENDED_SELECTION
- void deselect_volumes(wxGLCanvas* canvas);
- void select_volume(wxGLCanvas* canvas, unsigned int id);
- void update_volumes_selection(wxGLCanvas* canvas, const std::vector<int>& selections);
-#endif // !ENABLE_EXTENDED_SELECTION
int check_volumes_outside_state(wxGLCanvas* canvas, const DynamicPrintConfig* config) const;
bool move_volume_up(wxGLCanvas* canvas, unsigned int id);
bool move_volume_down(wxGLCanvas* canvas, unsigned int id);
-#if ENABLE_EXTENDED_SELECTION
GLCanvas3D* get_canvas(wxGLCanvas* canvas);
-#else
- void set_objects_selections(wxGLCanvas* canvas, const std::vector<int>& selections);
-#endif // ENABLE_EXTENDED_SELECTION
void set_config(wxGLCanvas* canvas, DynamicPrintConfig* config);
void set_print(wxGLCanvas* canvas, Print* print);
@@ -116,12 +107,6 @@ public:
void set_cutting_plane(wxGLCanvas* canvas, float z, const ExPolygons& polygons);
void set_color_by(wxGLCanvas* canvas, const std::string& value);
-#if !ENABLE_EXTENDED_SELECTION
- void set_select_by(wxGLCanvas* canvas, const std::string& value);
- void set_drag_by(wxGLCanvas* canvas, const std::string& value);
-
- std::string get_select_by(wxGLCanvas* canvas) const;
-#endif // !ENABLE_EXTENDED_SELECTION
bool is_layers_editing_enabled(wxGLCanvas* canvas) const;
bool is_layers_editing_allowed(wxGLCanvas* canvas) const;
@@ -163,9 +148,7 @@ public:
int get_first_volume_id(wxGLCanvas* canvas, int obj_idx) const;
int get_in_object_volume_id(wxGLCanvas* canvas, int scene_vol_idx) const;
-#if ENABLE_EXTENDED_SELECTION
void mirror_selection(wxGLCanvas* canvas, Axis axis);
-#endif // ENABLE_EXTENDED_SELECTION
void reload_scene(wxGLCanvas* canvas, bool force);
diff --git a/src/slic3r/GUI/GLGizmo.cpp b/src/slic3r/GUI/GLGizmo.cpp
index 90c2e0bce..6deedb0b3 100644
--- a/src/slic3r/GUI/GLGizmo.cpp
+++ b/src/slic3r/GUI/GLGizmo.cpp
@@ -4,9 +4,6 @@
#include "GUI.hpp"
#include "../../libslic3r/Utils.hpp"
-#if !ENABLE_EXTENDED_SELECTION
-#include "../../slic3r/GUI/GLCanvas3D.hpp"
-#endif // !ENABLE_EXTENDED_SELECTION
#include <Eigen/Dense>
#include "../../libslic3r/Geometry.hpp"
@@ -26,91 +23,6 @@ static const float AXES_COLOR[3][3] = { { 1.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f
namespace Slic3r {
namespace GUI {
-#if !ENABLE_EXTENDED_SELECTION
-// returns the intersection of the given ray with the plane parallel to plane XY and passing through the given center
-// coordinates are local to the plane
-Vec3d intersection_on_plane_xy(const Linef3& ray, const Vec3d& center)
-{
- Transform3d m = Transform3d::Identity();
- m.translate(-center);
- Vec2d mouse_pos_2d = to_2d(transform(ray, m).intersect_plane(0.0));
- return Vec3d(mouse_pos_2d(0), mouse_pos_2d(1), 0.0);
-}
-
-// returns the intersection of the given ray with the plane parallel to plane XZ and passing through the given center
-// coordinates are local to the plane
-Vec3d intersection_on_plane_xz(const Linef3& ray, const Vec3d& center)
-{
- Transform3d m = Transform3d::Identity();
- m.rotate(Eigen::AngleAxisd(-0.5 * (double)PI, Vec3d::UnitX()));
- m.translate(-center);
- Vec2d mouse_pos_2d = to_2d(transform(ray, m).intersect_plane(0.0));
- return Vec3d(mouse_pos_2d(0), 0.0, mouse_pos_2d(1));
-}
-
-// returns the intersection of the given ray with the plane parallel to plane YZ and passing through the given center
-// coordinates are local to the plane
-Vec3d intersection_on_plane_yz(const Linef3& ray, const Vec3d& center)
-{
- Transform3d m = Transform3d::Identity();
- m.rotate(Eigen::AngleAxisd(-0.5f * (double)PI, Vec3d::UnitY()));
- m.translate(-center);
- Vec2d mouse_pos_2d = to_2d(transform(ray, m).intersect_plane(0.0));
-
- return Vec3d(0.0, mouse_pos_2d(1), -mouse_pos_2d(0));
-}
-
-// return an index:
-// 0 for plane XY
-// 1 for plane XZ
-// 2 for plane YZ
-// which indicates which plane is best suited for intersecting the given unit vector
-// giving precedence to the plane with the given index
-unsigned int select_best_plane(const Vec3d& unit_vector, unsigned int preferred_plane)
-{
- unsigned int ret = preferred_plane;
-
- // 1st checks if the given vector is not parallel to the given preferred plane
- double dot_to_normal = 0.0;
- switch (ret)
- {
- case 0: // plane xy
- {
- dot_to_normal = std::abs(unit_vector.dot(Vec3d::UnitZ()));
- break;
- }
- case 1: // plane xz
- {
- dot_to_normal = std::abs(unit_vector.dot(-Vec3d::UnitY()));
- break;
- }
- case 2: // plane yz
- {
- dot_to_normal = std::abs(unit_vector.dot(Vec3d::UnitX()));
- break;
- }
- default:
- {
- break;
- }
- }
-
- // if almost parallel, select the plane whose normal direction is closest to the given vector direction,
- // otherwise return the given preferred plane index
- if (dot_to_normal < 0.1)
- {
- typedef std::map<double, unsigned int> ProjsMap;
- ProjsMap projs_map;
- projs_map.insert(ProjsMap::value_type(std::abs(unit_vector.dot(Vec3d::UnitZ())), 0)); // plane xy
- projs_map.insert(ProjsMap::value_type(std::abs(unit_vector.dot(-Vec3d::UnitY())), 1)); // plane xz
- projs_map.insert(ProjsMap::value_type(std::abs(unit_vector.dot(Vec3d::UnitX())), 2)); // plane yz
- ret = projs_map.rbegin()->second;
- }
-
- return ret;
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
const float GLGizmoBase::Grabber::SizeFactor = 0.025f;
const float GLGizmoBase::Grabber::MinHalfSize = 1.5f;
const float GLGizmoBase::Grabber::DraggingScaleFactor = 1.25f;
@@ -262,11 +174,7 @@ void GLGizmoBase::disable_grabber(unsigned int id)
on_disable_grabber(id);
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoBase::start_dragging(const GLCanvas3D::Selection& selection)
-#else
-void GLGizmoBase::start_dragging(const BoundingBoxf3& box)
-#endif // ENABLE_EXTENDED_SELECTION
{
m_dragging = true;
@@ -275,11 +183,7 @@ void GLGizmoBase::start_dragging(const BoundingBoxf3& box)
m_grabbers[i].dragging = (m_hover_id == i);
}
-#if ENABLE_EXTENDED_SELECTION
on_start_dragging(selection);
-#else
- on_start_dragging(box);
-#endif // ENABLE_EXTENDED_SELECTION
}
void GLGizmoBase::stop_dragging()
@@ -385,15 +289,9 @@ bool GLGizmoRotate::on_init()
return true;
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoRotate::on_start_dragging(const GLCanvas3D::Selection& selection)
-#else
-void GLGizmoRotate::on_start_dragging(const BoundingBoxf3& box)
-#endif // ENABLE_EXTENDED_SELECTION
{
-#if ENABLE_EXTENDED_SELECTION
const BoundingBoxf3& box = selection.get_bounding_box();
-#endif // ENABLE_EXTENDED_SELECTION
m_center = box.center();
m_radius = Offset + box.radius();
m_snap_coarse_in_radius = m_radius / 3.0f;
@@ -437,16 +335,11 @@ void GLGizmoRotate::on_update(const Linef3& mouse_ray, const Point* mouse_positi
m_angle = theta;
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoRotate::on_render(const GLCanvas3D::Selection& selection) const
-#else
-void GLGizmoRotate::on_render(const BoundingBoxf3& box) const
-#endif // ENABLE_EXTENDED_SELECTION
{
if (!m_grabbers[0].enabled)
return;
-#if ENABLE_EXTENDED_SELECTION
const BoundingBoxf3& box = selection.get_bounding_box();
bool single_instance = selection.is_single_full_instance();
@@ -460,10 +353,6 @@ void GLGizmoRotate::on_render(const BoundingBoxf3& box) const
if ((single_instance && (m_hover_id == 0)) || m_dragging)
set_tooltip(axis + format((float)Geometry::rad2deg(m_angle), 4) + "\u00B0");
-#else
- if (m_dragging)
- set_tooltip(format(m_angle * 180.0f / (float)PI, 4));
-#endif // ENABLE_EXTENDED_SELECTION
else
{
m_center = box.center();
@@ -501,22 +390,14 @@ void GLGizmoRotate::on_render(const BoundingBoxf3& box) const
::glPopMatrix();
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoRotate::on_render_for_picking(const GLCanvas3D::Selection& selection) const
-#else
-void GLGizmoRotate::on_render_for_picking(const BoundingBoxf3& box) const
-#endif // ENABLE_EXTENDED_SELECTION
{
::glDisable(GL_DEPTH_TEST);
::glPushMatrix();
transform_to_local();
-#if ENABLE_EXTENDED_SELECTION
render_grabbers_for_picking(selection.get_bounding_box());
-#else
- render_grabbers_for_picking(box);
-#endif // ENABLE_EXTENDED_SELECTION
::glPopMatrix();
}
@@ -733,19 +614,11 @@ std::string GLGizmoRotate3D::on_get_name() const
return L("Rotate");
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoRotate3D::on_start_dragging(const GLCanvas3D::Selection& selection)
{
if ((0 <= m_hover_id) && (m_hover_id < 3))
m_gizmos[m_hover_id].start_dragging(selection);
}
-#else
-void GLGizmoRotate3D::on_start_dragging(const BoundingBoxf3& box)
-{
- if ((0 <= m_hover_id) && (m_hover_id < 3))
- m_gizmos[m_hover_id].start_dragging(box);
-}
-#endif // ENABLE_EXTENDED_SELECTION
void GLGizmoRotate3D::on_stop_dragging()
{
@@ -753,7 +626,6 @@ void GLGizmoRotate3D::on_stop_dragging()
m_gizmos[m_hover_id].stop_dragging();
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoRotate3D::on_render(const GLCanvas3D::Selection& selection) const
{
if ((m_hover_id == -1) || (m_hover_id == 0))
@@ -765,24 +637,8 @@ void GLGizmoRotate3D::on_render(const GLCanvas3D::Selection& selection) const
if ((m_hover_id == -1) || (m_hover_id == 2))
m_gizmos[Z].render(selection);
}
-#else
-void GLGizmoRotate3D::on_render(const BoundingBoxf3& box) const
-{
- if ((m_hover_id == -1) || (m_hover_id == 0))
- m_gizmos[X].render(box);
-
- if ((m_hover_id == -1) || (m_hover_id == 1))
- m_gizmos[Y].render(box);
-
- if ((m_hover_id == -1) || (m_hover_id == 2))
- m_gizmos[Z].render(box);
-}
-#endif // ENABLE_EXTENDED_SELECTION
const float GLGizmoScale3D::Offset = 5.0f;
-#if !ENABLE_EXTENDED_SELECTION
-const Vec3d GLGizmoScale3D::OffsetVec = (double)GLGizmoScale3D::Offset * Vec3d::Ones();
-#endif // !ENABLE_EXTENDED_SELECTION
GLGizmoScale3D::GLGizmoScale3D(GLCanvas3D& parent)
: GLGizmoBase(parent)
@@ -830,20 +686,12 @@ std::string GLGizmoScale3D::on_get_name() const
return L("Scale");
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoScale3D::on_start_dragging(const GLCanvas3D::Selection& selection)
-#else
-void GLGizmoScale3D::on_start_dragging(const BoundingBoxf3& box)
-#endif // ENABLE_EXTENDED_SELECTION
{
if (m_hover_id != -1)
{
m_starting_drag_position = m_grabbers[m_hover_id].center;
-#if ENABLE_EXTENDED_SELECTION
m_starting_box = selection.get_bounding_box();
-#else
- m_starting_box = BoundingBoxf3(box.min - OffsetVec, box.max + OffsetVec);
-#endif // ENABLE_EXTENDED_SELECTION
}
}
@@ -867,13 +715,8 @@ void GLGizmoScale3D::on_process_double_click()
}
#endif // ENABLE_GIZMOS_RESET
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoScale3D::on_render(const GLCanvas3D::Selection& selection) const
-#else
-void GLGizmoScale3D::on_render(const BoundingBoxf3& box) const
-#endif // ENABLE_EXTENDED_SELECTION
{
-#if ENABLE_EXTENDED_SELECTION
bool single_instance = selection.is_single_full_instance();
Vec3f scale = single_instance ? 100.0f * selection.get_volume(*selection.get_volume_idxs().begin())->get_scaling_factor().cast<float>() : 100.0f * m_scale.cast<float>();
@@ -891,25 +734,9 @@ void GLGizmoScale3D::on_render(const BoundingBoxf3& box) const
tooltip += "Z: " + format(scale(2), 4) + "%";
set_tooltip(tooltip);
}
-#else
- if (m_grabbers[0].dragging || m_grabbers[1].dragging)
- set_tooltip("X: " + format(100.0f * m_scale(0), 4) + "%");
- else if (m_grabbers[2].dragging || m_grabbers[3].dragging)
- set_tooltip("Y: " + format(100.0f * m_scale(1), 4) + "%");
- else if (m_grabbers[4].dragging || m_grabbers[5].dragging)
- set_tooltip("Z: " + format(100.0f * m_scale(2), 4) + "%");
- else if (m_grabbers[6].dragging || m_grabbers[7].dragging || m_grabbers[8].dragging || m_grabbers[9].dragging)
- {
- std::string tooltip = "X: " + format(100.0f * m_scale(0), 4) + "%\n";
- tooltip += "Y: " + format(100.0f * m_scale(1), 4) + "%\n";
- tooltip += "Z: " + format(100.0f * m_scale(2), 4) + "%";
- set_tooltip(tooltip);
- }
-#endif // ENABLE_EXTENDED_SELECTION
::glEnable(GL_DEPTH_TEST);
-#if ENABLE_EXTENDED_SELECTION
BoundingBoxf3 box;
Transform3d transform = Transform3d::Identity();
Vec3d angles = Vec3d::Zero();
@@ -942,74 +769,45 @@ void GLGizmoScale3D::on_render(const BoundingBoxf3& box) const
box = selection.get_bounding_box();
m_box = box;
-#else
- m_box = BoundingBoxf3(box.min - OffsetVec, box.max + OffsetVec);
-#endif // ENABLE_EXTENDED_SELECTION
const Vec3d& center = m_box.center();
-#if ENABLE_EXTENDED_SELECTION
Vec3d offset_x = offsets_transform * Vec3d((double)Offset, 0.0, 0.0);
Vec3d offset_y = offsets_transform * Vec3d(0.0, (double)Offset, 0.0);
Vec3d offset_z = offsets_transform * Vec3d(0.0, 0.0, (double)Offset);
-#endif // ENABLE_EXTENDED_SELECTION
// x axis
-#if ENABLE_EXTENDED_SELECTION
m_grabbers[0].center = transform * Vec3d(m_box.min(0), center(1), center(2)) - offset_x;
m_grabbers[1].center = transform * Vec3d(m_box.max(0), center(1), center(2)) + offset_x;
-#else
- m_grabbers[0].center = Vec3d(m_box.min(0), center(1), center(2));
- m_grabbers[1].center = Vec3d(m_box.max(0), center(1), center(2));
-#endif // ENABLE_EXTENDED_SELECTION
::memcpy((void*)m_grabbers[0].color, (const void*)&AXES_COLOR[0], 3 * sizeof(float));
::memcpy((void*)m_grabbers[1].color, (const void*)&AXES_COLOR[0], 3 * sizeof(float));
// y axis
-#if ENABLE_EXTENDED_SELECTION
m_grabbers[2].center = transform * Vec3d(center(0), m_box.min(1), center(2)) - offset_y;
m_grabbers[3].center = transform * Vec3d(center(0), m_box.max(1), center(2)) + offset_y;
-#else
- m_grabbers[2].center = Vec3d(center(0), m_box.min(1), center(2));
- m_grabbers[3].center = Vec3d(center(0), m_box.max(1), center(2));
-#endif // ENABLE_EXTENDED_SELECTION
::memcpy((void*)m_grabbers[2].color, (const void*)&AXES_COLOR[1], 3 * sizeof(float));
::memcpy((void*)m_grabbers[3].color, (const void*)&AXES_COLOR[1], 3 * sizeof(float));
// z axis
-#if ENABLE_EXTENDED_SELECTION
m_grabbers[4].center = transform * Vec3d(center(0), center(1), m_box.min(2)) - offset_z;
m_grabbers[5].center = transform * Vec3d(center(0), center(1), m_box.max(2)) + offset_z;
-#else
- m_grabbers[4].center = Vec3d(center(0), center(1), m_box.min(2));
- m_grabbers[5].center = Vec3d(center(0), center(1), m_box.max(2));
-#endif // ENABLE_EXTENDED_SELECTION
::memcpy((void*)m_grabbers[4].color, (const void*)&AXES_COLOR[2], 3 * sizeof(float));
::memcpy((void*)m_grabbers[5].color, (const void*)&AXES_COLOR[2], 3 * sizeof(float));
// uniform
-#if ENABLE_EXTENDED_SELECTION
m_grabbers[6].center = transform * Vec3d(m_box.min(0), m_box.min(1), center(2)) - offset_x - offset_y;
m_grabbers[7].center = transform * Vec3d(m_box.max(0), m_box.min(1), center(2)) + offset_x - offset_y;
m_grabbers[8].center = transform * Vec3d(m_box.max(0), m_box.max(1), center(2)) + offset_x + offset_y;
m_grabbers[9].center = transform * Vec3d(m_box.min(0), m_box.max(1), center(2)) - offset_x + offset_y;
-#else
- m_grabbers[6].center = Vec3d(m_box.min(0), m_box.min(1), center(2));
- m_grabbers[7].center = Vec3d(m_box.max(0), m_box.min(1), center(2));
- m_grabbers[8].center = Vec3d(m_box.max(0), m_box.max(1), center(2));
- m_grabbers[9].center = Vec3d(m_box.min(0), m_box.max(1), center(2));
-#endif // ENABLE_EXTENDED_SELECTION
for (int i = 6; i < 10; ++i)
{
::memcpy((void*)m_grabbers[i].color, (const void*)m_highlight_color, 3 * sizeof(float));
}
-#if ENABLE_EXTENDED_SELECTION
// sets grabbers orientation
for (int i = 0; i < 10; ++i)
{
m_grabbers[i].angles = angles;
}
-#endif // ENABLE_EXTENDED_SELECTION
::glLineWidth((m_hover_id != -1) ? 2.0f : 1.5f);
@@ -1084,21 +882,12 @@ void GLGizmoScale3D::on_render(const BoundingBoxf3& box) const
}
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoScale3D::on_render_for_picking(const GLCanvas3D::Selection& selection) const
{
::glDisable(GL_DEPTH_TEST);
render_grabbers_for_picking(selection.get_bounding_box());
}
-#else
-void GLGizmoScale3D::on_render_for_picking(const BoundingBoxf3& box) const
-{
- ::glDisable(GL_DEPTH_TEST);
-
- render_grabbers_for_picking(box);
-}
-#endif // ENABLE_EXTENDED_SELECTION
void GLGizmoScale3D::render_grabbers_connection(unsigned int id_1, unsigned int id_2) const
{
@@ -1114,11 +903,7 @@ void GLGizmoScale3D::render_grabbers_connection(unsigned int id_1, unsigned int
void GLGizmoScale3D::do_scale_x(const Linef3& mouse_ray)
{
-#if ENABLE_EXTENDED_SELECTION
double ratio = calc_ratio(mouse_ray);
-#else
- double ratio = calc_ratio(1, mouse_ray, m_starting_box.center());
-#endif // ENABLE_EXTENDED_SELECTION
if (ratio > 0.0)
m_scale(0) = m_starting_scale(0) * ratio;
@@ -1126,11 +911,7 @@ void GLGizmoScale3D::do_scale_x(const Linef3& mouse_ray)
void GLGizmoScale3D::do_scale_y(const Linef3& mouse_ray)
{
-#if ENABLE_EXTENDED_SELECTION
double ratio = calc_ratio(mouse_ray);
-#else
- double ratio = calc_ratio(2, mouse_ray, m_starting_box.center());
-#endif // ENABLE_EXTENDED_SELECTION
if (ratio > 0.0)
m_scale(1) = m_starting_scale(1) * ratio;
@@ -1138,11 +919,7 @@ void GLGizmoScale3D::do_scale_y(const Linef3& mouse_ray)
void GLGizmoScale3D::do_scale_z(const Linef3& mouse_ray)
{
-#if ENABLE_EXTENDED_SELECTION
double ratio = calc_ratio(mouse_ray);
-#else
- double ratio = calc_ratio(1, mouse_ray, m_starting_box.center());
-#endif // ENABLE_EXTENDED_SELECTION
if (ratio > 0.0)
m_scale(2) = m_starting_scale(2) * ratio;
@@ -1150,19 +927,12 @@ void GLGizmoScale3D::do_scale_z(const Linef3& mouse_ray)
void GLGizmoScale3D::do_scale_uniform(const Linef3& mouse_ray)
{
-#if ENABLE_EXTENDED_SELECTION
double ratio = calc_ratio(mouse_ray);
-#else
- Vec3d center = m_starting_box.center();
- center(2) = m_box.min(2);
- double ratio = calc_ratio(0, mouse_ray, center);
-#endif // ENABLE_EXTENDED_SELECTION
if (ratio > 0.0)
m_scale = m_starting_scale * ratio;
}
-#if ENABLE_EXTENDED_SELECTION
double GLGizmoScale3D::calc_ratio(const Linef3& mouse_ray) const
{
double ratio = 0.0;
@@ -1189,53 +959,12 @@ double GLGizmoScale3D::calc_ratio(const Linef3& mouse_ray) const
return ratio;
}
-#else
-double GLGizmoScale3D::calc_ratio(unsigned int preferred_plane_id, const Linef3& mouse_ray, const Vec3d& center) const
-{
- double ratio = 0.0;
-
- Vec3d starting_vec = m_starting_drag_position - center;
- double len_starting_vec = starting_vec.norm();
- if (len_starting_vec == 0.0)
- return ratio;
-
- Vec3d starting_vec_dir = starting_vec.normalized();
- Vec3d mouse_dir = mouse_ray.unit_vector();
-
- unsigned int plane_id = select_best_plane(mouse_dir, preferred_plane_id);
- // ratio is given by the projection of the calculated intersection on the starting vector divided by the starting vector length
- switch (plane_id)
- {
- case 0:
- {
- ratio = starting_vec_dir.dot(intersection_on_plane_xy(mouse_ray, center)) / len_starting_vec;
- break;
- }
- case 1:
- {
- ratio = starting_vec_dir.dot(intersection_on_plane_xz(mouse_ray, center)) / len_starting_vec;
- break;
- }
- case 2:
- {
- ratio = starting_vec_dir.dot(intersection_on_plane_yz(mouse_ray, center)) / len_starting_vec;
- break;
- }
- }
-
- return ratio;
-}
-#endif // ENABLE_EXTENDED_SELECTION
const double GLGizmoMove3D::Offset = 10.0;
GLGizmoMove3D::GLGizmoMove3D(GLCanvas3D& parent)
: GLGizmoBase(parent)
-#if ENABLE_EXTENDED_SELECTION
, m_displacement(Vec3d::Zero())
-#else
- , m_position(Vec3d::Zero())
-#endif // ENABLE_EXTENDED_SELECTION
, m_starting_drag_position(Vec3d::Zero())
, m_starting_box_center(Vec3d::Zero())
, m_starting_box_bottom_center(Vec3d::Zero())
@@ -1271,18 +1000,12 @@ std::string GLGizmoMove3D::on_get_name() const
return L("Move");
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoMove3D::on_start_dragging(const GLCanvas3D::Selection& selection)
-#else
-void GLGizmoMove3D::on_start_dragging(const BoundingBoxf3& box)
-#endif // ENABLE_EXTENDED_SELECTION
{
if (m_hover_id != -1)
{
-#if ENABLE_EXTENDED_SELECTION
m_displacement = Vec3d::Zero();
const BoundingBoxf3& box = selection.get_bounding_box();
-#endif // ENABLE_EXTENDED_SELECTION
m_starting_drag_position = m_grabbers[m_hover_id].center;
m_starting_box_center = box.center();
m_starting_box_bottom_center = box.center();
@@ -1290,39 +1013,23 @@ void GLGizmoMove3D::on_start_dragging(const BoundingBoxf3& box)
}
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoMove3D::on_stop_dragging()
{
m_displacement = Vec3d::Zero();
}
-#endif // ENABLE_EXTENDED_SELECTION
void GLGizmoMove3D::on_update(const Linef3& mouse_ray, const Point* mouse_pos)
{
-#if ENABLE_EXTENDED_SELECTION
if (m_hover_id == 0)
m_displacement(0) = calc_projection(mouse_ray);
else if (m_hover_id == 1)
m_displacement(1) = calc_projection(mouse_ray);
else if (m_hover_id == 2)
m_displacement(2) = calc_projection(mouse_ray);
-#else
- if (m_hover_id == 0)
- m_position(0) = 2.0 * m_starting_box_center(0) + calc_projection(X, 1, mouse_ray) - m_starting_drag_position(0);
- else if (m_hover_id == 1)
- m_position(1) = 2.0 * m_starting_box_center(1) + calc_projection(Y, 2, mouse_ray) - m_starting_drag_position(1);
- else if (m_hover_id == 2)
- m_position(2) = 2.0 * m_starting_box_bottom_center(2) + calc_projection(Z, 1, mouse_ray) - m_starting_drag_position(2);
-#endif // ENABLE_EXTENDED_SELECTION
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoMove3D::on_render(const GLCanvas3D::Selection& selection) const
-#else
-void GLGizmoMove3D::on_render(const BoundingBoxf3& box) const
-#endif // ENABLE_EXTENDED_SELECTION
{
-#if ENABLE_EXTENDED_SELECTION
bool show_position = selection.is_single_full_instance();
const Vec3d& position = selection.get_bounding_box().center();
@@ -1332,20 +1039,10 @@ void GLGizmoMove3D::on_render(const BoundingBoxf3& box) const
set_tooltip("Y: " + format(show_position ? position(1) : m_displacement(1), 2));
else if ((show_position && (m_hover_id == 2)) || m_grabbers[2].dragging)
set_tooltip("Z: " + format(show_position ? position(2) : m_displacement(2), 2));
-#else
- if (m_grabbers[0].dragging)
- set_tooltip("X: " + format(m_position(0), 2));
- else if (m_grabbers[1].dragging)
- set_tooltip("Y: " + format(m_position(1), 2));
- else if (m_grabbers[2].dragging)
- set_tooltip("Z: " + format(m_position(2), 2));
-#endif // ENABLE_EXTENDED_SELECTION
::glEnable(GL_DEPTH_TEST);
-#if ENABLE_EXTENDED_SELECTION
const BoundingBoxf3& box = selection.get_bounding_box();
-#endif // ENABLE_EXTENDED_SELECTION
const Vec3d& center = box.center();
// x axis
@@ -1394,23 +1091,13 @@ void GLGizmoMove3D::on_render(const BoundingBoxf3& box) const
}
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoMove3D::on_render_for_picking(const GLCanvas3D::Selection& selection) const
{
::glDisable(GL_DEPTH_TEST);
render_grabbers_for_picking(selection.get_bounding_box());
}
-#else
-void GLGizmoMove3D::on_render_for_picking(const BoundingBoxf3& box) const
-{
- ::glDisable(GL_DEPTH_TEST);
-
- render_grabbers_for_picking(box);
-}
-#endif // ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
double GLGizmoMove3D::calc_projection(const Linef3& mouse_ray) const
{
double projection = 0.0;
@@ -1433,43 +1120,6 @@ double GLGizmoMove3D::calc_projection(const Linef3& mouse_ray) const
}
return projection;
}
-#else
-double GLGizmoMove3D::calc_projection(Axis axis, unsigned int preferred_plane_id, const Linef3& mouse_ray) const
-{
- double projection = 0.0;
-
- Vec3d starting_vec = (axis == Z) ? m_starting_drag_position - m_starting_box_bottom_center : m_starting_drag_position - m_starting_box_center;
- double len_starting_vec = starting_vec.norm();
- if (len_starting_vec == 0.0)
- return projection;
-
- Vec3d starting_vec_dir = starting_vec.normalized();
- Vec3d mouse_dir = mouse_ray.unit_vector();
-
- unsigned int plane_id = select_best_plane(mouse_dir, preferred_plane_id);
-
- switch (plane_id)
- {
- case 0:
- {
- projection = starting_vec_dir.dot(intersection_on_plane_xy(mouse_ray, (axis == Z) ? m_starting_box_bottom_center : m_starting_box_center));
- break;
- }
- case 1:
- {
- projection = starting_vec_dir.dot(intersection_on_plane_xz(mouse_ray, (axis == Z) ? m_starting_box_bottom_center : m_starting_box_center));
- break;
- }
- case 2:
- {
- projection = starting_vec_dir.dot(intersection_on_plane_yz(mouse_ray, (axis == Z) ? m_starting_box_bottom_center : m_starting_box_center));
- break;
- }
- }
-
- return projection;
-}
-#endif // ENABLE_EXTENDED_SELECTION
GLGizmoFlatten::GLGizmoFlatten(GLCanvas3D& parent)
: GLGizmoBase(parent)
@@ -1502,42 +1152,24 @@ std::string GLGizmoFlatten::on_get_name() const
return L("Flatten");
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoFlatten::on_start_dragging(const GLCanvas3D::Selection& selection)
-#else
-void GLGizmoFlatten::on_start_dragging(const BoundingBoxf3& box)
-#endif // ENABLE_EXTENDED_SELECTION
{
if (m_hover_id != -1)
{
m_normal = m_planes[m_hover_id].normal;
-#if ENABLE_EXTENDED_SELECTION
m_starting_center = selection.get_bounding_box().center();
-#else
- m_starting_center = box.center();
-#endif // ENABLE_EXTENDED_SELECTION
}
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoFlatten::on_render(const GLCanvas3D::Selection& selection) const
-#else
-void GLGizmoFlatten::on_render(const BoundingBoxf3& box) const
-#endif // ENABLE_EXTENDED_SELECTION
{
// the dragged_offset is a vector measuring where was the object moved
// with the gizmo being on. This is reset in set_flattening_data and
// does not work correctly when there are multiple copies.
Vec3d dragged_offset(Vec3d::Zero());
-#if ENABLE_EXTENDED_SELECTION
if (m_starting_center == Vec3d::Zero())
m_starting_center = selection.get_bounding_box().center();
dragged_offset = selection.get_bounding_box().center() - m_starting_center;
-#else
- if (m_starting_center == Vec3d::Zero())
- m_starting_center = box.center();
- dragged_offset = box.center() - m_starting_center;
-#endif // ENABLE_EXTENDED_SELECTION
::glEnable(GL_BLEND);
::glEnable(GL_DEPTH_TEST);
@@ -1549,7 +1181,6 @@ void GLGizmoFlatten::on_render(const BoundingBoxf3& box) const
else
::glColor4f(0.9f, 0.9f, 0.9f, 0.5f);
-#if ENABLE_EXTENDED_SELECTION
int instance_idx = selection.get_instance_idx();
if ((instance_idx != -1) && (m_model_object != nullptr))
{
@@ -1565,30 +1196,13 @@ void GLGizmoFlatten::on_render(const BoundingBoxf3& box) const
::glEnd();
::glPopMatrix();
}
-#else
- for (const InstanceData& inst : m_instances) {
- Transform3d m = inst.matrix;
- m.pretranslate(dragged_offset);
- ::glPushMatrix();
- ::glMultMatrixd(m.data());
- ::glBegin(GL_POLYGON);
- for (const Vec3d& vertex : m_planes[i].vertices)
- ::glVertex3dv(vertex.data());
- ::glEnd();
- ::glPopMatrix();
- }
-#endif // ENABLE_EXTENDED_SELECTION
}
::glEnable(GL_CULL_FACE);
::glDisable(GL_BLEND);
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoFlatten::on_render_for_picking(const GLCanvas3D::Selection& selection) const
-#else
-void GLGizmoFlatten::on_render_for_picking(const BoundingBoxf3& box) const
-#endif // ENABLE_EXTENDED_SELECTION
{
::glEnable(GL_DEPTH_TEST);
::glDisable(GL_CULL_FACE);
@@ -1596,7 +1210,6 @@ void GLGizmoFlatten::on_render_for_picking(const BoundingBoxf3& box) const
for (unsigned int i = 0; i < m_planes.size(); ++i)
{
::glColor3f(1.0f, 1.0f, picking_color_component(i));
-#if ENABLE_EXTENDED_SELECTION
int instance_idx = selection.get_instance_idx();
if ((instance_idx != -1) && (m_model_object != nullptr))
{
@@ -1610,17 +1223,6 @@ void GLGizmoFlatten::on_render_for_picking(const BoundingBoxf3& box) const
::glEnd();
::glPopMatrix();
}
-#else
- for (const InstanceData& inst : m_instances) {
- ::glPushMatrix();
- ::glMultMatrixd(inst.matrix.data());
- ::glBegin(GL_POLYGON);
- for (const Vec3d& vertex : m_planes[i].vertices)
- ::glVertex3dv(vertex.data());
- ::glEnd();
- ::glPopMatrix();
- }
-#endif // ENABLE_EXTENDED_SELECTION
}
::glEnable(GL_CULL_FACE);
@@ -1631,15 +1233,6 @@ void GLGizmoFlatten::set_flattening_data(const ModelObject* model_object)
m_starting_center = Vec3d::Zero();
m_model_object = model_object;
-#if !ENABLE_EXTENDED_SELECTION
- // ...and save the updated positions of the object instances:
- if (m_model_object && !m_model_object->instances.empty()) {
- m_instances.clear();
- for (const auto* instance : m_model_object->instances)
- m_instances.emplace_back(instance->world_matrix());
- }
-#endif // !ENABLE_EXTENDED_SELECTION
-
if (is_plane_update_necessary())
update_planes();
}
@@ -1890,11 +1483,7 @@ void GLGizmoSlaSupports::set_model_object_ptr(ModelObject* model_object)
update_mesh();
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoSlaSupports::on_render(const GLCanvas3D::Selection& selection) const
-#else
-void GLGizmoSlaSupports::on_render(const BoundingBoxf3& box) const
-#endif
{
::glEnable(GL_BLEND);
::glEnable(GL_DEPTH_TEST);
@@ -1903,15 +1492,9 @@ void GLGizmoSlaSupports::on_render(const BoundingBoxf3& box) const
// with the gizmo being on. This is reset in set_flattening_data and
// does not work correctly when there are multiple copies.
-#if ENABLE_EXTENDED_SELECTION
if (m_starting_center == Vec3d::Zero())
m_starting_center = selection.get_bounding_box().center();
Vec3d dragged_offset = selection.get_bounding_box().center() - m_starting_center;
-#else
- if (m_starting_center == Vec3d::Zero())
- m_starting_center = box.center();
- Vec3d dragged_offset(box.center() - m_starting_center);
-#endif // ENABLE_EXTENDED_SELECTION
for (auto& g : m_grabbers) {
g.color[0] = 1.f;
@@ -1929,11 +1512,7 @@ void GLGizmoSlaSupports::on_render(const BoundingBoxf3& box) const
}
-#if ENABLE_EXTENDED_SELECTION
void GLGizmoSlaSupports::on_render_for_picking(const GLCanvas3D::Selection& selection) const
-#else
-void GLGizmoSlaSupports::on_render_for_picking(const BoundingBoxf3& box) const
-#endif
{
::glEnable(GL_DEPTH_TEST);
for (unsigned int i=0; i<m_grabbers.size(); ++i) {
diff --git a/src/slic3r/GUI/GLGizmo.hpp b/src/slic3r/GUI/GLGizmo.hpp
index cccdb2bb9..ea6e3ae6b 100644
--- a/src/slic3r/GUI/GLGizmo.hpp
+++ b/src/slic3r/GUI/GLGizmo.hpp
@@ -2,9 +2,7 @@
#define slic3r_GLGizmo_hpp_
#include "../../slic3r/GUI/GLTexture.hpp"
-#if ENABLE_EXTENDED_SELECTION
#include "../../slic3r/GUI/GLCanvas3D.hpp"
-#endif // ENABLE_EXTENDED_SELECTION
#include "../../libslic3r/Point.hpp"
#include "../../libslic3r/BoundingBox.hpp"
@@ -82,9 +80,7 @@ public:
EState get_state() const { return m_state; }
void set_state(EState state) { m_state = state; on_set_state(); }
-#if ENABLE_EXTENDED_SELECTION
bool is_activable(const GLCanvas3D::Selection& selection) const { return on_is_activable(selection); }
-#endif // ENABLE_EXTENDED_SELECTION
unsigned int get_texture_id() const { return m_textures[m_state].get_id(); }
int get_textures_size() const { return m_textures[Off].get_width(); }
@@ -97,11 +93,7 @@ public:
void enable_grabber(unsigned int id);
void disable_grabber(unsigned int id);
-#if ENABLE_EXTENDED_SELECTION
void start_dragging(const GLCanvas3D::Selection& selection);
-#else
- void start_dragging(const BoundingBoxf3& box);
-#endif // ENABLE_EXTENDED_SELECTION
void stop_dragging();
bool is_dragging() const { return m_dragging; }
@@ -111,41 +103,25 @@ public:
void process_double_click() { on_process_double_click(); }
#endif // ENABLE_GIZMOS_RESET
-#if ENABLE_EXTENDED_SELECTION
void render(const GLCanvas3D::Selection& selection) const { on_render(selection); }
void render_for_picking(const GLCanvas3D::Selection& selection) const { on_render_for_picking(selection); }
-#else
- void render(const BoundingBoxf3& box) const { on_render(box); }
- void render_for_picking(const BoundingBoxf3& box) const { on_render_for_picking(box); }
-#endif // ENABLE_EXTENDED_SELECTION
protected:
virtual bool on_init() = 0;
virtual std::string on_get_name() const = 0;
virtual void on_set_state() {}
virtual void on_set_hover_id() {}
-#if ENABLE_EXTENDED_SELECTION
virtual bool on_is_activable(const GLCanvas3D::Selection& selection) const { return true; }
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_enable_grabber(unsigned int id) {}
virtual void on_disable_grabber(unsigned int id) {}
-#if ENABLE_EXTENDED_SELECTION
virtual void on_start_dragging(const GLCanvas3D::Selection& selection) {}
-#else
- virtual void on_start_dragging(const BoundingBoxf3& box) {}
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_stop_dragging() {}
virtual void on_update(const Linef3& mouse_ray, const Point* mouse_pos) = 0;
#if ENABLE_GIZMOS_RESET
virtual void on_process_double_click() {}
#endif // ENABLE_GIZMOS_RESET
-#if ENABLE_EXTENDED_SELECTION
virtual void on_render(const GLCanvas3D::Selection& selection) const = 0;
virtual void on_render_for_picking(const GLCanvas3D::Selection& selection) const = 0;
-#else
- virtual void on_render(const BoundingBoxf3& box) const = 0;
- virtual void on_render_for_picking(const BoundingBoxf3& box) const = 0;
-#endif // ENABLE_EXTENDED_SELECTION
float picking_color_component(unsigned int id) const;
void render_grabbers(const BoundingBoxf3& box) const;
@@ -196,22 +172,13 @@ public:
protected:
virtual bool on_init();
virtual std::string on_get_name() const { return ""; }
-#if ENABLE_EXTENDED_SELECTION
virtual void on_start_dragging(const GLCanvas3D::Selection& selection);
-#else
- virtual void on_start_dragging(const BoundingBoxf3& box);
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_update(const Linef3& mouse_ray, const Point* mouse_pos);
#if ENABLE_GIZMOS_RESET
virtual void on_process_double_click() { m_angle = 0.0; }
#endif // ENABLE_GIZMOS_RESET
-#if ENABLE_EXTENDED_SELECTION
virtual void on_render(const GLCanvas3D::Selection& selection) const;
virtual void on_render_for_picking(const GLCanvas3D::Selection& selection) const;
-#else
- virtual void on_render(const BoundingBoxf3& box) const;
- virtual void on_render_for_picking(const BoundingBoxf3& box) const;
-#endif // ENABLE_EXTENDED_SELECTION
private:
void render_circle() const;
@@ -253,9 +220,7 @@ protected:
m_gizmos[i].set_hover_id((m_hover_id == i) ? 0 : -1);
}
}
-#if ENABLE_EXTENDED_SELECTION
virtual bool on_is_activable(const GLCanvas3D::Selection& selection) const { return !selection.is_wipe_tower(); }
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_enable_grabber(unsigned int id)
{
if ((0 <= id) && (id < 3))
@@ -266,11 +231,7 @@ protected:
if ((0 <= id) && (id < 3))
m_gizmos[id].disable_grabber(0);
}
-#if ENABLE_EXTENDED_SELECTION
virtual void on_start_dragging(const GLCanvas3D::Selection& selection);
-#else
- virtual void on_start_dragging(const BoundingBoxf3& box);
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_stop_dragging();
virtual void on_update(const Linef3& mouse_ray, const Point* mouse_pos)
{
@@ -286,7 +247,6 @@ protected:
m_gizmos[m_hover_id].process_double_click();
}
#endif // ENABLE_GIZMOS_RESET
-#if ENABLE_EXTENDED_SELECTION
virtual void on_render(const GLCanvas3D::Selection& selection) const;
virtual void on_render_for_picking(const GLCanvas3D::Selection& selection) const
{
@@ -295,24 +255,11 @@ protected:
g.render_for_picking(selection);
}
}
-#else
- virtual void on_render(const BoundingBoxf3& box) const;
- virtual void on_render_for_picking(const BoundingBoxf3& box) const
- {
- for (const GLGizmoRotate& g : m_gizmos)
- {
- g.render_for_picking(box);
- }
- }
-#endif // ENABLE_EXTENDED_SELECTION
};
class GLGizmoScale3D : public GLGizmoBase
{
static const float Offset;
-#if !ENABLE_EXTENDED_SELECTION
- static const Vec3d OffsetVec;
-#endif // !ENABLE_EXTENDED_SELECTION
mutable BoundingBoxf3 m_box;
@@ -326,34 +273,19 @@ public:
explicit GLGizmoScale3D(GLCanvas3D& parent);
const Vec3d& get_scale() const { return m_scale; }
-#if ENABLE_EXTENDED_SELECTION
void set_scale(const Vec3d& scale) { m_starting_scale = scale; m_scale = scale; }
-#else
- void set_scale(const Vec3d& scale) { m_starting_scale = scale; }
-#endif // ENABLE_EXTENDED_SELECTION
protected:
virtual bool on_init();
virtual std::string on_get_name() const;
-#if ENABLE_EXTENDED_SELECTION
virtual bool on_is_activable(const GLCanvas3D::Selection& selection) const { return !selection.is_wipe_tower(); }
-#endif // ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
virtual void on_start_dragging(const GLCanvas3D::Selection& selection);
-#else
- virtual void on_start_dragging(const BoundingBoxf3& box);
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_update(const Linef3& mouse_ray, const Point* mouse_pos);
#if ENABLE_GIZMOS_RESET
virtual void on_process_double_click();
#endif // ENABLE_GIZMOS_RESET
-#if ENABLE_EXTENDED_SELECTION
virtual void on_render(const GLCanvas3D::Selection& selection) const;
virtual void on_render_for_picking(const GLCanvas3D::Selection& selection) const;
-#else
- virtual void on_render(const BoundingBoxf3& box) const;
- virtual void on_render_for_picking(const BoundingBoxf3& box) const;
-#endif // ENABLE_EXTENDED_SELECTION
private:
void render_grabbers_connection(unsigned int id_1, unsigned int id_2) const;
@@ -363,22 +295,14 @@ private:
void do_scale_z(const Linef3& mouse_ray);
void do_scale_uniform(const Linef3& mouse_ray);
-#if ENABLE_EXTENDED_SELECTION
double calc_ratio(const Linef3& mouse_ray) const;
-#else
- double calc_ratio(unsigned int preferred_plane_id, const Linef3& mouse_ray, const Vec3d& center) const;
-#endif // ENABLE_EXTENDED_SELECTION
};
class GLGizmoMove3D : public GLGizmoBase
{
static const double Offset;
-#if ENABLE_EXTENDED_SELECTION
Vec3d m_displacement;
-#else
- Vec3d m_position;
-#endif // ENABLE_EXTENDED_SELECTION
Vec3d m_starting_drag_position;
Vec3d m_starting_box_center;
Vec3d m_starting_box_bottom_center;
@@ -386,37 +310,19 @@ class GLGizmoMove3D : public GLGizmoBase
public:
explicit GLGizmoMove3D(GLCanvas3D& parent);
-#if ENABLE_EXTENDED_SELECTION
const Vec3d& get_displacement() const { return m_displacement; }
-#else
- const Vec3d& get_position() const { return m_position; }
- void set_position(const Vec3d& position) { m_position = position; }
-#endif // ENABLE_EXTENDED_SELECTION
protected:
virtual bool on_init();
virtual std::string on_get_name() const;
-#if ENABLE_EXTENDED_SELECTION
virtual void on_start_dragging(const GLCanvas3D::Selection& selection);
virtual void on_stop_dragging();
-#else
- virtual void on_start_dragging(const BoundingBoxf3& box);
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_update(const Linef3& mouse_ray, const Point* mouse_pos);
-#if ENABLE_EXTENDED_SELECTION
virtual void on_render(const GLCanvas3D::Selection& selection) const;
virtual void on_render_for_picking(const GLCanvas3D::Selection& selection) const;
-#else
- virtual void on_render(const BoundingBoxf3& box) const;
- virtual void on_render_for_picking(const BoundingBoxf3& box) const;
-#endif // ENABLE_EXTENDED_SELECTION
private:
-#if ENABLE_EXTENDED_SELECTION
double calc_projection(const Linef3& mouse_ray) const;
-#else
- double calc_projection(Axis axis, unsigned int preferred_plane_id, const Linef3& mouse_ray) const;
-#endif // ENABLE_EXTENDED_SELECTION
};
class GLGizmoFlatten : public GLGizmoBase
@@ -440,14 +346,6 @@ private:
SourceDataSummary m_source_data;
std::vector<PlaneData> m_planes;
-#if !ENABLE_EXTENDED_SELECTION
- struct InstanceData
- {
- Transform3d matrix;
- InstanceData(const Transform3d& matrix) : matrix(matrix) {}
- };
- std::vector<InstanceData> m_instances;
-#endif // !ENABLE_EXTENDED_SELECTION
mutable Vec3d m_starting_center;
const ModelObject* m_model_object = nullptr;
@@ -463,22 +361,11 @@ public:
protected:
virtual bool on_init();
virtual std::string on_get_name() const;
-#if ENABLE_EXTENDED_SELECTION
virtual bool on_is_activable(const GLCanvas3D::Selection& selection) const { return selection.is_single_full_instance(); }
-#endif // ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
virtual void on_start_dragging(const GLCanvas3D::Selection& selection);
-#else
- virtual void on_start_dragging(const BoundingBoxf3& box);
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_update(const Linef3& mouse_ray, const Point* mouse_pos) {}
-#if ENABLE_EXTENDED_SELECTION
virtual void on_render(const GLCanvas3D::Selection& selection) const;
virtual void on_render_for_picking(const GLCanvas3D::Selection& selection) const;
-#else
- virtual void on_render(const BoundingBoxf3& box) const;
- virtual void on_render_for_picking(const BoundingBoxf3& box) const;
-#endif // ENABLE_EXTENDED_SELECTION
virtual void on_set_state()
{
if (m_state == On && is_plane_update_necessary())
@@ -515,13 +402,8 @@ public:
private:
bool on_init();
void on_update(const Linef3& mouse_ray, const Point* mouse_pos);
-#if ENABLE_EXTENDED_SELECTION
virtual void on_render(const GLCanvas3D::Selection& selection) const;
virtual void on_render_for_picking(const GLCanvas3D::Selection& selection) const;
-#else
- virtual void on_render(const BoundingBoxf3& box) const;
- virtual void on_render_for_picking(const BoundingBoxf3& box) const;
-#endif // ENABLE_EXTENDED_SELECTION
void render_grabbers(bool picking = false) const;
void render_tooltip_texture() const;
diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp
index 265fc2042..26ca4a4dc 100644
--- a/src/slic3r/GUI/GLToolbar.cpp
+++ b/src/slic3r/GUI/GLToolbar.cpp
@@ -25,13 +25,7 @@ wxDEFINE_EVENT(EVT_GLTOOLBAR_FEWER, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_SPLIT_OBJECTS, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_SPLIT_VOLUMES, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_CUT, SimpleEvent);
-#if !ENABLE_EXTENDED_SELECTION
-wxDEFINE_EVENT(EVT_GLTOOLBAR_SETTINGS, SimpleEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
wxDEFINE_EVENT(EVT_GLTOOLBAR_LAYERSEDITING, SimpleEvent);
-#if !ENABLE_EXTENDED_SELECTION
-wxDEFINE_EVENT(EVT_GLTOOLBAR_SELECTBYPARTS, SimpleEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
GLToolbarItem::Data::Data()
diff --git a/src/slic3r/GUI/GLToolbar.hpp b/src/slic3r/GUI/GLToolbar.hpp
index 9f3853530..6669bc966 100644
--- a/src/slic3r/GUI/GLToolbar.hpp
+++ b/src/slic3r/GUI/GLToolbar.hpp
@@ -25,13 +25,7 @@ wxDECLARE_EVENT(EVT_GLTOOLBAR_FEWER, SimpleEvent);
wxDECLARE_EVENT(EVT_GLTOOLBAR_SPLIT_OBJECTS, SimpleEvent);
wxDECLARE_EVENT(EVT_GLTOOLBAR_SPLIT_VOLUMES, SimpleEvent);
wxDECLARE_EVENT(EVT_GLTOOLBAR_CUT, SimpleEvent);
-#if !ENABLE_EXTENDED_SELECTION
-wxDECLARE_EVENT(EVT_GLTOOLBAR_SETTINGS, SimpleEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
wxDECLARE_EVENT(EVT_GLTOOLBAR_LAYERSEDITING, SimpleEvent);
-#if !ENABLE_EXTENDED_SELECTION
-wxDECLARE_EVENT(EVT_GLTOOLBAR_SELECTBYPARTS, SimpleEvent);
-#endif // !ENABLE_EXTENDED_SELECTION
class GLToolbarItem
{
diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp
index 243da5136..1c3150ce5 100644
--- a/src/slic3r/GUI/GUI_ObjectList.cpp
+++ b/src/slic3r/GUI/GUI_ObjectList.cpp
@@ -960,10 +960,8 @@ void ObjectList::split(const bool split_part)
m_parts_changed = true;
parts_changed(m_selected_object_id);
-#if ENABLE_EXTENDED_SELECTION
// restores selection
_3DScene::get_canvas(wxGetApp().canvas3D())->get_selection().add_object(m_selected_object_id);
-#endif // ENABLE_EXTENDED_SELECTION
}
bool ObjectList::get_volume_by_item(const bool split_part, const wxDataViewItem& item, ModelVolume*& volume)
@@ -1071,11 +1069,7 @@ void ObjectList::part_selection_changed()
m_selected_object_id = obj_idx;
-#if ENABLE_EXTENDED_SELECTION
wxGetApp().obj_manipul()->update_settings_value(_3DScene::get_canvas(wxGetApp().canvas3D())->get_selection());
-#else
- wxGetApp().obj_manipul()->update_values();
-#endif // ENABLE_EXTENDED_SELECTION
}
void ObjectList::update_manipulation_sizer(const bool is_simple_mode)
@@ -1094,9 +1088,6 @@ void ObjectList::add_object_to_list(size_t obj_idx)
auto model_object = (*m_objects)[obj_idx];
wxString item_name = model_object->name;
auto item = m_objects_model->Add(item_name);
-#if !ENABLE_EXTENDED_SELECTION
- /*Select*/select_item(item);
-#endif // !ENABLE_EXTENDED_SELECTION
// Add error icon if detected auto-repaire
auto stats = model_object->volumes[0]->mesh.stl.stats;
@@ -1224,7 +1215,6 @@ bool ObjectList::multiple_selection() const
void ObjectList::update_selections()
{
-#if ENABLE_EXTENDED_SELECTION
auto& selection = _3DScene::get_canvas(wxGetApp().canvas3D())->get_selection();
wxDataViewItemArray sels;
@@ -1234,13 +1224,10 @@ void ObjectList::update_selections()
sels.Add(m_objects_model->GetItemByVolumeId(gl_vol->object_idx(), gl_vol->volume_idx()));
}
select_items(sels);
-
-#endif // ENABLE_EXTENDED_SELECTION
}
void ObjectList::update_selections_on_canvas()
{
-#if ENABLE_EXTENDED_SELECTION
auto& selection = _3DScene::get_canvas(wxGetApp().canvas3D())->get_selection();
const int sel_cnt = GetSelectedItemsCount();
@@ -1288,8 +1275,6 @@ void ObjectList::update_selections_on_canvas()
add_to_selection(item, selection, false);
_3DScene::render(wxGetApp().canvas3D());
-
-#endif // ENABLE_EXTENDED_SELECTION
}
void ObjectList::select_item(const wxDataViewItem& item)
diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.cpp b/src/slic3r/GUI/GUI_ObjectManipulation.cpp
index 78031cf30..8cb7944f6 100644
--- a/src/slic3r/GUI/GUI_ObjectManipulation.cpp
+++ b/src/slic3r/GUI/GUI_ObjectManipulation.cpp
@@ -266,7 +266,6 @@ void ObjectManipulation::update_settings_list()
parent->GetParent()->Layout();
}
-#if ENABLE_EXTENDED_SELECTION
void ObjectManipulation::update_settings_value(const GLCanvas3D::Selection& selection)
{
if (selection.is_single_full_object())
@@ -344,7 +343,6 @@ void ObjectManipulation::reset_scale_value()
m_og->set_value("scale_y", 100);
m_og->set_value("scale_z", 100);
}
-#endif // ENABLE_EXTENDED_SELECTION
void ObjectManipulation::update_values()
{
diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.hpp b/src/slic3r/GUI/GUI_ObjectManipulation.hpp
index 13b9290a0..4192041cd 100644
--- a/src/slic3r/GUI/GUI_ObjectManipulation.hpp
+++ b/src/slic3r/GUI/GUI_ObjectManipulation.hpp
@@ -6,9 +6,7 @@
#include <wx/panel.h>
#include "Preset.hpp"
-#if ENABLE_EXTENDED_SELECTION
#include "GLCanvas3D.hpp"
-#endif // ENABLE_EXTENDED_SELECTION
class wxBoxSizer;
@@ -16,7 +14,6 @@ namespace Slic3r {
namespace GUI {
class ConfigOptionsGroup;
-
class OG_Settings
{
protected:
@@ -47,13 +44,11 @@ public:
int ol_selection();
void update_settings_list();
-#if ENABLE_EXTENDED_SELECTION
void update_settings_value(const GLCanvas3D::Selection& selection);
void reset_settings_value();
void reset_position_value();
void reset_rotation_value();
void reset_scale_value();
-#endif // ENABLE_EXTENDED_SELECTION
void update_values();
// update position values displacements or "gizmos"
diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp
index 1c21a27ca..828e43952 100644
--- a/src/slic3r/GUI/Plater.cpp
+++ b/src/slic3r/GUI/Plater.cpp
@@ -754,18 +754,6 @@ std::vector<PresetComboBox*>& Sidebar::combos_filament()
return p->combos_filament;
}
-#if !ENABLE_EXTENDED_SELECTION
-// Plater::Object
-
-struct PlaterObject
-{
- std::string name;
- bool selected;
-
- PlaterObject(std::string name) : name(std::move(name)), selected(false) {}
-};
-#endif // !ENABLE_EXTENDED_SELECTION
-
// Plater::DropTarget
class PlaterDropTarget : public wxFileDropTarget
@@ -817,9 +805,6 @@ struct Plater::priv
Slic3r::Print print;
Slic3r::Model model;
Slic3r::GCodePreviewData gcode_preview_data;
-#if !ENABLE_EXTENDED_SELECTION
- std::vector<PlaterObject> objects;
-#endif // !ENABLE_EXTENDED_SELECTION
// GUI elements
wxNotebook *notebook;
@@ -835,9 +820,6 @@ struct Plater::priv
priv(Plater *q, MainFrame *main_frame);
-#if !ENABLE_EXTENDED_SELECTION
- std::vector<int> collect_selections();
-#endif // !ENABLE_EXTENDED_SELECTION
void update(bool force_autocenter = false);
void select_view(const std::string& direction);
void update_ui_from_settings();
@@ -849,30 +831,15 @@ struct Plater::priv
std::vector<size_t> load_model_objects(const ModelObjectPtrs &model_objects);
std::unique_ptr<CheckboxFileDialog> get_export_file(GUI::FileType file_type);
-#if ENABLE_EXTENDED_SELECTION
const GLCanvas3D::Selection& get_selection() const;
GLCanvas3D::Selection& get_selection();
int get_selected_object_idx() const;
-#else
- void select_object(optional<size_t> obj_idx);
- void select_object_from_cpp();
- optional<size_t> selected_object() const;
-#endif // ENABLE_EXTENDED_SELECTION
void selection_changed();
void object_list_changed();
-#if !ENABLE_EXTENDED_SELECTION
- void select_view();
-#endif // !ENABLE_EXTENDED_SELECTION
void remove(size_t obj_idx);
void reset();
-#if !ENABLE_EXTENDED_SELECTION
- void rotate();
-#endif // !ENABLE_EXTENDED_SELECTION
void mirror(Axis axis);
-#if !ENABLE_EXTENDED_SELECTION
- void scale();
-#endif // !ENABLE_EXTENDED_SELECTION
void arrange();
void split_object();
void split_volume();
@@ -896,25 +863,12 @@ struct Plater::priv
void on_action_split_objects(SimpleEvent&);
void on_action_split_volumes(SimpleEvent&);
void on_action_cut(SimpleEvent&);
-#if !ENABLE_EXTENDED_SELECTION
- void on_action_settings(SimpleEvent&);
-#endif // !ENABLE_EXTENDED_SELECTION
void on_action_layersediting(SimpleEvent&);
-#if !ENABLE_EXTENDED_SELECTION
- void on_action_selectbyparts(SimpleEvent&);
-#endif // !ENABLE_EXTENDED_SELECTION
-#if ENABLE_EXTENDED_SELECTION
void on_object_select(SimpleEvent&);
-#else
- void on_object_select(ObjectSelectEvent&);
-#endif // ENABLE_EXTENDED_SELECTION
void on_viewport_changed(SimpleEvent&);
void on_right_click(Vec2dEvent&);
void on_model_update(SimpleEvent&);
-#if !ENABLE_EXTENDED_SELECTION
- void on_scale_uniformly(SimpleEvent&);
-#endif // !ENABLE_EXTENDED_SELECTION
void on_wipetower_moved(Vec3dEvent&);
void on_enable_action_buttons(Event<bool>&);
void on_update_geometry(Vec3dsEvent<2>&);
@@ -922,7 +876,6 @@ struct Plater::priv
private:
bool init_object_menu();
-#if ENABLE_EXTENDED_SELECTION
bool can_delete_object() const;
bool can_increase_instances() const;
bool can_decrease_instances() const;
@@ -933,7 +886,6 @@ private:
bool can_delete_all() const;
bool can_arrange() const;
bool can_mirror() const;
-#endif // ENABLE_EXTENDED_SELECTION
};
const std::regex Plater::priv::pattern_bundle(".*[.](amf|amf[.]xml|zip[.]amf|3mf|prusa)", std::regex::icase);
@@ -976,10 +928,6 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) :
_3DScene::enable_picking(canvas3D, true);
_3DScene::enable_moving(canvas3D, true);
// XXX: more config from 3D.pm
-#if !ENABLE_EXTENDED_SELECTION
- _3DScene::set_select_by(canvas3D, "object");
- _3DScene::set_drag_by(canvas3D, "instance");
-#endif // !ENABLE_EXTENDED_SELECTION
_3DScene::set_model(canvas3D, &model);
_3DScene::set_print(canvas3D, &print);
_3DScene::set_config(canvas3D, config);
@@ -1017,17 +965,10 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) :
canvas3D->Bind(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, &priv::on_schedule_background_process, this);
canvas3D->Bind(EVT_GLCANVAS_OBJECT_SELECT, &priv::on_object_select, this);
canvas3D->Bind(EVT_GLCANVAS_VIEWPORT_CHANGED, &priv::on_viewport_changed, this);
-#if !ENABLE_EXTENDED_SELECTION
- canvas3D->Bind(EVT_GLCANVAS_DOUBLE_CLICK, [](SimpleEvent&) {}); // XXX: remove?
-#endif // !ENABLE_EXTENDED_SELECTION
canvas3D->Bind(EVT_GLCANVAS_RIGHT_CLICK, &priv::on_right_click, this);
canvas3D->Bind(EVT_GLCANVAS_MODEL_UPDATE, &priv::on_model_update, this);
canvas3D->Bind(EVT_GLCANVAS_REMOVE_OBJECT, [q](SimpleEvent&) { q->remove_selected(); });
canvas3D->Bind(EVT_GLCANVAS_ARRANGE, [this](SimpleEvent&) { arrange(); });
-#if !ENABLE_EXTENDED_SELECTION
- canvas3D->Bind(EVT_GLCANVAS_ROTATE_OBJECT, [this](Event<int> &evt) { /*TODO: call rotate */ });
- canvas3D->Bind(EVT_GLCANVAS_SCALE_UNIFORMLY, [this](SimpleEvent&) { this->scale(); });
-#endif // !ENABLE_EXTENDED_SELECTION
canvas3D->Bind(EVT_GLCANVAS_INCREASE_INSTANCES, [q](Event<int> &evt) { evt.data == 1 ? q->increase_instances() : q->decrease_instances(); });
canvas3D->Bind(EVT_GLCANVAS_INSTANCE_MOVED, [this](SimpleEvent&) { update(); });
canvas3D->Bind(EVT_GLCANVAS_WIPETOWER_MOVED, &priv::on_wipetower_moved, this);
@@ -1043,13 +984,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) :
canvas3D->Bind(EVT_GLTOOLBAR_SPLIT_OBJECTS, &priv::on_action_split_objects, this);
canvas3D->Bind(EVT_GLTOOLBAR_SPLIT_VOLUMES, &priv::on_action_split_volumes, this);
canvas3D->Bind(EVT_GLTOOLBAR_CUT, &priv::on_action_cut, this);
-#if !ENABLE_EXTENDED_SELECTION
- canvas3D->Bind(EVT_GLTOOLBAR_SETTINGS, &priv::on_action_settings, this);
-#endif // !ENABLE_EXTENDED_SELECTION
canvas3D->Bind(EVT_GLTOOLBAR_LAYERSEDITING, &priv::on_action_layersediting, this);
-#if !ENABLE_EXTENDED_SELECTION
- canvas3D->Bind(EVT_GLTOOLBAR_SELECTBYPARTS, &priv::on_action_selectbyparts, this);
-#endif // !ENABLE_EXTENDED_SELECTION
// Preview events:
preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_VIEWPORT_CHANGED, &priv::on_viewport_changed, this);
@@ -1064,17 +999,6 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) :
q->Layout();
}
-#if !ENABLE_EXTENDED_SELECTION
-std::vector<int> Plater::priv::collect_selections()
-{
- std::vector<int> res;
- for (const auto &obj : objects) {
- res.push_back(obj.selected);
- }
- return res;
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
void Plater::priv::update(bool force_autocenter)
{
wxWindowUpdateLocker freeze_guard(q);
@@ -1086,10 +1010,6 @@ void Plater::priv::update(bool force_autocenter)
model.center_instances_around_point(bed_center);
}
-#if !ENABLE_EXTENDED_SELECTION
- const auto selections = collect_selections();
- _3DScene::set_objects_selections(canvas3D, selections);
-#endif // !ENABLE_EXTENDED_SELECTION
_3DScene::reload_scene(canvas3D, false);
preview->reset_gcode_preview_data();
preview->reload_print();
@@ -1261,19 +1181,12 @@ std::vector<size_t> Plater::priv::load_model_objects(const ModelObjectPtrs &mode
bool need_arrange = false;
bool scaled_down = false;
std::vector<size_t> obj_idxs;
-#if ENABLE_EXTENDED_SELECTION
unsigned int obj_count = model.objects.size();
-#endif // ENABLE_EXTENDED_SELECTION
for (ModelObject *model_object : model_objects) {
auto *object = model.add_object(*model_object);
std::string object_name = object->name.empty() ? fs::path(object->input_file).filename().string() : object->name;
-#if ENABLE_EXTENDED_SELECTION
obj_idxs.push_back(obj_count++);
-#else
- objects.emplace_back(std::move(object_name));
- obj_idxs.push_back(objects.size() - 1);
-#endif // ENABLE_EXTENDED_SELECTION
if (model_object->instances.empty()) {
// if object has no defined position(s) we need to rearrange everything after loading
@@ -1385,7 +1298,6 @@ std::unique_ptr<CheckboxFileDialog> Plater::priv::get_export_file(GUI::FileType
return dlg;
}
-#if ENABLE_EXTENDED_SELECTION
const GLCanvas3D::Selection& Plater::priv::get_selection() const
{
return _3DScene::get_canvas(canvas3D)->get_selection();
@@ -1401,43 +1313,9 @@ int Plater::priv::get_selected_object_idx() const
int idx = get_selection().get_object_idx();
return ((0 <= idx) && (idx < 1000)) ? idx : -1;
}
-#else
-void Plater::priv::select_object(optional<size_t> obj_idx)
-{
- for (auto &obj : objects) {
- obj.selected = false;
- }
-
- if (obj_idx) {
- objects[*obj_idx].selected = true;
- }
-
- selection_changed();
-}
-
-void Plater::priv::select_object_from_cpp()
-{
- // TODO
-}
-
-optional<size_t> Plater::priv::selected_object() const
-{
- for (size_t i = 0; i < objects.size(); i++) {
- if (objects[i].selected) { return i; }
- }
-
- return boost::none;
-}
-#endif // ENABLE_EXTENDED_SELECTION
void Plater::priv::selection_changed()
{
-#if !ENABLE_EXTENDED_SELECTION
- const auto obj_idx = selected_object();
- const bool have_sel = !!obj_idx;
-#endif // !ENABLE_EXTENDED_SELECTION
-
-#if ENABLE_EXTENDED_SELECTION
_3DScene::enable_toolbar_item(canvas3D, "delete", can_delete_object());
_3DScene::enable_toolbar_item(canvas3D, "more", can_increase_instances());
_3DScene::enable_toolbar_item(canvas3D, "fewer", can_decrease_instances());
@@ -1447,45 +1325,13 @@ void Plater::priv::selection_changed()
_3DScene::enable_toolbar_item(canvas3D, "layersediting", layers_height_allowed());
// forces a frame render to update the view (to avoid a missed update if, for example, the context menu appears)
_3DScene::render(canvas3D);
-#else
- _3DScene::enable_toolbar_item(canvas3D, "fewer", have_sel);
- _3DScene::enable_toolbar_item(canvas3D, "splitobjects", have_sel);
- _3DScene::enable_toolbar_item(canvas3D, "splitvolumes", have_sel);
- _3DScene::enable_toolbar_item(canvas3D, "cut", have_sel);
- _3DScene::enable_toolbar_item(canvas3D, "settings", have_sel);
- _3DScene::enable_toolbar_item(canvas3D, "layersediting", have_sel && config->opt_bool("variable_layer_height") && _3DScene::is_layers_editing_allowed(canvas3D));
-#endif // ENABLE_EXTENDED_SELECTION
-
-#if ENABLE_EXTENDED_SELECTION
+
int obj_idx = get_selected_object_idx();
bool have_sel = (obj_idx != -1);
-#else
- bool can_select_by_parts = false;
-
- if (have_sel) {
- const auto *model_object = model.objects[*obj_idx];
- // XXX: ?
- can_select_by_parts = *obj_idx < 1000 && model_object->volumes.size() > 1;
- _3DScene::enable_toolbar_item(canvas3D, "fewer", model_object->instances.size() > 1);
- }
-
- if (can_select_by_parts) {
- // first disable to let the item in the toolbar to switch to the unpressed state // XXX: ?
- _3DScene::enable_toolbar_item(canvas3D, "selectbyparts", false);
- _3DScene::enable_toolbar_item(canvas3D, "selectbyparts", true);
- } else {
- _3DScene::enable_toolbar_item(canvas3D, "selectbyparts", false);
- _3DScene::set_select_by(canvas3D, "object");
- }
-#endif // ENABLE_EXTENDED_SELECTION
wxWindowUpdateLocker freeze_guard(sidebar);
if (have_sel) {
-#if ENABLE_EXTENDED_SELECTION
const ModelObject* model_object = model.objects[obj_idx];
-#else
- const auto *model_object = model.objects[*obj_idx];
-#endif // ENABLE_EXTENDED_SELECTION
// FIXME print_info runs model fixing in two rounds, it is very slow, it should not be performed here!
// # $model_object->print_info;
@@ -1531,33 +1377,16 @@ void Plater::priv::selection_changed()
void Plater::priv::object_list_changed()
{
// Enable/disable buttons depending on whether there are any objects on the platter.
-#if ENABLE_EXTENDED_SELECTION
_3DScene::enable_toolbar_item(canvas3D, "deleteall", can_delete_all());
_3DScene::enable_toolbar_item(canvas3D, "arrange", can_arrange());
-#else
- const bool have_objects = !objects.empty();
- _3DScene::enable_toolbar_item(canvas3D, "deleteall", have_objects);
- _3DScene::enable_toolbar_item(canvas3D, "arrange", have_objects);
-#endif // ENABLE_EXTENDED_SELECTION
const bool export_in_progress = this->background_process.is_export_scheduled(); // || ! send_gcode_file.empty());
// XXX: is this right?
const bool model_fits = _3DScene::check_volumes_outside_state(canvas3D, config) == ModelInstance::PVS_Inside;
-#if ENABLE_EXTENDED_SELECTION
sidebar->enable_buttons(!model.objects.empty() && !export_in_progress && model_fits);
-#else
- sidebar->enable_buttons(have_objects && !export_in_progress && model_fits);
-#endif // ENABLE_EXTENDED_SELECTION
}
-#if !ENABLE_EXTENDED_SELECTION
-void Plater::priv::select_view()
-{
- // TODO
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
void Plater::priv::remove(size_t obj_idx)
{
// Prevent toolpaths preview from rendering while we modify the Print object
@@ -1566,19 +1395,12 @@ void Plater::priv::remove(size_t obj_idx)
if (_3DScene::is_layers_editing_enabled(canvas3D))
_3DScene::enable_layers_editing(canvas3D, false);
-#if !ENABLE_EXTENDED_SELECTION
- objects.erase(objects.begin() + obj_idx);
-#endif // !ENABLE_EXTENDED_SELECTION
model.delete_object(obj_idx);
// print.delete_object(obj_idx);
// Delete object from Sidebar list
sidebar->obj_list()->delete_object_from_list(obj_idx);
object_list_changed();
-
-#if !ENABLE_EXTENDED_SELECTION
- select_object(boost::none);
-#endif // !ENABLE_EXTENDED_SELECTION
update();
}
@@ -1590,42 +1412,19 @@ void Plater::priv::reset()
if (_3DScene::is_layers_editing_enabled(canvas3D))
_3DScene::enable_layers_editing(canvas3D, false);
-#if !ENABLE_EXTENDED_SELECTION
- objects.clear();
-#endif // !ENABLE_EXTENDED_SELECTION
model.clear_objects();
// print.clear_objects();
// Delete all objects from list on c++ side
sidebar->obj_list()->delete_all_objects_from_list();
object_list_changed();
-
-#if !ENABLE_EXTENDED_SELECTION
- select_object(boost::none);
-#endif // !ENABLE_EXTENDED_SELECTION
update();
}
-#if !ENABLE_EXTENDED_SELECTION
-void Plater::priv::rotate()
-{
- // TODO
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
void Plater::priv::mirror(Axis axis)
{
-#if ENABLE_EXTENDED_SELECTION
_3DScene::mirror_selection(canvas3D, axis);
-#endif // ENABLE_EXTENDED_SELECTION
-}
-
-#if !ENABLE_EXTENDED_SELECTION
-void Plater::priv::scale()
-{
- // TODO
}
-#endif // !ENABLE_EXTENDED_SELECTION
void Plater::priv::arrange()
{
@@ -1639,7 +1438,6 @@ void Plater::priv::arrange()
void Plater::priv::split_object()
{
-#if ENABLE_EXTENDED_SELECTION
int obj_idx = get_selected_object_idx();
if (obj_idx == -1)
return;
@@ -1683,7 +1481,6 @@ void Plater::priv::split_object()
get_selection().add_object((unsigned int)idx, false);
}
}
-#endif // ENABLE_EXTENDED_SELECTION
}
void Plater::priv::split_volume()
@@ -1723,11 +1520,9 @@ void Plater::priv::async_apply_config()
this->preview->reload_print();
// We also need to reload 3D scene because of the wipe tower preview box
if (this->config->opt_bool("wipe_tower")) {
-#if !ENABLE_EXTENDED_SELECTION
- std::vector<int> selections = this->collect_selections();
- Slic3r::_3DScene::set_objects_selections(this->canvas3D, selections);
- Slic3r::_3DScene::reload_scene(this->canvas3D, 1);
-#endif /* !ENABLE_EXTENDED_SELECTION */
+// std::vector<int> selections = this->collect_selections();
+// Slic3r::_3DScene::set_objects_selections(this->canvas3D, selections);
+// Slic3r::_3DScene::reload_scene(this->canvas3D, 1);
}
}
if (invalidated != Print::APPLY_STATUS_UNCHANGED && this->get_config("background_processing") == "1" &&
@@ -1801,9 +1596,6 @@ void Plater::priv::on_notebook_changed(wxBookCtrlEvent&)
const auto current_id = notebook->GetCurrentPage()->GetId();
if (current_id == canvas3D->GetId()) {
if (_3DScene::is_reload_delayed(canvas3D)) {
-#if !ENABLE_EXTENDED_SELECTION
- _3DScene::set_objects_selections(canvas3D, collect_selections());
-#endif // !ENABLE_EXTENDED_SELECTION
_3DScene::reload_scene(canvas3D, true);
}
// sets the canvas as dirty to force a render at the 1st idle event (wxWidgets IsShownOnScreen() is buggy and cannot be used reliably)
@@ -1865,12 +1657,10 @@ void Plater::priv::on_update_print_preview(wxCommandEvent &)
if (this->preview != nullptr)
this->preview->reload_print();
// in case this was MM print, wipe tower bounding box on 3D tab might need redrawing with exact depth:
-#if !ENABLE_EXTENDED_SELECTION
- auto selections = collect_selections();
- _3DScene::set_objects_selections(canvas3D, selections);
- if (canvas3D)
- _3DScene::reload_scene(canvas3D, true);
-#endif // !ENABLE_EXTENDED_SELECTION
+// auto selections = collect_selections();
+// _3DScene::set_objects_selections(canvas3D, selections);
+// if (canvas3D)
+// _3DScene::reload_scene(canvas3D, true);
}
void Plater::priv::on_process_completed(wxCommandEvent &evt)
@@ -1942,13 +1732,6 @@ void Plater::priv::on_action_cut(SimpleEvent&)
// TODO
}
-#if !ENABLE_EXTENDED_SELECTION
-void Plater::priv::on_action_settings(SimpleEvent&)
-{
- // TODO
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
void Plater::priv::on_action_layersediting(SimpleEvent&)
{
bool enable = !_3DScene::is_layers_editing_enabled(canvas3D);
@@ -1957,31 +1740,11 @@ void Plater::priv::on_action_layersediting(SimpleEvent&)
_3DScene::enable_toolbar_item(canvas3D, "layersediting", false);
}
-#if !ENABLE_EXTENDED_SELECTION
-void Plater::priv::on_action_selectbyparts(SimpleEvent&)
-{
- // TODO
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
-#if ENABLE_EXTENDED_SELECTION
void Plater::priv::on_object_select(SimpleEvent& evt)
{
selection_changed();
wxGetApp().obj_list()->update_selections();
}
-#else
-void Plater::priv::on_object_select(ObjectSelectEvent &evt)
-{
- const auto obj_idx = evt.object_id();
- const auto vol_idx = evt.volume_id();
-
- if (obj_idx >= 0 && obj_idx < 1000 && vol_idx == -1) {
- // Ignore the special objects (the wipe tower proxy and such).
- select_object(obj_idx);
-}
-}
-#endif // ENABLE_EXTENDED_SELECTION
void Plater::priv::on_viewport_changed(SimpleEvent& evt)
{
@@ -1994,16 +1757,12 @@ void Plater::priv::on_viewport_changed(SimpleEvent& evt)
void Plater::priv::on_right_click(Vec2dEvent& evt)
{
-#if ENABLE_EXTENDED_SELECTION
int obj_idx = get_selected_object_idx();
if (obj_idx == -1)
return;
if (q != nullptr)
q->PopupMenu(&object_menu, (int)evt.data.x(), (int)evt.data.y());
-#else
- // TODO
-#endif // ENABLE_EXTENDED_SELECTION
}
void Plater::priv::on_model_update(SimpleEvent&)
@@ -2011,42 +1770,6 @@ void Plater::priv::on_model_update(SimpleEvent&)
// TODO
}
-#if !ENABLE_EXTENDED_SELECTION
-void Plater::priv::on_scale_uniformly(SimpleEvent&)
-{
-// my ($scale) = @_;
-
-// my ($obj_idx, $object) = $self->selected_object;
- const auto obj_idx = selected_object();
- if (! obj_idx) { return; }
-// return if !defined $obj_idx;
-
-// my $model_object = $self->{model}->objects->[$obj_idx];
-// my $model_instance = $model_object->instances->[0];
-
-// my $variation = $scale / $model_instance->scaling_factor;
-// #FIXME Scale the layer height profile?
-// foreach my $range (@{ $model_object->layer_height_ranges }) {
-// $range->[0] *= $variation;
-// $range->[1] *= $variation;
-// }
-// $_->set_scaling_factor($scale) for @{ $model_object->instances };
-
-// # Set object scale on c++ side
-// # Slic3r::GUI::set_object_scale($obj_idx, $model_object->instances->[0]->scaling_factor * 100);
-
-// # $object->transform_thumbnail($self->{model}, $obj_idx);
-
-// #update print and start background processing
-// $self->{print}->add_model_object($model_object, $obj_idx);
-
-// $self->selection_changed(1); # refresh info (size, volume etc.)
-// $self->update;
-
- this->schedule_background_process();
-}
-#endif // !ENABLE_EXTENDED_SELECTION
-
void Plater::priv::on_wipetower_moved(Vec3dEvent &evt)
{
DynamicPrintConfig cfg;
@@ -2102,7 +1825,6 @@ bool Plater::priv::init_object_menu()
wxMenuItem* item_split = append_submenu(&object_menu, split_menu, wxID_ANY, _(L("Split")), _(L("Split the selected object")), "shape_ungroup.png");
-#if ENABLE_EXTENDED_SELECTION
// ui updates needs to be binded to the parent panel
if (q != nullptr)
{
@@ -2115,12 +1837,10 @@ bool Plater::priv::init_object_menu()
q->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Enable(can_split_to_objects()); }, item_split_objects->GetId());
q->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Enable(can_split_to_volumes()); }, item_split_volumes->GetId());
}
-#endif // ENABLE_EXTENDED_SELECTION
return true;
}
-#if ENABLE_EXTENDED_SELECTION
bool Plater::priv::can_delete_object() const
{
int obj_idx = get_selected_object_idx();
@@ -2177,7 +1897,6 @@ bool Plater::priv::can_mirror() const
{
return get_selection().is_from_single_instance();
}
-#endif // ENABLE_EXTENDED_SELECTION
// Plater / Public
@@ -2218,51 +1937,28 @@ void Plater::remove(size_t obj_idx) { p->remove(obj_idx); }
void Plater::remove_selected()
{
-#if ENABLE_EXTENDED_SELECTION
int obj_idx = p->get_selected_object_idx();
if (obj_idx != -1)
remove((size_t)obj_idx);
-#else
- const auto selected = p->selected_object();
- if (selected) {
- remove(*selected);
- }
-#endif // ENABLE_EXTENDED_SELECTION
}
void Plater::increase_instances(size_t num)
{
-#if ENABLE_EXTENDED_SELECTION
int obj_idx = p->get_selected_object_idx();
if (obj_idx == -1)
return;
ModelObject* model_object = p->model.objects[obj_idx];
ModelInstance* model_instance = model_object->instances.back();
-#else
- const auto obj_idx = p->selected_object();
- if (! obj_idx) { return; }
-
- auto *model_object = p->model.objects[*obj_idx];
- auto *model_instance = model_object->instances[model_object->instances.size() - 1];
-#endif // ENABLE_EXTENDED_SELECTION
float offset = 10.0;
for (size_t i = 0; i < num; i++, offset += 10.0) {
Vec3d offset_vec = model_instance->get_offset() + Vec3d(offset, offset, 0.0);
model_object->add_instance(offset_vec, model_instance->get_scaling_factor(), model_instance->get_rotation());
-#if ENABLE_EXTENDED_SELECTION
// p->print.get_object(obj_idx)->add_copy(Slic3r::to_2d(offset_vec));
-#else
-// p->print.get_object(*obj_idx)->add_copy(Slic3r::to_2d(offset_vec));
-#endif // ENABLE_EXTENDED_SELECTION
}
-#if ENABLE_EXTENDED_SELECTION
sidebar().obj_list()->increase_object_instances(obj_idx, num);
-#else
- sidebar().obj_list()->increase_object_instances(*obj_idx, num);
-#endif // ENABLE_EXTENDED_SELECTION
if (p->get_config("autocenter") == "1") {
p->arrange();
@@ -2270,9 +1966,7 @@ void Plater::increase_instances(size_t num)
p->update();
}
-#if ENABLE_EXTENDED_SELECTION
p->get_selection().add_instance(obj_idx, (int)model_object->instances.size() - 1);
-#endif // ENABLE_EXTENDED_SELECTION
p->selection_changed();
@@ -2281,47 +1975,26 @@ void Plater::increase_instances(size_t num)
void Plater::decrease_instances(size_t num)
{
-#if ENABLE_EXTENDED_SELECTION
int obj_idx = p->get_selected_object_idx();
if (obj_idx == -1)
return;
ModelObject* model_object = p->model.objects[obj_idx];
-#else
- const auto obj_idx = p->selected_object();
- if (! obj_idx) { return; }
-
- auto *model_object = p->model.objects[*obj_idx];
-#endif // ENABLE_EXTENDED_SELECTION
if (model_object->instances.size() > num) {
for (size_t i = 0; i < num; i++) {
model_object->delete_last_instance();
-#if ENABLE_EXTENDED_SELECTION
// p->print.get_object(obj_idx)->delete_last_copy();
-#else
-// p->print.get_object(*obj_idx)->delete_last_copy();
-#endif // ENABLE_EXTENDED_SELECTION
}
-#if ENABLE_EXTENDED_SELECTION
sidebar().obj_list()->decrease_object_instances(obj_idx, num);
-#else
- sidebar().obj_list()->decrease_object_instances(*obj_idx, num);
-#endif // ENABLE_EXTENDED_SELECTION
}
else {
-#if ENABLE_EXTENDED_SELECTION
remove(obj_idx);
-#else
- remove(*obj_idx);
-#endif // ENABLE_EXTENDED_SELECTION
}
p->update();
-#if ENABLE_EXTENDED_SELECTION
if (!model_object->instances.empty())
p->get_selection().add_instance(obj_idx, (int)model_object->instances.size() - 1);
-#endif // ENABLE_EXTENDED_SELECTION
p->selection_changed();
this->p->schedule_background_process();
@@ -2329,18 +2002,11 @@ void Plater::decrease_instances(size_t num)
void Plater::set_number_of_copies(/*size_t num*/)
{
-#if ENABLE_EXTENDED_SELECTION
int obj_idx = p->get_selected_object_idx();
if (obj_idx == -1)
return;
ModelObject* model_object = p->model.objects[obj_idx];
-#else
- const auto obj_idx = p->selected_object();
- if (! obj_idx) { return; }
-
- auto *model_object = p->model.objects[*obj_idx];
-#endif // ENABLE_EXTENDED_SELECTION
const auto num = wxGetNumberFromUser( " ", _("Enter the number of copies:"),
_("Copies of the selected object"), model_object->instances.size(), 0, 1000, this );
@@ -2356,13 +2022,8 @@ void Plater::set_number_of_copies(/*size_t num*/)
void Plater::export_gcode(fs::path output_path)
{
-#if ENABLE_EXTENDED_SELECTION
if (p->model.objects.empty())
return;
-#else
- if (p->objects.empty())
- return;
-#endif // ENABLE_EXTENDED_SELECTION
if (this->p->background_process.is_export_scheduled()) {
GUI::show_error(this, _(L("Another export job is currently running.")));
@@ -2414,11 +2075,7 @@ void Plater::export_gcode(fs::path output_path)
void Plater::export_stl()
{
-#if ENABLE_EXTENDED_SELECTION
if (p->model.objects.empty()) { return; }
-#else
- if (p->objects.empty()) { return; }
-#endif // ENABLE_EXTENDED_SELECTION
auto dialog = p->get_export_file(FT_STL);
if (! dialog) { return; }
@@ -2433,11 +2090,7 @@ void Plater::export_stl()
void Plater::export_amf()
{
-#if ENABLE_EXTENDED_SELECTION
if (p->model.objects.empty()) { return; }
-#else
- if (p->objects.empty()) { return; }
-#endif // ENABLE_EXTENDED_SELECTION
auto dialog = p->get_export_file(FT_AMF);
if (! dialog) { return; }
@@ -2456,11 +2109,7 @@ void Plater::export_amf()
void Plater::export_3mf()
{
-#if ENABLE_EXTENDED_SELECTION
if (p->model.objects.empty()) { return; }
-#else
- if (p->objects.empty()) { return; }
-#endif // ENABLE_EXTENDED_SELECTION
auto dialog = p->get_export_file(FT_3MF);
if (! dialog) { return; }
@@ -2600,11 +2249,6 @@ void Plater::changed_object(int obj_idx)
// update print
if (list->is_parts_changed() || list->is_part_settings_changed()) {
this->p->schedule_background_process();
-#if !ENABLE_EXTENDED_SELECTION
- if (p->canvas3D) _3DScene::reload_scene(p->canvas3D, true);
- auto selections = p->collect_selections();
- _3DScene::set_objects_selections(p->canvas3D, selections);
-#endif // !ENABLE_EXTENDED_SELECTION
#if !ENABLE_MODIFIED_CAMERA_TARGET
_3DScene::zoom_to_volumes(p->canvas3D);
#endif // !ENABLE_MODIFIED_CAMERA_TARGET