Ultimaker / CuraEngine

Powerful, fast and robust engine for converting 3D models into g-code instructions for 3D printers. It is part of the larger open source project Cura.
https://ultimaker.com/en/products/cura-software
GNU Affero General Public License v3.0
1.68k stars 882 forks source link

Improve slice performance of wall ordering #2001

Closed casperlamboo closed 9 months ago

casperlamboo commented 9 months ago

Main performance improvement was done here: https://github.com/Ultimaker/CuraEngine/pull/2001/commits/afab09646ac0f97d8cb4542e4bb6c4e15c30d6e4. From commit message why this improves tihngs:

Quick optimization we could make; we were checking if one polygon was the child of another polygon. We were doing this for contour parallel tool paths. These tool paths have one property we can exploit, the polygons are never intersecting. A logical consequence from this property is that if one point of the child polygon is inside the parent polygon then all points are inside.

The child-parent check is simplified by chekcing a single point.

Other commit(s) simplified the code and resolved some remaining bugs

CURA-11352