Skip to content

Conversation

@wawanbreton
Copy link
Contributor

@wawanbreton wawanbreton commented Dec 11, 2025

This PR merges the following features:

  • Extra infill lines to support skin
  • Skin edge support layer
  • Bridging over infill

Into a single one that is taking the best of each: we now add a briding layer at the top of the infill, but also expand the area to make sure that all the bridging lines will be supported by an infill line below. This should provide a proper supporting layer for the skin above, whatever the shape of the mesh/infill.

Requires Ultimaker/Cura#21206

CURA-12361

@wawanbreton wawanbreton changed the base branch from main to CURA-12833_improve-bridge-lines-direction December 11, 2025 10:05
@github-actions
Copy link
Contributor

github-actions bot commented Dec 11, 2025

Test Results

30 tests  +30   30 ✅ +30   4s ⏱️ +4s
 1 suites + 1    0 💤 ± 0 
 1 files   + 1    0 ❌ ± 0 

Results for commit dffbbf0. ± Comparison against base commit 4dafaef.

♻️ This comment has been updated with latest results.

CURA-12361
The FffGcodeWriter unit test is now failing because the skin doesn't have support infill. The new skin support feature can't be enabled easily because it requires the above layer to be properly processed. which requires a full rewrite of this test.
@wawanbreton wawanbreton marked this pull request as ready for review December 11, 2025 15:51
Copy link
Member

@rburema rburema left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good! I appreciate the comments, that helps.

I've got some small cosmetic changes (most importantly, remove the debug-code that writes to a folder it assumes exists...)

Lastly, I had two remarks that I don't think we should necessarily act on right now, but want to have mentioned:

  • The bridge.cpp file has a lot of classes now; we should consider breaking that up into chunks, probably in a folder.
  • The const_cast is a bit of a smell and scares me a little 😅

@wawanbreton
Copy link
Contributor Author

* The `bridge.cpp` file has a lot of classes now; we should consider breaking that up into chunks, probably in a folder.

I would love that indeed. I didn't do it in the first place because those structures are very specific to this algorithm, but I do prefer when each file contains single structures/classes. I will do that.

* The `const_cast` is a bit of a smell and scares me a little 😅

It is a bit scary, hence the comment. But in this context it is perfectly safe. The object is const to allow it being used from the threads that process the layers, and this piece of code properly handles locking between these threads. So yes, quite surprising and scary, but this is one of the cases where const_cast is used wisely IMHO.

@wawanbreton
Copy link
Contributor Author

I did the refactoring to move the intermediate structures in their own files, and converted most of them to classes. That makes things even more clear.
This looks like a big change but technically the algorithm is the same...

Base automatically changed from CURA-12833_improve-bridge-lines-direction to main December 17, 2025 13:30
@HellAholic HellAholic dismissed rburema’s stale review December 19, 2025 14:15

Changes have been implemented as requested

@HellAholic HellAholic merged commit 8bfb59a into main Dec 19, 2025
22 of 23 checks passed
@HellAholic HellAholic deleted the CURA-12361_add-skin-support branch December 19, 2025 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants