Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a new “partitioned linking” option for line infill optimization, wires it through settings/config, and refactors some debugging/inspection utilities.
Changes:
- Added a new infill setting (
infill_lines_partitioned_linking) and passed it intoPolylineOrderOptimizerto control line-linking behavior. - Updated infill line linking logic in
PolylineOrderOptimizerto switch behavior based on the new flag, plus some cleanup in intersection checks and comments. - Introduced
GeometryDebug::printDesmoshelpers and refactored skeleton inspection to use them; removed the unuseddependency_groupconfig field and bumped version.
Reviewed changes
Copilot reviewed 10 out of 12 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| version.json | Patch version bump. |
| src/utilities/constants.cpp | Adds the new profile setting key string. |
| include/utilities/constants.h | Declares the new profile setting constant. |
| resources/configs/master.conf | Adds the new setting definition; removes dependency_group fields. |
| scripts/ods_to_json.py | Removes dependency_group from the ODS-to-JSON typing map. |
| src/step/layer/regions/infill.cpp | Passes the new setting into PolylineOrderOptimizer::setInfillParameters. |
| include/optimizers/polyline_order_optimizer.h | Extends infill parameters and adds the new member flag. |
| src/optimizers/polyline_order_optimizer.cpp | Implements the new selection behavior and related cleanups. |
| include/geometry/geometry_debug.h | New Desmos-printing debug API. |
| src/geometry/geometry_debug.cpp | Implementation of GeometryDebug::printDesmos overloads. |
| src/step/layer/regions/skeleton.cpp | Refactors skeleton inspection output to use GeometryDebug. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
8e8450d to
4e1c851
Compare
4e1c851 to
810980f
Compare
aroschli
approved these changes
Mar 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request refines the infill line linking logic for partitioned linking, along with some minor cleanups and improvements to code clarity and maintainability.
Infill Line Linking Improvements
Added support for "partitioned linking" of infill lines: the optimizer now links lines within the same partition before linking between partitions, controlled by a new boolean parameter and member variable in
PolylineOrderOptimizer. This option is now passed through from settings and used in the infill optimization workflow. [1] [2] [3] [4]Updated the infill line linking algorithm to choose between partitioned and monotonic linking based on the new flag, with clearer logic and improved variable naming. [1] [2]
Settings and Constants
kLinesPartitionedLinkingto support the partitioned linking feature, and ensured it is correctly referenced throughout the codebase. [1] [2]Code Cleanup and Minor Refactoring