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
path: root/xs/src
diff options
context:
space:
mode:
authorAlessandro Ranellucci <aar@cpan.org>2014-12-12 22:16:32 +0300
committerAlessandro Ranellucci <aar@cpan.org>2014-12-13 00:43:56 +0300
commit050f9ff61af1a673284d469b676df8628eb6e30f (patch)
tree448b48b5bfc1771e3a38d96ba611dae5bfde11cc /xs/src
parentb28fb2ef173a7e29d8d9c0992ec63b64c80fe497 (diff)
Removed two useless methods in Print
Diffstat (limited to 'xs/src')
-rw-r--r--xs/src/libslic3r/Print.cpp58
-rw-r--r--xs/src/libslic3r/Print.hpp2
2 files changed, 23 insertions, 37 deletions
diff --git a/xs/src/libslic3r/Print.cpp b/xs/src/libslic3r/Print.cpp
index 8a409c045..6edd32609 100644
--- a/xs/src/libslic3r/Print.cpp
+++ b/xs/src/libslic3r/Print.cpp
@@ -76,46 +76,20 @@ Print::get_object(size_t idx)
return objects.at(idx);
}
-PrintObject*
-Print::add_object(ModelObject *model_object, const BoundingBoxf3 &modobj_bbox)
-{
- PrintObject *object = new PrintObject(this, model_object, modobj_bbox);
- objects.push_back(object);
-
- // invalidate steps
- this->invalidate_step(psSkirt);
- this->invalidate_step(psBrim);
-
- return object;
-}
-
-PrintObject*
-Print::set_new_object(size_t idx, ModelObject *model_object, const BoundingBoxf3 &modobj_bbox)
-{
- if (idx >= this->objects.size()) throw "bad idx";
-
- PrintObjectPtrs::iterator old_it = this->objects.begin() + idx;
- // before deleting object, invalidate all of its steps in order to
- // invalidate all of the dependent ones in Print
- (*old_it)->invalidate_all_steps();
- delete *old_it;
-
- PrintObject *object = new PrintObject(this, model_object, modobj_bbox);
- this->objects[idx] = object;
- return object;
-}
-
void
Print::delete_object(size_t idx)
{
PrintObjectPtrs::iterator i = this->objects.begin() + idx;
+
+ // before deleting object, invalidate all of its steps in order to
+ // invalidate all of the dependent ones in Print
+ (*i)->invalidate_all_steps();
+
+ // destroy object and remove it from our container
delete *i;
this->objects.erase(i);
// TODO: purge unused regions
-
- this->state.invalidate(psSkirt);
- this->state.invalidate(psBrim);
}
void
@@ -375,9 +349,23 @@ Print::add_model_object(ModelObject* model_object, int idx)
{
BoundingBoxf3 bb;
model_object->raw_bounding_box(&bb);
- o = (idx != -1)
- ? this->set_new_object(idx, model_object, bb)
- : this->add_object(model_object, bb);
+ if (idx != -1) {
+ // replacing existing object
+ PrintObjectPtrs::iterator old_it = this->objects.begin() + idx;
+ // before deleting object, invalidate all of its steps in order to
+ // invalidate all of the dependent ones in Print
+ (*old_it)->invalidate_all_steps();
+ delete *old_it;
+
+ this->objects[idx] = o = new PrintObject(this, model_object, bb);
+ } else {
+ o = new PrintObject(this, model_object, bb);
+ objects.push_back(o);
+
+ // invalidate steps
+ this->invalidate_step(psSkirt);
+ this->invalidate_step(psBrim);
+ }
}
for (ModelVolumePtrs::const_iterator v_i = model_object->volumes.begin(); v_i != model_object->volumes.end(); ++v_i) {
diff --git a/xs/src/libslic3r/Print.hpp b/xs/src/libslic3r/Print.hpp
index 45e1eb25c..fd0e6a19d 100644
--- a/xs/src/libslic3r/Print.hpp
+++ b/xs/src/libslic3r/Print.hpp
@@ -168,8 +168,6 @@ class Print
// methods for handling objects
void clear_objects();
PrintObject* get_object(size_t idx);
- PrintObject* add_object(ModelObject *model_object, const BoundingBoxf3 &modobj_bbox);
- PrintObject* set_new_object(size_t idx, ModelObject *model_object, const BoundingBoxf3 &modobj_bbox);
void delete_object(size_t idx);
void reload_object(size_t idx);