Skip to content

Commit

Permalink
improve seam performance (#5436)
Browse files Browse the repository at this point in the history
  • Loading branch information
SoftFever authored May 23, 2024
1 parent 0a7f787 commit b665dfb
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/libslic3r/GCode/SeamPlacer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1073,7 +1073,7 @@ void SeamPlacer::calculate_overhangs_and_layer_embedding(const PrintObject *po)
if (prev_layer_distancer.get() != nullptr) {
const auto _dist = prev_layer_distancer->distance_from_lines<true>(point.cast<double>());
perimeter_point.overhang = _dist
+ 0.6f * perimeter_point.perimeter.flow_width
+ 0.65f * perimeter_point.perimeter.flow_width
- tan(SeamPlacer::overhang_angle_threshold)
* po->layers()[layer_idx]->height;
perimeter_point.overhang =
Expand All @@ -1083,7 +1083,7 @@ void SeamPlacer::calculate_overhangs_and_layer_embedding(const PrintObject *po)

if (should_compute_layer_embedding) { // search for embedded perimeter points (points hidden inside the print ,e.g. multimaterial join, best position for seam)
perimeter_point.embedded_distance = current_layer_distancer->distance_from_lines<true>(point.cast<double>())
+ 0.6f * perimeter_point.perimeter.flow_width;
+ 0.65f * perimeter_point.perimeter.flow_width;
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/libslic3r/GCode/SeamPlacer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ class SeamPlacer {
// snapping angle - angles larger than this value will be snapped to during seam painting
static constexpr float sharp_angle_snapping_threshold = 55.0f * float(PI) / 180.0f;
// overhang angle for seam placement that still yields good results, in degrees, measured from vertical direction
static constexpr float overhang_angle_threshold = 50.0f * float(PI) / 180.0f;
static constexpr float overhang_angle_threshold = 45.0f * float(PI) / 180.0f;

// determines angle importance compared to visibility ( neutral value is 1.0f. )
static constexpr float angle_importance_aligned = 0.6f;
Expand Down

0 comments on commit b665dfb

Please sign in to comment.