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

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEnrico Turri <enricoturri@seznam.cz>2019-06-24 14:21:05 +0300
committerEnrico Turri <enricoturri@seznam.cz>2019-06-24 14:21:05 +0300
commit7aaba25520ea37d662ced74b465b66c394f34593 (patch)
tree32d402006b22fcd718aa31f395dfd05b8002ab79 /src/slic3r/GUI/Selection.cpp
parentfab363493140a93c1786c7898424a73dd1ed2a2e (diff)
Do not allow to copy/paste volumes when using sla printer
Diffstat (limited to 'src/slic3r/GUI/Selection.cpp')
-rw-r--r--src/slic3r/GUI/Selection.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp
index 6e80783cc..97168ee04 100644
--- a/src/slic3r/GUI/Selection.cpp
+++ b/src/slic3r/GUI/Selection.cpp
@@ -47,6 +47,26 @@ Selection::VolumeCache::VolumeCache(const Geometry::Transformation& volume_trans
{
}
+bool Selection::Clipboard::is_sla_compliant() const
+{
+ if (m_mode == Selection::Volume)
+ return false;
+
+ for (const ModelObject* o : m_model.objects)
+ {
+ if (o->is_multiparts())
+ return false;
+
+ for (const ModelVolume* v : o->volumes)
+ {
+ if (v->is_modifier())
+ return false;
+ }
+ }
+
+ return true;
+}
+
Selection::Selection()
: m_volumes(nullptr)
, m_model(nullptr)
@@ -385,6 +405,20 @@ bool Selection::is_from_single_object() const
return (0 <= idx) && (idx < 1000);
}
+bool Selection::is_sla_compliant() const
+{
+ if (m_mode == Volume)
+ return false;
+
+ for (unsigned int i : m_list)
+ {
+ if ((*m_volumes)[i]->is_modifier)
+ return false;
+ }
+
+ return true;
+}
+
bool Selection::requires_uniform_scale() const
{
if (is_single_full_instance() || is_single_modifier() || is_single_volume())