Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Arachne to vary line width #1210

Merged
merged 1,377 commits into from
Dec 14, 2021
Merged

Use Arachne to vary line width #1210

merged 1,377 commits into from
Dec 14, 2021
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Jan 19, 2021

  1. Configuration menu
    Copy the full SHA
    6e09473 View commit details
    Browse the repository at this point in the history
  2. Fixed wrongly inverted assert warning

    Updated message
    jellespijker committed Jan 19, 2021
    Configuration menu
    Copy the full SHA
    427715c View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2021

  1. Remove unused field wall_line_count

    Discovered this while investigating CURA-7943.
    Ghostkeeper committed Feb 4, 2021
    Configuration menu
    Copy the full SHA
    8d72946 View commit details
    Browse the repository at this point in the history
  2. Remove TODO marker that has been done

    This is already implemented in CURA-7830.
    Ghostkeeper committed Feb 4, 2021
    Configuration menu
    Copy the full SHA
    ff3c515 View commit details
    Browse the repository at this point in the history
  3. Don't remove parts without walls if they are meant to have no walls

    This is an optimisation that removes parts that are too small to print, if they don't even generate an outer wall. But if the wall line count is zero, there is not going to be any outer wall either. So if it's zero, don't remove any parts with this optimisation.
    
    Contributes to issue CURA-7943.
    Ghostkeeper committed Feb 4, 2021
    Configuration menu
    Copy the full SHA
    ccad27a View commit details
    Browse the repository at this point in the history
  4. Don't assert size_t being positive

    Because size_t is always positive. This generates a warning in my compiler.
    Ghostkeeper committed Feb 4, 2021
    Configuration menu
    Copy the full SHA
    feab97a View commit details
    Browse the repository at this point in the history
  5. Add basic test for walls computation

    Just see if a part is getting filled.
    Ghostkeeper committed Feb 4, 2021
    Configuration menu
    Copy the full SHA
    810fb24 View commit details
    Browse the repository at this point in the history
  6. Add test for generating 0 walls

    Contributes to issue CURA-7943.
    Ghostkeeper committed Feb 4, 2021
    Configuration menu
    Copy the full SHA
    d306ba8 View commit details
    Browse the repository at this point in the history
  7. Fix spelling

    Can't leave this hanging.
    
    Contributes to issue CURA-7943.
    Ghostkeeper committed Feb 4, 2021
    Configuration menu
    Copy the full SHA
    dd6ae07 View commit details
    Browse the repository at this point in the history
  8. Merge branch 'master' into libArachne_rebased

    Conflicts:
    	src/InsetOrderOptimizer.cpp -> Changes to an algorithm that was completely rewritten, so the Arachne version was taken.
    	src/Wireframe2gcode.cpp -> Some MM2INT stuff and round offsets for skirt are now merged into Arachne code.
    	src/pathOrderOptimizer.cpp -> File was changed on master but removed in Arachne. Keeping it removed.
    	src/skin.cpp -> Changes to top surface skin only applying to top skin merged into Arachne.
    Ghostkeeper committed Feb 4, 2021
    Configuration menu
    Copy the full SHA
    d3334c1 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2021

  1. Possible to adjust how close to optimal-width/place outer walls are.

    Outer walls react to what happens inside. While technically correct behaviour given the basic premise of Arahcne, this can cause noticable artifacts in what would otherwise be a straight wall. This would already be worthy of fixing, but it seems these artifacts can be exacerbated by the printing process, making it a at least a critical and probably even a blocker for release.
    
    This commit sets up the basic premise. Add a parameter to adjust how close the outer walls are to their 'optimal' width (and, because they are outer walls therefore also placement, which is what is needed), with 1.0 meaning completely optimal (mostly ignore any width changes to the outer walls coming in, let the inner walls 'solve it as much as possible') and 0.0 being the old 'correct' behaviour (no compensation is applied to the previous strategy other than the 'relative widths for inner and outer' redistribution which was already happening).
    
    What still needs to be done is:
     - Add the parameter as a class parameter and expose it to the frontend (and add it to the frontend).
     - Handle the case where there where previously only 2 outer walls ... but a middle (inner) wall might be needed after compensation.
     - Handle the case where all(a?) middle wall(s) should be eliminated because the space for inner walls has become too small after the compensation for outer walls is applied.
    
    CURA-7979
    rburema committed Feb 5, 2021
    Configuration menu
    Copy the full SHA
    a5f9acf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    869cc4d View commit details
    Browse the repository at this point in the history
  3. Handle the 'initially only outer walls' case.

    Even if there are only outer walls (perhaps especially so) they'll need to be locked in place (depending on the outer wall lock factor). In case there is one, there isn't much that can be changed. The same goes for, 'two, but closer together than the optimum'. With two and some room to play with, there are a number of possibilities. In any case, the outer walls themselves should be repositioned according to the outer wall lock factor. The hard part is to determine when a third wall needs the be inserted, since the outer walls will become narrower. The transition thickness from 0 walls to 1 seemed like a natural choice (this will actually call the parent strategy, so that's neat as well).
    
    CURA-7979
    rburema committed Feb 5, 2021
    Configuration menu
    Copy the full SHA
    99f7349 View commit details
    Browse the repository at this point in the history
  4. Don't handle 0-width signalling walls.

    It makes everything more complicated, and the zero width signalling walls are now guaranteed to be handled _after_ the redistribution 'stage' (beading meta strategy).
    
    CURA-7979
    rburema committed Feb 5, 2021
    Configuration menu
    Copy the full SHA
    aca8aeb View commit details
    Browse the repository at this point in the history
  5. Handle case where inner walls dissapear.

    Not _entirely_ sure if and when this can happen... If so, then the situation must've been happening in the 'old' situation as well perhaps. A bit of defensive programming is usually a good idea though.
    
    CURA-7979
    rburema committed Feb 5, 2021
    Configuration menu
    Copy the full SHA
    4928723 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3f28e22 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2021

  1. Add new setting to tests as well.

    In retrospect it's really weird that it compiled, ran _and_ passed the tests without that setting here locally.
    
    CURA-7979
    rburema committed Feb 7, 2021
    Configuration menu
    Copy the full SHA
    d13d08b View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2021

  1. Simplify inner contour of infill

    when connect infill lines was selected, small travel moves were observed
     in the infill perimeter contour. This happened because stitching the
    generated toolpaths - needed for obtaining the inner contour -
    introduced small segments of lines. Simplifying this contour before the
    crossings and segments are stitched ensured that these tiny segments
    were "merged" in a proper way, not leaving any gaps in the connected
    contour line segments.
    
    Fixes CURA-7764_small_travel_moves
    jellespijker committed Feb 8, 2021
    Configuration menu
    Copy the full SHA
    4501553 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2021

  1. Fix extruders alternating each layer for inner and outer walls

    When multiple extruders are used for a print, the `optimize()` function of the InsetOrderOptimizer
    is called once for every extruder. This function would then add all the wall insets for all
    extruders in the final layer data. As a result, the outer and inner walls were printed multiple
    times, once for each extruder.
    
    Why is this happening?
    
    To optimize travelling (i.e. to make sure that the extruder that ends in the previous layer is the
    extruder that starts in the next layer), the list of extruders is iterated with a different
    direction on each consecutive iteration in multi-extruder prints (e.g. layer 0: 0->1->2->3,
    layer 1: 3->2->1->0, layer 2: 0->1->2->3 etc.). This was leading to the print looking like it
    alternates extruders in consecutive layer while in truth it was just instructed to print all the
    walls with all the layers.
    
    This commit fixes that by making sure that each wall type (outer or inner) is printed only once
    with the extruder indicated by the user (the outer wall should be printed with the wall_0_extruder
    _nr and the inner wall with the wall_x_extruder_nr).
    
    The commit also ensures that infill walls and skin walls will not take into account the setting
    "Outer Before Inner Walls" when the wall_0 and wall_x extruders are different (considering that the
    "Outer Before Inner Walls" setting is disabled in the front-end in that case).
    
    CURA-7927
    konskarm committed Feb 9, 2021
    Configuration menu
    Copy the full SHA
    ec87b0d View commit details
    Browse the repository at this point in the history
  2. Use minimum combing boundary rather than preferred combing boundary

    If there is a combing path possible, it will make a detour to reduce the amount of retractions and prevent crossing the walls. This is the most major determinant of what the actual travel time is going to be. Whether there is a combing path possible depends on the minimum combing boundary, not the preferred combing boundary, since if there is no preferred combing path possible it will fall back to the minimum combing boundary.
    This can cause the planner to slightly underestimate the distance to comb, but that'll be very minimal especially since the combing distance itself is much greater in comparison.
    
    Contributes to issue CURA-7891.
    Ghostkeeper committed Feb 9, 2021
    Configuration menu
    Copy the full SHA
    1c84fd1 View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2021

  1. Fix infill travel optimisation

    The infill travel optimisation was disabling itself when the combing boundary consisted of just 1 polygon. That > symbol should've been >=. But then it's more semantic to just test for whether it's empty.
    
    Stupidest bug ever.
    
    Fixes CURA-7891.
    Ghostkeeper committed Feb 10, 2021
    Configuration menu
    Copy the full SHA
    b96203c View commit details
    Browse the repository at this point in the history
  2. Rewrote outer wall lock factor usage.

    CURA-7979_fix_outer_wall_artifacts
    jellespijker committed Feb 10, 2021
    Configuration menu
    Copy the full SHA
    21c93de View commit details
    Browse the repository at this point in the history
  3. Calculate weights only once

    The weights were calculated twice, first to determine the total weight,
    then to determine the actual weight of the bead. These where a lot of
    unnecessary multiplications. Stored the weight in a vector, summed it up
    and called upon the weight later on.
    
    Contributes to CURA-7979
    jellespijker committed Feb 10, 2021
    Configuration menu
    Copy the full SHA
    5582c23 View commit details
    Browse the repository at this point in the history
  4. Document the major if-else cases

    Contributes to issue CURA-7927.
    Ghostkeeper committed Feb 10, 2021
    Configuration menu
    Copy the full SHA
    6536bf4 View commit details
    Browse the repository at this point in the history
  5. Merge branch 'CURA-7927_Fix_extruders_alternating_each_layer_for_inne…

    …r_and_outer_walls' into libArachne_rebased
    Ghostkeeper committed Feb 10, 2021
    Configuration menu
    Copy the full SHA
    bb03727 View commit details
    Browse the repository at this point in the history
  6. Inner beads should also be processed

    Contributes to CURA-7979
    jellespijker committed Feb 10, 2021
    Configuration menu
    Copy the full SHA
    2e0af51 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    c1b75ab View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2021

  1. Take into account filtered out beads

    Contributes to CURA-7979
    jellespijker committed Feb 12, 2021
    Configuration menu
    Copy the full SHA
    8c60b9a View commit details
    Browse the repository at this point in the history
  2. Removed indention

    Contributes to CURA-7979
    jellespijker committed Feb 12, 2021
    Configuration menu
    Copy the full SHA
    3bd13c9 View commit details
    Browse the repository at this point in the history
  3. Reimplemented old distribution calculation.

    For some reason I don't notice a big difference between the
     locking and "old" behaviour. Probably because of the usage
     of resetToolPath function.
    
    Contributes to CURA-7979
    jellespijker committed Feb 12, 2021
    Configuration menu
    Copy the full SHA
    667ef4a View commit details
    Browse the repository at this point in the history
  4. Force symmetry from and early start.

    Contributes to CURA-7979
    jellespijker committed Feb 12, 2021
    Configuration menu
    Copy the full SHA
    a12e989 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2021

  1. Made outer wall lock default behaviour.

    I have been thinking really hard how a beading strategy could be applied
    to two different wall regions (inner/outer) and still be true to the
    strategy and the difference in wall width specified, and this is
    basically the only way I see how.
    
    I think of having the "Lock Wall 0" feature always on (no check-box in
    the front-end) just normal behavior.
    
    Rational behind this:
    
    > If two different wall thicknesses are specified for outer and inner
    walls, the user wants that outer wall to have that dimension. Since the
    outer wall always consist of 1 wall there isn't anything to distribute.
    It either is the specified dimension or less if the thickness of the
    outline is less then (2 x the optimal outer wall width + 1 x minimal
    inner wall width).
    Now it is entirely possible that the inner wall has more then 1 walls
    (even when 1 inner wall is specified, for the cases of converging walls)
    In this case the strategies define the distributed width.
    
    This would result in a cleaner code (since  you basically don't have to
    re-distribute all walls according to ratio). Also After running multiple
    test prints with a constant outer wall I see a huge improvement in
    surface quality.
    
    Contributes to CURA-7979
    jellespijker committed Feb 15, 2021
    Configuration menu
    Copy the full SHA
    2d63dab View commit details
    Browse the repository at this point in the history
  2. Updated and added documentation

    Contributes to CURA-7979
    jellespijker committed Feb 15, 2021
    Configuration menu
    Copy the full SHA
    219a48c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5b7e466 View commit details
    Browse the repository at this point in the history
  4. Properly round Voronoi coordinates to IntPoint coordinates

    Instead of just casting them, actually round them. The Voronoi calculation has some minor inaccuracies in due to floating point rounding. If the coordinates are rounded down this can cause a vertex from the source polygon to change position, causing it to no longer be recognised as a vertex from the source polygon.
    
    Contributes to issue CURA-7970.
    Ghostkeeper committed Feb 15, 2021
    Configuration menu
    Copy the full SHA
    366dac1 View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2021

  1. Fix assert failure when transitioning from 2 to 4 beads

    Properly remove the medial axis bead during bead transitions.
    
    CURA-7936
    konskarm authored and jellespijker committed Feb 16, 2021
    Configuration menu
    Copy the full SHA
    bf72369 View commit details
    Browse the repository at this point in the history
  2. Fix rounding for negative numbers

    Forgot about that. Thanks, unit test.
    
    Contributes to issue CURA-7970.
    Ghostkeeper committed Feb 16, 2021
    Configuration menu
    Copy the full SHA
    50269ac View commit details
    Browse the repository at this point in the history
  3. Merge remote-tracking branch 'origin/libArachne_rebased' into CURA-79…

    …79_fix_outer_wall_artifacts
    jellespijker committed Feb 16, 2021
    Configuration menu
    Copy the full SHA
    82eb2b5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4404c7e View commit details
    Browse the repository at this point in the history
  5. Merge branch 'CURA-7979_fix_outer_wall_artifacts' of https://github.c…

    …om/Ultimaker/CuraEngine into CURA-7979_fix_outer_wall_artifacts
    rburema committed Feb 16, 2021
    Configuration menu
    Copy the full SHA
    88e793e View commit details
    Browse the repository at this point in the history
  6. Merge pull request #1405 from Ultimaker/CURA-7979_fix_outer_wall_arti…

    …facts
    
    [CURA-7979] Lock outer wall in place and width as much as possible
    rburema authored Feb 16, 2021
    Configuration menu
    Copy the full SHA
    fb8d399 View commit details
    Browse the repository at this point in the history
  7. Remove deviations less than 5 micrometres regardless of length

    This used to happen in 4.6 and before. When the algorithm was rewritten this was tightened up. However the Voronoi graph doesn't deal well with long segments with very minor deviation since the Voronoi's coordinates get extremely far out then, which causes floating point rounding errors in the Voronoi's coordinates close to the model. This is causing crashes because the Skeletal Trapezoidation is then unable to find the coordinates that belong to the outline.
    
    Contributes to issue CURA-7970.
    Ghostkeeper committed Feb 16, 2021
    Configuration menu
    Copy the full SHA
    ac6978a View commit details
    Browse the repository at this point in the history
  8. Merge pull request #1414 from Ultimaker/CURA-7970_voronoi_graph_integ…

    …er_rounding
    
    Properly round Voronoi coordinates to IntPoint coordinates
    jellespijker authored Feb 16, 2021
    Configuration menu
    Copy the full SHA
    b1f663e View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2021

  1. Remove scaling to fix self intersections

    This was causing the wall placement to become in precise. Rounding errors caused by scaling
    down and then up again made the object slightly larger than it was before.
    
    I've tested this with the models that should have been fixed with the original change and
    they still seem to be fixed, as well as fixing the newly introduced issue
    
    CURA-7853
    nallath committed Feb 17, 2021
    Configuration menu
    Copy the full SHA
    046e4c1 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2021

  1. Merge pull request #1415 from Ultimaker/CURA-7853_Imprecise_wall_posi…

    …tioning
    
    Remove scaling to fix self intersections
    jellespijker authored Feb 18, 2021
    Configuration menu
    Copy the full SHA
    3b15627 View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2021

  1. Remove superfluous 'd' literals not supported by Clang

    Seems to be nonstandard, maybe?
    Ghostkeeper committed Feb 22, 2021
    Configuration menu
    Copy the full SHA
    b610c6d View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2021

  1. Detect corner on coarsly simplified poly instead.

    As Arachne ahas a tendency to 'smear' all corners out over a number of vertices, first make a copy on which we detect the corners, then find closest point, instead of directly finding corners. This approach (like some others tried) works for smart hiding, but not the normal hide option (completely). Also there are some magic values to be fixed. Committing this to see if this can be combined with the initial approach that was stashed somewhere to get better results.
    
    CURA-7902
    rburema committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    be54466 View commit details
    Browse the repository at this point in the history
  2. Make seam preferences independant of poly winding.

    Other than what was suspected in the explanation of previous commit, the part that still made it not work was that previously (before Arachne) it could be assumed that polygons where always clockwise iff they are outer polygons. While technically still true that the winding for clipper-lib polygons works that way, polygons implicitly defined by closed paths _do not_have this property and can be either clockwise or anticlockwise. This commit makes the algorithm take that into account.
    
    CURA-7902
    rburema committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    4fcc038 View commit details
    Browse the repository at this point in the history
  3. De-magic simplification ammount for seam detection.

    Use sensible numbers that are based on something instead of magic numbers.
    
    CURA-7902
    rburema committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    f6c3194 View commit details
    Browse the repository at this point in the history
  4. Apply suggestions from code review

    They are so minor that i'm not going to bother the other devs with this. It's just spacing and a typo in a comment.
    nallath authored Feb 23, 2021
    Configuration menu
    Copy the full SHA
    d1c75e8 View commit details
    Browse the repository at this point in the history
  5. Remove stray debug printing

    nallath committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    3a99761 View commit details
    Browse the repository at this point in the history
  6. Do not wipe for continuously linked paths

    The problem is currently that the walls are fed as small segments and
    the PathOrderOptimizer ensures they are processed in a correct order and
    it really doesn't matter that all segments are small and broken up.
    Now all is well, you would think, But then the outer wipe distance comes
    in to play. Add the end of a small wall segment it thinks: He, I need to
    wipe. I will traverse all long the path a do a travel afterwards. This
    occurs after each small wall segment. So when a wall is split in two
    walls it does the outer wall wipe thingy.
    
    By storing the end point of the last path and checking if this is
    aligned with the start point of the new point I will know it this path
    is part of a continuously linked path consisting of smaller segments.
    If that is the case the outer wall wipe isn't performed.
    
    Contrinutes to CURA-7949_outer_wall_wipe_distance
    jellespijker committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    a4d8e6c View commit details
    Browse the repository at this point in the history
  7. Don't replace toolpaths wholesale when infill wall is added.

    Due to an oversight, each time an infill wall was needed, the input toolpaths would be reassigned. Because this was an input variable, anything already in there was overwritten. In the context of the current bug (only walls around the dense part of gradual support infill) this solves the part of why not _every_density had walls around it, since the same amount of walls was supposed to be generated for each density blob. This however leaves the second part, that it should only print for the least density (ie only around the support as a whole).
    
    CURA-7934
    rburema committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    0af4fe6 View commit details
    Browse the repository at this point in the history
  8. Wall only around the least dense area of gradual support.

    Make it so that if there are dense areas in support (with gradual support infill) walls are only printed around the support as a whole. Take care that denser areas take holes into account as well. For this reason a offset is substracted from the infill overlap for any areas denser than the least dense one.
    
    CURA-7934
    rburema committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    c69eef0 View commit details
    Browse the repository at this point in the history
  9. Flip the linked path switch

    Contrinutes to CURA-7949_outer_wall_wipe_distance
    jellespijker committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    5b3aa3b View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a4d02a1 View commit details
    Browse the repository at this point in the history
  11. Refactor AddWall(s) so it works with settings instead of mesh.

    All the mesh was used for was retrieving settings, and for support generation (where it's needed to fix the current 'feature gap') there is a settings object, but not a mesh.
    
    CURA-7946
    rburema committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    1f86c4e View commit details
    Browse the repository at this point in the history
  12. Don't ignore paths for support interface.

    Paths (as opposed to polygons and lines) where just not implemented yet as a valid output of support interfaces (both roof and bottom). After the little refactor in the last commit, it was easy to slot it in there.
    
    CURA-7946
    rburema committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    c96e349 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2021

  1. Merge pull request #1420

    [CURA-7946] fix concentric support interface
    jellespijker authored Feb 24, 2021
    Configuration menu
    Copy the full SHA
    10b6b19 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'origin/libArachne_rebased' into CURA-79…

    …49_outer_wall_wipe_distance
    
    # Conflicts:
    #	src/LayerPlan.cpp
    #	src/LayerPlan.h
    jellespijker committed Feb 24, 2021
    Configuration menu
    Copy the full SHA
    1be4d11 View commit details
    Browse the repository at this point in the history
  3. Enhanced readability

    Fixed bool traps.
    
    Contrinutes to CURA-7949_outer_wall_wipe_distance
    jellespijker committed Feb 24, 2021
    Configuration menu
    Copy the full SHA
    1193827 View commit details
    Browse the repository at this point in the history
  4. Also fix extra infill walls for gradual infill.

    Basically a small but crucial part of what formed the fix for CURA-7934 applied to another part of the code.
    rburema committed Feb 24, 2021
    Configuration menu
    Copy the full SHA
    e3b425a View commit details
    Browse the repository at this point in the history
  5. Merge branch 'libArachne_rebased' of github.com:Ultimaker/CuraEngine …

    …into libArachne_rebased
    nallath committed Feb 24, 2021
    Configuration menu
    Copy the full SHA
    45af1b7 View commit details
    Browse the repository at this point in the history

Commits on Feb 26, 2021

  1. Const correctness of SVG class

    Found during investigation of CURA-7948.
    Ghostkeeper authored and konskarm committed Feb 26, 2021
    Configuration menu
    Copy the full SHA
    8d2c0ff View commit details
    Browse the repository at this point in the history
  2. Add utility function to draw a grid on the SVG image

    Handy if you know some coordinates from other types of debugging and want to figure out where they are in the image.
    
    Contributes to issue CURA-7948.
    Ghostkeeper authored and konskarm committed Feb 26, 2021
    Configuration menu
    Copy the full SHA
    578044d View commit details
    Browse the repository at this point in the history
  3. Allow floating point sizes for writing points

    Contributes to issue CURA-7948.
    Ghostkeeper authored and konskarm committed Feb 26, 2021
    Configuration menu
    Copy the full SHA
    900f042 View commit details
    Browse the repository at this point in the history
  4. Make writeArrow more accurate

    No longer give it an offset at all. Instead of using two lines, make a single polygon where the tip of the arrow is simply offset in a certain 45 degree direction. Also don't cast to integer first when calculating the normalised direction, but work purely with floats.
    
    Contributes to issue CURA-7948.
    Ghostkeeper authored and konskarm committed Feb 26, 2021
    Configuration menu
    Copy the full SHA
    b43c3bd View commit details
    Browse the repository at this point in the history
  5. Make arrow head size relative to line width

    This is common with SVG images, and guarantees it all stays readable as long as your line width is readable.
    Ghostkeeper authored and konskarm committed Feb 26, 2021
    Configuration menu
    Copy the full SHA
    113ab13 View commit details
    Browse the repository at this point in the history
  6. Apply also a closing operation when preparing the polygons for arachne

    The generation of the SkeletalTrapezoidation does not handle well very thin corners. While in most
    cases these corners were properly removed by the closing and opening operation, there were still
    some corners left in holes.
    
    These thin corners would lead to the generation of a graph that had edges without twins, which
    would then lead crashes and all sorts of problems when generating the beads for the polygons.
    
    This commit fixes that by applying an extra opening and closing operation which makes sure that
    very thin corners in holes are properly removed.
    
    Contributes to CURA-7651, CURA-7680, CURA-7948, and CURA-7952
    konskarm committed Feb 26, 2021
    Configuration menu
    Copy the full SHA
    5e0d41f View commit details
    Browse the repository at this point in the history
  7. Remove all colinear edges with removeColinearEdges()

    Previously, `removeColinearEdges()` would only remove points that had an angle of ~180degrees.
    
                angle=~180
      o------------o-----------------o
    prev           pr              next
    
    This commit fixes that by making sure that the function above also removes colinear edges with an
    angle of ~0deg or ~360deg.
    
    By removing these cases too, the `SkeletalTrapezoidation` will not fall into the issue of
    generating an edge without a twin.
    
    CURA-7952
    konskarm committed Feb 26, 2021
    Configuration menu
    Copy the full SHA
    21eb77e View commit details
    Browse the repository at this point in the history
  8. Increase the maximum deviation angle when removing colinear segments

    The previous value (0.0005) was way to small, which would still allow for almost-colinear segments
    to be included.
    
    CURA-7952
    konskarm committed Feb 26, 2021
    Configuration menu
    Copy the full SHA
    e9ea981 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2021

  1. Moved the generation of the wall toolpaths to a dedicated function

    This function can be called stand-alone, allowing the generating of
    walls and inner_contours to take place when the gradual infill densities
    are created.
    
    CURA-7756 Wrong infill layer thickness and missing infill walls
    jellespijker committed Mar 1, 2021
    Configuration menu
    Copy the full SHA
    8901217 View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2021

  1. Fix crashing due to intersections when removing collinear edges

    When removing collinear edges, self-intersections may be introduced. These self-intersections
    cannot be handled properly by the Voronoi diagram generation, thus introducing edges without
    twins, which lead to crashes in the SkeletalTrapezoidation.
    
    This commit fixes that by re-applying the `fixSelfIntersections()` function after removing
    collinear edges.
    
    Fixes CURA-8056 and remaining crash in CURA-7948
    konskarm committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    200813b View commit details
    Browse the repository at this point in the history
  2. generateWalltoolpaths is now static

    This allows it to be called without the creation of an Class instance
    
    CURA-7756 Wrong infill layer thickness and missing infill walls
    jellespijker committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    a625e1e View commit details
    Browse the repository at this point in the history
  3. Walls for infill are now generated when gradual infill areas are created

    The wall toolpaths are now generated earlier in the process such that
    the inner contours of the wall toolpaths can be combined without issues
    for multiple layers.
    
    CURA-7756 Wrong infill layer thickness and missing infill walls
    jellespijker committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    93da023 View commit details
    Browse the repository at this point in the history
  4. Overlap of lines is handled when wall toolpaths are generated.

    And a bit of refactoring
    
    CURA-7756 Wrong infill layer thickness and missing infill walls
    jellespijker committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    1849485 View commit details
    Browse the repository at this point in the history
  5. Merge remote-tracking branch 'origin/libArachne_rebased' into CURA-77…

    …56_infill_layer_thickness
    jellespijker committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    6b1d237 View commit details
    Browse the repository at this point in the history
  6. Only create a data structure for transition ends once per edge

    Previously we were generating a new data structure every time an endpoint needed to be generated for the edge. This effectively erased all the previous endpoints (and also was a bit unnecessary in its memory usage, producing linked lists of length 1). As a result, transition ends were missing and sharp corners weren't properly transitioning oftentimes.
    
    Fixes issue CURA-7854.
    Ghostkeeper committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    53939c8 View commit details
    Browse the repository at this point in the history
  7. Use int for bead counts instead of coord_t

    Found during investigation of CURA-7854.
    Ghostkeeper committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    818a8e4 View commit details
    Browse the repository at this point in the history
  8. Allow pre defined paths to be fine-tuned by the Infill::generate

    `generate()`` uses the earlier wall toolpaths for gap filling. This
    should be processed the same way as in processSingleLayerInfill
    
    CURA-7756 Wrong infill layer thickness and missing infill walls
    jellespijker committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    990aa41 View commit details
    Browse the repository at this point in the history
  9. Don't remove any inner walls if there are no inner walls

    The range upon which the remove_if function is called would be empty if there are 2 beads. If there is 1 bead or 0 beads, the range would become negative: The start iterator would be beyond the end iterator. This is undefined behaviour. Perhaps this is what is crashing the build made with Clang.
    
    Contributes to issue CURA-8059.
    Ghostkeeper committed Mar 2, 2021
    Configuration menu
    Copy the full SHA
    d20acf3 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2021

  1. Fix combine layers (vertically) for support.

    Layers for support wouldn't combine vertically where this was needed, like for PVA printing. This relies on the work done in jira ticket CURA-7756 where almost, but not quite, the same thing happens for infill. In fact, it relies on that PR for how the infill generation class now has promoted the wall generating part to a publicly callable function, as one of the problems of both this ticket and its precursor was that (extra) walls _shouldn't_ combine. (And the 'normal' lines of course _should_ that's the whole point.)
    
    CURA-8060 -- see also: CURA-7756
    rburema committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    5cc163b View commit details
    Browse the repository at this point in the history
  2. Apply review comments.

    - Make infill aware of existing toolpaths.
    - Use those toolpaths to print the walls instead of only the separately generated walls.
    - Double check the offset (it should definitely not be _more_ at least, so the - part can stay).
    - Lift parameter to constexpr for better readability.
    
    CURA-8060
    rburema committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    8c09735 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1428 from Ultimaker/CURA-7854_fix_missing_transit…

    …ion_endpoints
    
    Fix missing transition endpoints in Arachne
    konskarm authored Mar 3, 2021
    Configuration menu
    Copy the full SHA
    bdbb4de View commit details
    Browse the repository at this point in the history
  4. Merge remote-tracking branch 'origin/libArachne_rebased' into CURA-80…

    …60_support_infill_layer_thickness
    jellespijker committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    d6efb3c View commit details
    Browse the repository at this point in the history
  5. Merge pull request #1430 from Ultimaker/CURA-8059_no_redistributing_l…

    …t2_walls
    
    Don't remove any inner walls if there are no inner walls
    rburema authored Mar 3, 2021
    Configuration menu
    Copy the full SHA
    836ae7d View commit details
    Browse the repository at this point in the history
  6. Infill walls were generated double

    Only write the wall toolpaths in the processSingleLayerInfill
    
    CURA-7756 Wrong infill layer thickness and missing infill walls
    jellespijker committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    c0a91f4 View commit details
    Browse the repository at this point in the history
  7. Naming consistency

    Renamed generateWalltoolpaths -> generateWallToolPaths
    
    CURA-7756 Wrong infill layer thickness and missing infill walls
    jellespijker committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    aaf5fa3 View commit details
    Browse the repository at this point in the history
  8. Merge remote-tracking branch 'origin/libArachne_rebased' into CURA-77…

    …56_infill_layer_thickness
    jellespijker committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    fa43e84 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    396f338 View commit details
    Browse the repository at this point in the history
  10. Naming consistency

    Renamed generateWalltoolpaths -> generateWallToolPaths
    
    CURA-7756 Wrong infill layer thickness and missing infill walls
    jellespijker committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    fa22ff9 View commit details
    Browse the repository at this point in the history
  11. Merge pull request #1426 from Ultimaker/CURA-7756_infill_layer_thickness

    Cura 7756 infill layer thickness
    konskarm authored Mar 3, 2021
    Configuration menu
    Copy the full SHA
    35254f4 View commit details
    Browse the repository at this point in the history
  12. Merge pull request #1429 from Ultimaker/CURA-8060_support_infill_laye…

    …r_thickness
    
    [CURA-8060] Fix combine layers (vertically) for support as well.
    jellespijker authored Mar 3, 2021
    Configuration menu
    Copy the full SHA
    edc3b2b View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2021

  1. Use size_t for junction_idx

    It's not a coordinate at all. If negative numbers are desired here, an integer would do. But they are not. We don't want to keep checking that this is negative. Just make the variable type an index, like it is.
    
    Found during investigation of CURA-8073.
    Ghostkeeper committed Apr 6, 2021
    Configuration menu
    Copy the full SHA
    515b5fb View commit details
    Browse the repository at this point in the history
  2. Fix unnecessary warning about edges already being connected

    The check was wrong, in this case. It should be the same as the assertion above it.
    
    Found during investigation of issue CURA-8073.
    Ghostkeeper committed Apr 6, 2021
    Configuration menu
    Copy the full SHA
    b951fd7 View commit details
    Browse the repository at this point in the history
  3. Print variable-width line segments with the average of their width

    Instead of with the width at the far end of the line segment, print it with the average. Previously, the width of a line would depend on the direction in which you were printing it. Quite often, as a path went into a narrow peak and back out, one side of this peak would be printed with a small line width (the peak being narrow) and as the nozzle goes back out, that segment would be printed with a large line width (the base being wider). This is inconsistent and leads to larger flow changes than necessary. Often this would also vary from layer to layer (a different bug) which would look extra messy.
    
    Fixes issue CURA-8073.
    Ghostkeeper committed Apr 6, 2021
    Configuration menu
    Copy the full SHA
    8224525 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2021

  1. Configuration menu
    Copy the full SHA
    f164d34 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    27b5b2a View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1437 from Ultimaker/CURA-8073_asymmetrical_bead_w…

    …idth
    
    Fix asymmetrical bead widths
    rburema authored Apr 16, 2021
    Configuration menu
    Copy the full SHA
    a46b164 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2021

  1. Merge branch 'master' into libArachne_rebased

    Conflicts:
    	src/FffGcodeWriter.cpp -> Added extra condition in skin angles if-statement in master, while a variable name changed for libArachne.
    	src/pathOrderOptimizer.cpp -> Changes applied here needed to be ported to new PathOrderOptimizer class.
    Ghostkeeper committed Jun 16, 2021
    2 Configuration menu
    Copy the full SHA
    7161020 View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2021

  1. Turn outer_inset_first into an enum setting

    It now provides three options: Outside in, inside out or center last. For now, Center Last behaves the same as Inside Out (not printing the center lines last yet).
    
    This also fixes a bug where the Order Inner Walls By Inset setting was always enabled if the outer wall was printed first.
    
    Contributes to issue CURA-8109.
    Ghostkeeper committed Jun 17, 2021
    Configuration menu
    Copy the full SHA
    d5c32fd View commit details
    Browse the repository at this point in the history
  2. Don't use references for const bools

    The dereferencing takes more time than just sending the plain data to the next stack frame.
    
    Contributes to issue CURA-8109.
    Ghostkeeper committed Jun 17, 2021
    Configuration menu
    Copy the full SHA
    1e925f5 View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2021

  1. Remove superfluous double boolean parameter

    They are always the same value now, so why have that value twice.
    
    Contributes to issue CURA-8109.
    Ghostkeeper committed Jun 18, 2021
    Configuration menu
    Copy the full SHA
    87b4c1b View commit details
    Browse the repository at this point in the history
  2. Implement printing centre wall last

    This is an option in the inset direction drop-down.
    The idea behind this is that centre walls are more prone to overextrusion (?) so if they are printed first they would cause that overextrusion to propagate all the way to the outside, causing visible surface defects.
    
    Contributes to issue CURA-8109.
    Ghostkeeper committed Jun 18, 2021
    Configuration menu
    Copy the full SHA
    5c4939d View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2021

  1. Don't simplify line segments of 2 vertices before finding seam

    Line segments of 2 vertices can happen in Arachne, because it allows for walls which are just line segments. When interpreted as a polygon, those would be degenerate. However they are not degenerate, and in fact common, when printing with odd numbers of walls.
    
    Fixes issue CURA-8333.
    Ghostkeeper committed Jun 21, 2021
    Configuration menu
    Copy the full SHA
    1828861 View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2021

  1. Configuration menu
    Copy the full SHA
    7104e00 View commit details
    Browse the repository at this point in the history
  2. Small cosmetic fix.

    When using multi-line in C++, put parenthesis on newline. Python is an exception to our code-style, not the other way around ;-)
    
    done as part of CURA-8109
    rburema committed Jun 22, 2021
    Configuration menu
    Copy the full SHA
    d4190a1 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1457 from Ultimaker/CURA-8109_option_centre_walls…

    …_last
    
    Add option to print centre wall last
    rburema authored Jun 22, 2021
    Configuration menu
    Copy the full SHA
    576a423 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2021

  1. Don't print center lines as outer-wall.

    When center last was selected for wall order, the middle line would be printed as outer wall.
    
    Last fix for CURA-8109 possibly.
    rburema committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    1da49e0 View commit details
    Browse the repository at this point in the history
  2. Don't let simplify reduce the polygon to 0 vertices either

    This could happen if the input has only very small polygons.
    
    Found during work on CURA-8109.
    Ghostkeeper committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    4a65e4f View commit details
    Browse the repository at this point in the history
  3. Put centre-outer-walls in a separate bin from centre-inner-walls

    Some of these bins are marked as 'containing lines of the outer wall'. But the bin for the centre wall contained both inner and outer walls. The bin was then marked as containing lines for the outer wall, and so all of the centre walls were marked as outer walls.
    This is solved by having two bins for the centre walls, one for centre-inner-walls and one for centre-outer-walls. Of course, that also means that the bins then get printed in that order too, so this will also enforce that the centre-inner-walls are printed before the centre-outer-walls instead of optimising that for travel distance. I see that as an unfortunate but unimportant side-effect.
    
    Contributes to issue CURA-8109.
    Ghostkeeper committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    89a9cdc View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2021

  1. Simplify: Fix different output for 'begin' and 'end' of polygon.

    Enforce the property that closed polygon loops should have the exact same point as begin and end. Since the beginning isn't moved at all, but the end can, this could lead to a situation where the begin and end points of the polygon are different. This then 'creates' and 'extra' point where there was none, which is very probably still incredibly close to the other point, as none of the simplification constraints where checked, since we assume those two points to be exactly the same (which is in fact how we check if it is indeed a polygon in a few places.
    
    CURA-8275 -- fix for #1449 -- if also a problem for the main branch should be backported probably
    rburema committed Jun 30, 2021
    Configuration menu
    Copy the full SHA
    f8f97b9 View commit details
    Browse the repository at this point in the history
  2. Actually change the width instead of a copy.

    Also optimize a bit. This should probably be added to unit-tests as well.
    rburema committed Jun 30, 2021
    Configuration menu
    Copy the full SHA
    13101c2 View commit details
    Browse the repository at this point in the history
  3. Fix signedness of Line Compactness setting when used with Center Devi…

    …ation
    
    The setting claims:
    - If the setting is increased, it should produce fewer lines.
    - If the setting is reduced, it should produce more (thinner) lines.
    
    The previous code bounded overfill and underfill differently (with a weird hard-coded 5% difference too). There should not be any difference according to the Line Compactness setting. There is just a single threshold below which it should use one line instead of two, and below which it should use two lines instead of three.
    
    This single threshold is best imagined as a minimum line width. So that's what I've written in the code now. I hope it is easier to understand. It is definitely more correct according to the setting. And this threshold fixes the direction of the setting too, where it used to work in reverse for Center Deviation. This is because underfill and overfill was confused. Since it is just a single threshold now, it is easier to get all the + and the - symbols correct.
    
    Contributes to issue CURA-8285.
    Ghostkeeper committed Jun 30, 2021
    Configuration menu
    Copy the full SHA
    e7e621d View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2021

  1. Configuration menu
    Copy the full SHA
    bbfa80e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ea8261f View commit details
    Browse the repository at this point in the history
  3. Add test for getting the width at which to transition

    Contributes to issue CURA-8285.
    Ghostkeeper committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    bb21f6a View commit details
    Browse the repository at this point in the history
  4. Add test for getting the optimal bead count for a given width

    Quite a simple formula, but complex to test the actually expected behaviour.
    
    Contributes to issue CURA-8285.
    Ghostkeeper committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    a33f7be View commit details
    Browse the repository at this point in the history
  5. Add test for the monotonic direction of number of lines when compactn…

    …ess is adjusted
    
    When the line compactness is lower, we should never get a lower line count (i.e. less compacted) than when the line compactness is greater. At any width.
    
    Contributes to issue CURA-8285.
    Ghostkeeper committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    8ef2968 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2021

  1. Merge pull request #1462 from Ultimaker/CURA-8285_center_deviation_li…

    …ne_compactness
    
    Fix the direction of Line Compactness when using Center Deviation
    rburema authored Jul 6, 2021
    Configuration menu
    Copy the full SHA
    9e9c1b0 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2021

  1. Configuration menu
    Copy the full SHA
    b02d57e View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2021

  1. Wall min flow doesn't make sense for Arachne.

    Any walls we get from Arachne should be printed, as such thin wall considerations are already taken into account when that is run.
    
    CURA-8442
    rburema committed Jul 29, 2021
    Configuration menu
    Copy the full SHA
    50b7eaa View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2021

  1. Merge pull request #1475 from Ultimaker/CURA-8442_remove_wall_min_flow

    [CURA-8442] Wall min flow doesn't make sense for Arachne.
    jellespijker authored Aug 4, 2021
    Configuration menu
    Copy the full SHA
    d45e563 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2021

  1. Work in progress on back-pressure compensation.

    The formula used right now is likely wildly wrong (because we can't use the formula in the paper 1:1 for one), but can be used to build unit-tests on in parallel. Back-pressure compensation is a way to compensate for the pressure the filament recieves when smooshed up against the previous layer.
    
    CURA-7279
    rburema committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    da5d89c View commit details
    Browse the repository at this point in the history
  2. Correct(?) formula to compensate back-pressure.

    Plus a description of why this would be correct, given the formula in the paper. However, even if so, that still leaves the question as to wether the interpretation now in the code of 'nominal flow for path (config)', 'nominal line width for path (config)' and 'current/actual (unadjusted) line width of path' are the correct values to plug into that formula.
    
    CURA-7279
    rburema committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    4b049cb View commit details
    Browse the repository at this point in the history
  3. Reformat the beading strategy switch

    This makes it easier to read what is going on.
    
    CURA-8458
    nallath committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    f3c777b View commit details
    Browse the repository at this point in the history
  4. Add (more) documentation.

    Also sneak in an early-out when the back pressure compensation would do nothing (when it's set to 0).
    
    CURA-7279
    rburema committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    b7502ab View commit details
    Browse the repository at this point in the history
  5. Merge InwardDistributedBeadingStrategy into distributedBeadingStrategy

    The only difference is that inwardDistributedBeading has an extra setting
    that allows you to set the number of beads on which the variation is used.
    
    CURA-8458
    nallath committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    5c0b380 View commit details
    Browse the repository at this point in the history
  6. Remove mainArachne

    This file hasn't been used for a long time now and it doesn't even work anymore.
    
    Since we have no clear goal for this, it's best to clean things up.
    nallath committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    d688c34 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    482b990 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    4fedc1e View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    0399194 View commit details
    Browse the repository at this point in the history
  10. Make default_transition_length, optimal_width & transitioning_angle p…

    …rotected
    
    They should have been protected from the start anyway
    
    CURA-8458
    nallath committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    3f6ff2d View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    055e23a View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    64afa71 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    a356d3e View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    97f3fde View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    a525a52 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    55ec7f7 View commit details
    Browse the repository at this point in the history
  17. Don't back-pressure compensate travel or bridge paths.

    Travel paths where probably already flow and/or width zero, but bridging paths wheren't excluded yet, and the entire point of those is that they're largely unsupported by a previous layer, so there would be little to no back-pressure.
    
    CURA-7279
    rburema committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    05bff50 View commit details
    Browse the repository at this point in the history
  18. Show back-pressure speed adjustments in speed 'color-scheme' preview.

    Also very small refactors, like constness and removing space from comments.
    
    CURA-7279
    rburema committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    cff6efb View commit details
    Browse the repository at this point in the history
  19. Remove outdated TODO.

    rburema committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    ca4a267 View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2021

  1. Use floating point math instead of integer.

    The previous situation suffered from _rather large_ rounding errors as a result of the division a few lines down ('line_width_for_path / nominal_width_for_path') _both_ being integers, which results of course in integer division.
    
    CURA-7279
    rburema committed Aug 8, 2021
    Configuration menu
    Copy the full SHA
    23cb868 View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2021

  1. Change tabs to spaces

    konskarm committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    d29a25b View commit details
    Browse the repository at this point in the history
  2. Add testing set-up for extruder plans

    With a single test to start with.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    52e7912 View commit details
    Browse the repository at this point in the history
  3. Add lines paths to test with

    A bit of a different one since it's got:
    * Multiple paths in the vector.
    * Travel moves in between.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    88114d5 View commit details
    Browse the repository at this point in the history
  4. Change ZeroIsUncompensated test into parameterized test

    A bit of complex hand-wavey boilerplate stuff needs to be done for this. But in the end, it'll be more clear to the person running the tests if something fails.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    14bbd8d View commit details
    Browse the repository at this point in the history
  5. Add more test paths to test with

    With varying flow rates and speeds.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    6fd745e View commit details
    Browse the repository at this point in the history
  6. Also test if the speed factor got changed

    After all, this is how the compensation will actually take effect.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    311952a View commit details
    Browse the repository at this point in the history
  7. Add test path with variable width

    Including a width of 0.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    a721d85 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    28414bb View commit details
    Browse the repository at this point in the history
  9. Use a static path collection instance

    That way, the pointers to the line configs remain valid...
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    e40d498 View commit details
    Browse the repository at this point in the history
  10. Include new speed factor for back-pressure compensation

    I don't know why this was made into a different factor. I'll challenge that. But here we go.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    70c63b0 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    6af7ef9 View commit details
    Browse the repository at this point in the history
  12. Extract calculation of path flow rate to a helper function

    Hopefully we won't need the separate factor for the back-pressure compensation speed compensation in the future any more. If we remove it, it'll be a bit easier if this calculation is not duplicated all over the tests.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    eeaa096 View commit details
    Browse the repository at this point in the history
  13. Add test for back-pressure compensation on empty extruder plans

    An edge case that mostly just shouldn't crash.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    2ad5430 View commit details
    Browse the repository at this point in the history
  14. Use isTravelPath on the GCodePathConfig instead of checking multiple …

    …types
    
    This should break less often if we add new types of paths.
    
    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    09f32fc View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2021

  1. Fix test

    nallath committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    769aa23 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'CURA-8458_Expose_distribution_radius' of github.com:Ult…

    …imaker/CuraEngine into CURA-8458_Expose_distribution_radius
    nallath committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    0d1b586 View commit details
    Browse the repository at this point in the history
  3. Remove unused variable

    nallath committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    0cef043 View commit details
    Browse the repository at this point in the history
  4. Rename inward_distributed_center_size to inward_distributed_center_wa…

    …ll_count
    
    As per review suggestion
    
    CURA-8458
    nallath committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    f79b06d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    50bd89a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    431ccde View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a989abb View commit details
    Browse the repository at this point in the history
  8. Allow an error margin in floating point arithmetic

    Contributes to issue CURA-7279.
    Ghostkeeper committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    d0e58c6 View commit details
    Browse the repository at this point in the history
  9. Use the formula from the ticket instead of from the paper.

    Decided user-specified speed alterations other than those of the back-pressure compensation itself will not be taken into account. Update tests to reflect that, as well as other fixes, mostly in the tests (std::accumulate needs a float base value for floar-math).
    
    CURA-7279
    rburema committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    a59d33c View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2021

  1. Merge pull request #1477 from Ultimaker/CURA-8458_Expose_distribution…

    …_radius
    
    Expose distribution radius
    rburema authored Aug 11, 2021
    Configuration menu
    Copy the full SHA
    b6a35d2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ec35e59 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d17b3d3 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #1478 from Ultimaker/CURA-7279_back_pressure_compe…

    …nsation
    
    [CURA-7279] Back-Pressure Compensation
    nallath authored Aug 11, 2021
    Configuration menu
    Copy the full SHA
    a3adfb8 View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2021

  1. Differentiate even vs. uneven nr. of walls for add/split middle wall …

    …transitions.
    
    Instead of a single threshold for when to increase the number of walls, have a seprate threshold for the minimum line width factor for introducing a new middle wall (in case of an even number of walls) and one for splitting the middle wall into two (in case of an uneven number of walls).
    
    CURA-8459
    rburema committed Aug 12, 2021
    Configuration menu
    Copy the full SHA
    c5405c3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    eb1271c View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1481 from Ultimaker/CURA-8459_middle_line_split_a…

    …nd_add_thresholds
    
    [CURA-8459] Differentiate even vs. uneven nr. of walls for add/split middle wall transitions.
    nallath authored Aug 12, 2021
    Configuration menu
    Copy the full SHA
    e9ebe29 View commit details
    Browse the repository at this point in the history
  4. Merge remote-tracking branch 'origin/master' into libArchane_rebased_…

    …merge
    
    # Conflicts:
    #	CMakeLists.txt
    #	src/FffGcodeWriter.cpp
    #	src/FffGcodeWriter.h
    #	src/FffPolygonGenerator.cpp
    #	src/LayerPlan.cpp
    #	src/infill.h
    #	src/pathOrderOptimizer.h
    #	src/settings/ZSeamConfig.cpp
    #	src/settings/ZSeamConfig.h
    #	src/skin.cpp
    #	src/skin.h
    #	src/sliceDataStorage.h
    #	src/utils/optional.h
    #	src/utils/polygon.h
    jellespijker committed Aug 12, 2021
    Configuration menu
    Copy the full SHA
    19f31cb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a29b0bb View commit details
    Browse the repository at this point in the history
  6. Merge branch 'fix_width_adjust_simplify' of github.com:Ultimaker/Cura…

    …Engine into libArachne_rebased
    nallath committed Aug 12, 2021
    Configuration menu
    Copy the full SHA
    4f305c7 View commit details
    Browse the repository at this point in the history
  7. Fixed merge conflict

    A couple of Arachne headers were still
    linking to our own optional type
    jellespijker committed Aug 12, 2021
    Configuration menu
    Copy the full SHA
    c9ea3b2 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    cb6754a View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    77d8059 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    38db9c3 View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2021

  1. Move implementation out of header

    Boyscouting!
    nallath committed Aug 13, 2021
    Configuration menu
    Copy the full SHA
    6c27a8b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c1cc0ab View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1482 from Ultimaker/CURA-7972_Bottom_Skin_Expand_…

    …Distance_at_zero
    
    Fix bottom skin expand distance at zero
    jellespijker authored Aug 13, 2021
    Configuration menu
    Copy the full SHA
    4cbf1eb View commit details
    Browse the repository at this point in the history
  4. Actually give the simplify the squared values

    Whoops... Well, at least that makes sense why the simplify wasn't
    doing what we expected it to do...
    
    CURA-8132
    nallath committed Aug 13, 2021
    Configuration menu
    Copy the full SHA
    5637cfd View commit details
    Browse the repository at this point in the history
  5. Fixed include level of polyclipping

    clipper.h is located in the clipper directory.
    jellespijker committed Aug 13, 2021
    Configuration menu
    Copy the full SHA
    40b46d4 View commit details
    Browse the repository at this point in the history
  6. Merge pull request #1483 from Ultimaker/CURA-8132_arcs_inner_walls_si…

    …mplify
    
    Actually give the simplify the squared values
    rburema authored Aug 13, 2021
    Configuration menu
    Copy the full SHA
    45654a5 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    16f7eb0 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2021

  1. Remove unused variable

    nallath committed Aug 14, 2021
    Configuration menu
    Copy the full SHA
    50a1557 View commit details
    Browse the repository at this point in the history
  2. Move implementations to cpp

    nallath committed Aug 14, 2021
    Configuration menu
    Copy the full SHA
    709315e View commit details
    Browse the repository at this point in the history
  3. Remove unused code

    nallath committed Aug 14, 2021
    Configuration menu
    Copy the full SHA
    9e8b4ba View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    92e44e3 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2021

  1. Remove comment

    Combing is like magic, but there is no need to point it out.
    
    CURA-8365
    konskarm committed Aug 16, 2021
    Configuration menu
    Copy the full SHA
    a1f6619 View commit details
    Browse the repository at this point in the history
  2. Added optional header

    jellespijker committed Aug 16, 2021
    Configuration menu
    Copy the full SHA
    b5d6a91 View commit details
    Browse the repository at this point in the history
  3. Change <clipper.hpp> includes to "clipper.hpp"

    Eclipse is very strict about the <> vs "". If the <> are used
    it only looks in system includes, not in local ones. Both are
    technically correct (since it does build), but this version is
    slighly more correct.
    nallath committed Aug 16, 2021
    Configuration menu
    Copy the full SHA
    0d44bcf View commit details
    Browse the repository at this point in the history
  4. Merge branch 'libArachne_rebased' of github.com:Ultimaker/CuraEngine …

    …into libArachne_rebased
    nallath committed Aug 16, 2021
    Configuration menu
    Copy the full SHA
    aa45954 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    dfcf12e View commit details
    Browse the repository at this point in the history
  6. Small codestyle changes

    nallath committed Aug 16, 2021
    Configuration menu
    Copy the full SHA
    96ff073 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    8695be6 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2021

  1. Redistritibution takes inner/outer width in account

    The getOptimalThickness function of the redistribution only
    calculated the thickness with the inner bead strategy.
    It now takes both the outer and inner beads in  to account
    jellespijker committed Aug 17, 2021
    Configuration menu
    Copy the full SHA
    58c247c View commit details
    Browse the repository at this point in the history
  2. Centerdeviation generates centerline

    The center deviation strategy now generates a center line again.
    When this strategy is used it will either deviate the width
    of both inner lines, in the case of an even number of beads, or
    deviate the inner line, when there is an uneven number.
    
    It now also handles the splitting and adding of the center line
    correctly.
    
    Fixes CURA-8069
    jellespijker committed Aug 17, 2021
    Configuration menu
    Copy the full SHA
    0d2ccbc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7a3bb32 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #1485 from Ultimaker/CURA-8117_avoid_objects_comb_…

    …doesnt_avoid
    
    Fix combing
    rburema authored Aug 17, 2021
    Configuration menu
    Copy the full SHA
    a0fc3a2 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2021

  1. Prevent accumulation of error?

    Actual prints don't seem to be affected by the blobs reported earlier in the preview of reloaded-from-disk gcode, and this only removes them in the case of absolute extrusion anyway even if true, but it couldn't hurt.
    
    CURA-8256
    rburema committed Aug 18, 2021
    Configuration menu
    Copy the full SHA
    55d0e58 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2021

  1. Configuration menu
    Copy the full SHA
    69733af View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1486 from Ultimaker/CURA-8069_centerline

    Cura 8069 centerline
    jellespijker authored Aug 19, 2021
    Configuration menu
    Copy the full SHA
    c503920 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2021

  1. Fix infinite loop when applying outer wall wipe on 0-circumference walls

    It could happen that we generate a wall with a valid number of vertices, but all vertices end up in the same location, creating a wall with a circumference of 0. This outer wall wipe algorithm would then go into an infinite loop.
    
    Fixes issue CURA-8507.
    Ghostkeeper committed Aug 20, 2021
    Configuration menu
    Copy the full SHA
    ec3c6e7 View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2021

  1. Configuration menu
    Copy the full SHA
    b3c4bab View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ab92788 View commit details
    Browse the repository at this point in the history
  3. fixes leaks of InfillLineSegment when zig_zaggify is disabled

    generateLinearBasedInfill was allocating InfillLineSegments destined to be
    consumed by connectLines. When zig_zaggify is disabled, they were never freed.
    
    This patch disable the generation of these InfillLineSegments when connectLines
    is not used.
    Furthermore, addLineInfill is no longer called when the lines are generated with
    connectLines.
    Piezoid committed Aug 25, 2021
    Configuration menu
    Copy the full SHA
    5603da0 View commit details
    Browse the repository at this point in the history
  4. infill.cpp: light refactoring/modernizing

     * crossings_on_line last level is emptied in connectLines rather than being
       fully freed,
     * addLineInfill: qsort replaced by std::sort (less code, slightly faster
       without function pointer inlining),
     * Factor subscripts in loops.
    Piezoid committed Aug 25, 2021
    Configuration menu
    Copy the full SHA
    26a7b3d View commit details
    Browse the repository at this point in the history
  5. Inset Order Optimizer: fix OOB error when region_id were removed

    variableWidthPathToBinJunctions allocates a number of bins according to the
    count of regions computed by getOuterRegionId. bin_id, computed from
    region_id, could be out of bound when some lower region_id has been removed.
    Piezoid committed Aug 25, 2021
    Configuration menu
    Copy the full SHA
    f79e45e View commit details
    Browse the repository at this point in the history
  6. InsetOrderOptimizer::getOuterRegionId: remove manual initialization o…

    …f AABBs
    
    std::map::operator[] default-initialize when key is not found. The explicit
    initialization for a new region_id is not needed.
    Piezoid committed Aug 25, 2021
    Configuration menu
    Copy the full SHA
    1badd14 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2021

  1. Add documentation as to why we're using std::map

    Contributes to issue CURA-8518.
    Ghostkeeper committed Aug 26, 2021
    Configuration menu
    Copy the full SHA
    6a7021c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c9a7f81 View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2021

  1. Don't use parent setting 'line_width' for the support walls

    We should not use the parent settings at all. This causes a crash when using command line mode. It's also just the wrong line width.
    
    Found during investigation of #1490.
    Ghostkeeper committed Aug 27, 2021
    Configuration menu
    Copy the full SHA
    a4d6525 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1488 from Piezoid/myfork/fix_bridge_top_surface

    Fix error when usign both bridge and top surfaces
    jellespijker authored Aug 27, 2021
    Configuration menu
    Copy the full SHA
    d7f2d30 View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2021

  1. Merge branch 'fix_memory_leaks' of https://github.com/Piezoid/CuraEngine

     into Piezoid-fix_memory_leaks
    rburema committed Sep 3, 2021
    Configuration menu
    Copy the full SHA
    c4ddd0d View commit details
    Browse the repository at this point in the history
  2. Minor refactors after code review.

    - removed a local variable that was shadowing ... itself (could have been const bool anyway but the point is moot now)
    - capture 1 non-primitive value (point) by reference instead of by copy
    
    CURA-8532
    rburema committed Sep 3, 2021
    Configuration menu
    Copy the full SHA
    68e7675 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    438b02a View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2021

  1. Fix integer overflow when giving maximum integer walls

    There are two places where it caused overflows:
    - The maximum bead count in a cross section is double the number of insets. If the number of insets is already the maximum integer, this can't be doubled. It ended up on a negative number of beads, causing chunks of code to be skipped.
    - A weighted average calculation would multiply the bead width with the maximum number of beads to calculate that average. With the maximum number of beads being a multiple of the maximum integer, this would also cause an overflow. This is fixed by checking first if the difference would really matter for the weighted average; if the maximum bead count is so enormous (in the billion-billions order of magnitude) then the difference in line width is spread over such a huge number of lines that rounding errors remove it completely. If it doesn't matter, just take the non-weighted average between them.
    
    Thanks to Piezoid for helping find this bug.
    
    Fixes CURA-8538.
    Ghostkeeper committed Sep 6, 2021
    Configuration menu
    Copy the full SHA
    549a7f5 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2021

  1. Configuration menu
    Copy the full SHA
    0272197 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2021

  1. Merge pull request #1498 from Ultimaker/CURA-7972_fix_high_values_of_…

    …skin_removal_artifacts
    
    Fix some artifacts for very high values of skin removal
    rburema authored Sep 9, 2021
    Configuration menu
    Copy the full SHA
    acd0843 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f14ce03 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2021

  1. Correctly use split & add parameters

    The fact that I had to divide it by should have been a give away that
    that is a the real solution. It was just not calculating the right amount
    of beads that were needed.
    
    CURA-8069
    nallath committed Sep 13, 2021
    Configuration menu
    Copy the full SHA
    38685e1 View commit details
    Browse the repository at this point in the history
  2. Spread diff_thickness over middle 2 lines only if there are 2 middle …

    …lines
    
    If there is an odd number of lines, the difference should not be spread over 2 lines. It should put it all in the centre line then.
    
    Contributes to issue CURA-8069.
    Ghostkeeper committed Sep 13, 2021
    Configuration menu
    Copy the full SHA
    fb1f2fa View commit details
    Browse the repository at this point in the history
  3. Revert back to reducing number of lines if width is too small

    If the available width is so small that the centre lines dip below the threshold, we don't want to add more lines. We want to reduce the number of lines.
    This was causing an infinite loop, where we kept being below the threshold because we added more lines in the even case, and reduced the number of lines again in the odd case because it's then still below the threshold width.
    
    Contributes to issue CURA-8069.
    Ghostkeeper committed Sep 13, 2021
    Configuration menu
    Copy the full SHA
    ca11c6a View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2021

  1. Merge pull request #1499 from Ultimaker/CURA-8069_overextruded_center…

    …line
    
    Fix centerline being twice as wide as needs to be for uneven beads
    jellespijker authored Sep 14, 2021
    Configuration menu
    Copy the full SHA
    258bfbc View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2021

  1. Add simplify-related unit-tests for ExtrusionLine.

    Mostlu copied, then adapted from the ones in polygon-test. Added 2 tests that take the line-width into account w.r.t. simplification.
    
    part of CURA-8354
    rburema committed Sep 15, 2021
    Configuration menu
    Copy the full SHA
    113c67f View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1501 from Ultimaker/fix_width_adjust_simplify

    [CURA-8354](redux) unit-tests for 'Fix width adjust simplify'
    nallath authored Sep 15, 2021
    Configuration menu
    Copy the full SHA
    781a7b0 View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2021

  1. Revert "Prevent combing from going over internal holes"

    This reverts commit 8695be6.
    That commit was making the wrong assumption that holes are not visible from the outside. They are. And there might be other shapes inside of the hole, such as nested rings. Internal holes can have any shape, and don't necessarily need to be convex. They can have protruding parts that need to be avoided. We need to treat inside walls just the same way as outside walls.
    
    Contributes to issue CURA-8117.
    Ghostkeeper committed Sep 21, 2021
    Configuration menu
    Copy the full SHA
    cdd3bc8 View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2021

  1. Merge branch 'master' into libArachne_rebased

    Conflicts:
    	src/skin.cpp -> Code changed in an area that was removed.
    	src/utils/polygon.h -> Include statements changed while we added one for Arachne nearby.
    Ghostkeeper committed Sep 22, 2021
    Configuration menu
    Copy the full SHA
    ca64bdb View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2021

  1. If combing inside fails, allow combing through minimum bound

    This is to fix the case, where:
    - We are travelling from one part to another.
    - The start (or end) part is not convex.
    - The start (or end) part is so thin that traversing it through the optimal combing boundary (far from the walls) is not possible, but traversing through the minimum combing boundary (slightly wider, but close to the outer wall) is possible.
    In this case, what happened is that it was trying to find the spot inside the starting part closest to the destination and would try to comb there. But because the part is so thin, it failed to find a comb path with the optimal combing boundary. Instead, it would just not add a combing path. It would then move outside on the starting point which is nearby a hole in the model. The hole is closed, so there is no travel path through air to the destination part, so that will just take a straight line to the destination part. This straight line intersects multiple times with the starting part, which could have been avoided.
    This solution causes the combing to try the minimum combing boundary if the optimal combing boundary fails. Previously this was only used for the case where we're travelling within the same part. Now it'll also be used to prepare travelling to different parts.
    The CPU time needed for this is only bigger if this case actually occurs. For normal, sufficiently thick parts there should be no increase in slicing time.
    
    Contributes to issue CURA-8117.
    Ghostkeeper committed Sep 23, 2021
    Configuration menu
    Copy the full SHA
    4de6fe0 View commit details
    Browse the repository at this point in the history
  2. Actually use optimum combing bounds for optimum attempt

    Rather than the minimum ones that were used to calculate the crossing with.
    
    Contributes to issue CURA-8117.
    Ghostkeeper committed Sep 23, 2021
    Configuration menu
    Copy the full SHA
    aec4380 View commit details
    Browse the repository at this point in the history
  3. Update succeeded flag if combing succeeds in the end

    Forgot to update this one in the case of the end part.
    
    Contributes to issue CURA-8117.
    Ghostkeeper committed Sep 23, 2021
    Configuration menu
    Copy the full SHA
    b66d8a1 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2021

  1. Merge pull request #1503 from Ultimaker/CURA-8117_combing_through_min…

    …imum_bound
    
    If combing inside fails, allow combing through minimum bound
    konskarm authored Sep 24, 2021
    Configuration menu
    Copy the full SHA
    dfbcaf9 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2021

  1. Configuration menu
    Copy the full SHA
    d208d6d View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2021

  1. Partially revert merge.

    Turns out that we could still use the majority of the spreadDotsAera that T. wrote for Lightening fill. My bad!
    
    Co-authored-by: BagelOrb <t.kuipers@ultimaker.com>
    rburema and BagelOrb committed Oct 20, 2021
    Configuration menu
    Copy the full SHA
    549447e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    409a30b View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2021

  1. Merge branch 'master' into libArachne_rebased

    Conflicts:
    	src/FffPolygonGenerator.cpp -> Maximum layer count fix
    	src/InsetOrderOptimizer.cpp -> Fix for seam position which is no longer located here.
    	src/pathPlanning/Comb.cpp -> Several combing fixes discarded because combing is pretty much revamped in Arachne.
    	src/skin.cpp -> Gap filling area fix, but gap filling is removed in Arachne.
    	src/utils/PolygonProximityLinker.cpp -> Wall overlap compensation, but removed in Arachne.
    	src/utils/algorithm.h -> Headers rearranged.
    	src/utils/math.h -> Addition of some helper functions changed headers.
    	src/utils/polygonUtils.h -> Code style
    Ghostkeeper committed Nov 12, 2021
    Configuration menu
    Copy the full SHA
    7b89270 View commit details
    Browse the repository at this point in the history
  2. back pressure compensation as Ratio

    As discussed during the eCCB 12/11/21 this factor makes more sense as
    a Ratio.
    jellespijker committed Nov 12, 2021
    Configuration menu
    Copy the full SHA
    dc95131 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e1ebc08 View commit details
    Browse the repository at this point in the history
  4. Change distribution count to be the maximum diameter of distribution

    Instead of the minimum. So previously a value of 2 would make it spread the error over 2 walls for an even number, or 3 for an odd. Now it makes it spread the error over 2 walls for an even number or 1 for an odd. This means that the minimum allowed value becomes 2, because for an even wall count it needs to place the error somewhere.
    
    Done as a 5 minute fix.
    Ghostkeeper committed Nov 12, 2021
    Configuration menu
    Copy the full SHA
    8266998 View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2021

  1. Don't fill the entire outline when processing each part.

    Ligning infill was first generated, then applied to the part. However, the enitre fill would be applied to each part. If a model consisted of more than one part, the lightning paths would be retraced for each part of the model in that layer. Now it limits the output to the outlines that are currently processed. It's relatively efficient, since it only has to check one node of each tree against the outlines of a single part.
    
    fixes Cura/#10793
    rburema committed Nov 16, 2021
    Configuration menu
    Copy the full SHA
    013889a View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2021

  1. Fix; Measure from local root location instead of prev. opt.

    Now the length is measured along the branches, which is also good.
    
    Co-authored-by: Ghostkeeper <Ghostkeeper@users.noreply.github.com>
    rburema and Ghostkeeper authored Nov 17, 2021
    Configuration menu
    Copy the full SHA
    8bec65d View commit details
    Browse the repository at this point in the history
  2. Update documentation.

    part of CURA-8702
    rburema committed Nov 17, 2021
    Configuration menu
    Copy the full SHA
    0a56101 View commit details
    Browse the repository at this point in the history
  3. Simpler way of finding tree-point insude part.

    Use functions that already exist instead of implementing new ones that mess up.
    
    part of CURA-8702
    rburema committed Nov 17, 2021
    Configuration menu
    Copy the full SHA
    23515d0 View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2021

  1. Revert "Prevent accumulation of error?"

    This reverts commit 55d0e58.
    
    That commit was done as an unsure 'well if it can't harm' kind of way in order to _maybe_ halfway fix a bug that wasn't possibly wasn't affecting our prints and now appears to have been fixed in other ways, as I can't even reproduce it anymore. However, the now reverted fix may have casued the issue in CURA-8713 -- retracts in gcode preventing the UM2+ from finishing prints.
    rburema committed Nov 23, 2021
    Configuration menu
    Copy the full SHA
    1fdc4ee View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2021

  1. Configuration menu
    Copy the full SHA
    c95bcd7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f379847 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5cd30a2 View commit details
    Browse the repository at this point in the history