diff --git a/lib/Slic3r/Geometry.pm b/lib/Slic3r/Geometry.pm index 86e7bf96e4..b5bec3a8d7 100644 --- a/lib/Slic3r/Geometry.pm +++ b/lib/Slic3r/Geometry.pm @@ -20,7 +20,7 @@ our @EXPORT_OK = qw( shortest_path collinear scale unscale merge_collinear_lines rad2deg_dir bounding_box_center line_intersects_any douglas_peucker polyline_remove_short_segments normal triangle_normal polygon_is_convex - scaled_epsilon bounding_box_3D + scaled_epsilon bounding_box_3D size_3D ); @@ -721,6 +721,13 @@ sub bounding_box_3D { return @extents; } +sub size_3D { + my ($points) = @_; + + my @extents = bounding_box_3D($points); + return map $extents[$_][MAX] - $extents[$_][MIN], (X,Y,Z); +} + sub angle3points { my ($p1, $p2, $p3) = @_; # p1 is the center diff --git a/lib/Slic3r/TriangleMesh.pm b/lib/Slic3r/TriangleMesh.pm index 90ff45614e..9818196dbf 100644 --- a/lib/Slic3r/TriangleMesh.pm +++ b/lib/Slic3r/TriangleMesh.pm @@ -386,9 +386,7 @@ sub extents { sub size { my $self = shift; - - my @extents = $self->extents; - return map $extents[$_][MAX] - $extents[$_][MIN], (X,Y,Z); + return Slic3r::Geometry::size_3D($self->vertices); } sub slice_facet {