From 9918c1e97d37b932b9992c46a7999b11e9f9c0ca Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sun, 13 Oct 2013 12:12:03 +0200 Subject: [PATCH] Minor improvements in debug output --- lib/Slic3r/Layer/Region.pm | 12 +++++++----- xs/src/TriangleMesh.cpp | 6 ++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/Slic3r/Layer/Region.pm b/lib/Slic3r/Layer/Region.pm index c8c968ca26..1b2ecaecb4 100644 --- a/lib/Slic3r/Layer/Region.pm +++ b/lib/Slic3r/Layer/Region.pm @@ -3,7 +3,7 @@ use Moo; use List::Util qw(sum first); use Slic3r::ExtrusionPath ':roles'; -use Slic3r::Geometry qw(PI A B scale chained_path_items points_coincide); +use Slic3r::Geometry qw(PI A B scale unscale chained_path_items points_coincide); use Slic3r::Geometry::Clipper qw(union_ex diff_ex intersection_ex offset offset2 offset2_ex union_pt traverse_pt diff intersection union diff); @@ -86,7 +86,7 @@ sub make_surfaces { return if !@$loops; $self->slices->clear; - $self->slices->append(_merge_loops($loops)); + $self->slices->append($self->_merge_loops($loops)); if (0) { require "Slic3r/SVG.pm"; @@ -100,7 +100,7 @@ sub make_surfaces { } sub _merge_loops { - my ($loops, $safety_offset) = @_; + my ($self, $loops, $safety_offset) = @_; # Input loops are not suitable for evenodd nor nonzero fill types, as we might get # two consecutive concentric loops having the same winding order - and we have to @@ -134,8 +134,10 @@ sub _merge_loops { $safety_offset //= scale 0.0499; $slices = offset2_ex($slices, +$safety_offset, -$safety_offset); - Slic3r::debugf " %d surface(s) having %d holes detected from %d polylines\n", - scalar(@$slices), scalar(map @{$_->holes}, @$slices), scalar(@$loops) if $Slic3r::debug; + Slic3r::debugf "Layer %d (slice_z = %.2f, print_z = %.2f): %d surface(s) having %d holes detected from %d polylines\n", + $self->id, unscale($self->slice_z), $self->print_z, + scalar(@$slices), scalar(map @{$_->holes}, @$slices), scalar(@$loops) + if $Slic3r::debug; return map Slic3r::Surface->new(expolygon => $_, surface_type => S_TYPE_INTERNAL), @$slices; } diff --git a/xs/src/TriangleMesh.cpp b/xs/src/TriangleMesh.cpp index f3fd060494..c512757c24 100644 --- a/xs/src/TriangleMesh.cpp +++ b/xs/src/TriangleMesh.cpp @@ -375,6 +375,9 @@ TriangleMesh::slice(const std::vector &z) std::vector* layers = new std::vector(z.size()); for (std::vector::iterator it = lines.begin(); it != lines.end(); ++it) { int layer_idx = it - lines.begin(); + #ifdef SLIC3R_DEBUG + printf("Layer %d:\n", layer_idx); + #endif // remove tangent edges for (IntersectionLines::iterator line = it->begin(); line != it->end(); ++line) { @@ -473,6 +476,9 @@ TriangleMesh::slice(const std::vector &z) // we can't close this loop! //// push @failed_loops, [@loop]; + #ifdef SLIC3R_DEBUG + printf(" Unable to close this loop having %d points\n", (int)loop.size()); + #endif goto CYCLE; } /*