Fixed a crash when slicing leads to no print.
Fixed a bug in TriangleMesh::bounding_box().
This commit is contained in:
parent
b08d6f1969
commit
98408bbed0
@ -1,5 +1,6 @@
|
|||||||
#include "BoundingBox.hpp"
|
#include "BoundingBox.hpp"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
|
|
||||||
@ -125,6 +126,7 @@ template void BoundingBoxBase<Pointf>::merge(const Pointfs &points);
|
|||||||
template <class PointClass> void
|
template <class PointClass> void
|
||||||
BoundingBoxBase<PointClass>::merge(const BoundingBoxBase<PointClass> &bb)
|
BoundingBoxBase<PointClass>::merge(const BoundingBoxBase<PointClass> &bb)
|
||||||
{
|
{
|
||||||
|
assert(bb.defined || bb.min.x >= bb.max.x || bb.min.y >= bb.max.y);
|
||||||
if (bb.defined) {
|
if (bb.defined) {
|
||||||
if (this->defined) {
|
if (this->defined) {
|
||||||
this->min.x = std::min(bb.min.x, this->min.x);
|
this->min.x = std::min(bb.min.x, this->min.x);
|
||||||
@ -162,6 +164,7 @@ template void BoundingBox3Base<Pointf3>::merge(const Pointf3s &points);
|
|||||||
template <class PointClass> void
|
template <class PointClass> void
|
||||||
BoundingBox3Base<PointClass>::merge(const BoundingBox3Base<PointClass> &bb)
|
BoundingBox3Base<PointClass>::merge(const BoundingBox3Base<PointClass> &bb)
|
||||||
{
|
{
|
||||||
|
assert(bb.defined || bb.min.x >= bb.max.x || bb.min.y >= bb.max.y || bb.min.z >= bb.max.z);
|
||||||
if (bb.defined) {
|
if (bb.defined) {
|
||||||
if (this->defined) {
|
if (this->defined) {
|
||||||
this->min.z = std::min(bb.min.z, this->min.z);
|
this->min.z = std::min(bb.min.z, this->min.z);
|
||||||
|
@ -710,7 +710,6 @@ bool GCode::_do_export(Print &print, FILE *file)
|
|||||||
// Just wait for a bit to let the user check, that the priming succeeded.
|
// Just wait for a bit to let the user check, that the priming succeeded.
|
||||||
fprintf(file, "M117 Verify extruder priming\nM0 S10\nM117 Printing\n");
|
fprintf(file, "M117 Verify extruder priming\nM0 S10\nM117 Printing\n");
|
||||||
}
|
}
|
||||||
write(file, this->unretract());
|
|
||||||
} else
|
} else
|
||||||
write(file, WipeTowerIntegration::prime_single_color_print(print, initial_extruder_id, *this));
|
write(file, WipeTowerIntegration::prime_single_color_print(print, initial_extruder_id, *this));
|
||||||
}
|
}
|
||||||
|
@ -1253,7 +1253,8 @@ void PrintObject::_slice()
|
|||||||
goto end;
|
goto end;
|
||||||
delete layer;
|
delete layer;
|
||||||
this->layers.pop_back();
|
this->layers.pop_back();
|
||||||
this->layers.back()->upper_layer = nullptr;
|
if (! this->layers.empty())
|
||||||
|
this->layers.back()->upper_layer = nullptr;
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
;
|
;
|
||||||
|
@ -574,6 +574,7 @@ BoundingBoxf3
|
|||||||
TriangleMesh::bounding_box() const
|
TriangleMesh::bounding_box() const
|
||||||
{
|
{
|
||||||
BoundingBoxf3 bb;
|
BoundingBoxf3 bb;
|
||||||
|
bb.defined = true;
|
||||||
bb.min.x = this->stl.stats.min.x;
|
bb.min.x = this->stl.stats.min.x;
|
||||||
bb.min.y = this->stl.stats.min.y;
|
bb.min.y = this->stl.stats.min.y;
|
||||||
bb.min.z = this->stl.stats.min.z;
|
bb.min.z = this->stl.stats.min.z;
|
||||||
|
Loading…
Reference in New Issue
Block a user