FIX: rewrite per-object printing order logic

1. Previous logic can't guarantee left-to-right printing order, so
   toolhead may crash on the right side. In the new algorithm printing
   order is guaranteed.
2. Clearance radius should be the max of 3 directions (left, bottom,
   up), not including right, otherwise collision may happen on bottom or
   up directions.
3. Add is_extrusion_cali_object property to handle extrusion brim
   overlap better.

Change-Id: I44868b9925d983f5cca0c31d35dfa28d895fadbf
This commit is contained in:
Arthur Tang 2022-10-22 23:31:02 +08:00 committed by Lane.Wei
parent 59dfcb98fc
commit 5544e9602c
9 changed files with 97 additions and 24 deletions

View file

@ -52,6 +52,7 @@ struct ArrangePolygon {
//BBS: add locked_plate to indicate whether it is in the locked plate
int locked_plate{ -1 };
bool is_virt_object{ false };
bool is_extrusion_cali_object{ false };
bool is_wipe_tower{false};
//BBS: add row/col for sudoku-style layout
int row{0};