mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-24 23:23:59 -06:00
Fixes and improvements to MotionPlanner, much smarter now
This commit is contained in:
parent
f7e97f7e9b
commit
1a286fc906
12 changed files with 198 additions and 202 deletions
|
@ -178,20 +178,13 @@ sub export {
|
|||
# compute the offsetted convex hull for each object and repeat it for each copy.
|
||||
my @islands_p = ();
|
||||
foreach my $object (@{$self->objects}) {
|
||||
# compute the convex hull of the entire object
|
||||
my $convex_hull = convex_hull([
|
||||
map @{$_->contour}, map @{$_->slices}, @{$object->layers},
|
||||
]);
|
||||
|
||||
# discard objects only containing thin walls (offset would fail on an empty polygon)
|
||||
next if !@$convex_hull;
|
||||
|
||||
# grow convex hull by the wanted clearance
|
||||
my @obj_islands_p = @{offset([$convex_hull], $distance_from_objects, 1, JT_SQUARE)};
|
||||
my @polygons = map $_->contour, map @{$_->slices}, @{$object->layers};
|
||||
next if !@polygons;
|
||||
|
||||
# translate convex hull for each object copy and append it to the islands array
|
||||
foreach my $copy (@{ $object->_shifted_copies }) {
|
||||
my @copy_islands_p = map $_->clone, @obj_islands_p;
|
||||
my @copy_islands_p = map $_->clone, @polygons;
|
||||
$_->translate(@$copy) for @copy_islands_p;
|
||||
push @islands_p, @copy_islands_p;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue