Bugfix: seam enforcers and blockers not respected on different nozzle widths -

now flow width is used instead of fixed distance param
This commit is contained in:
Pavel Mikus 2022-07-12 09:10:42 +02:00
parent f5efb0d0aa
commit d5d1633e2b
2 changed files with 3 additions and 5 deletions

View File

@ -522,11 +522,11 @@ void process_perimeter_polygon(const Polygon &orig_polygon, float z_coord, const
orig_point = true; orig_point = true;
} }
if (global_model_info.is_enforced(position, SeamPlacer::enforcer_blocker_distance_tolerance)) { if (global_model_info.is_enforced(position, perimeter.flow_width)) {
type = EnforcedBlockedSeamPoint::Enforced; type = EnforcedBlockedSeamPoint::Enforced;
} }
if (global_model_info.is_blocked(position, SeamPlacer::enforcer_blocker_distance_tolerance)) { if (global_model_info.is_blocked(position, perimeter.flow_width)) {
type = EnforcedBlockedSeamPoint::Blocked; type = EnforcedBlockedSeamPoint::Blocked;
} }
some_point_enforced = some_point_enforced || type == EnforcedBlockedSeamPoint::Enforced; some_point_enforced = some_point_enforced || type == EnforcedBlockedSeamPoint::Enforced;

View File

@ -135,10 +135,8 @@ public:
// determines angle importance compared to visibility ( neutral value is 1.0f. ) // determines angle importance compared to visibility ( neutral value is 1.0f. )
static constexpr float angle_importance_aligned = 0.6f; static constexpr float angle_importance_aligned = 0.6f;
static constexpr float angle_importance_nearest = 1.0f; // use much higher angle importance for nearest mode, to combat the visiblity info noise static constexpr float angle_importance_nearest = 1.0f; // use much higher angle importance for nearest mode, to combat the visibility info noise
// If enforcer or blocker is closer to the seam candidate than this limit, the seam candidate is set to Blocker or Enforcer
static constexpr float enforcer_blocker_distance_tolerance = 0.35f;
// For long polygon sides, if they are close to the custom seam drawings, they are oversampled with this step size // For long polygon sides, if they are close to the custom seam drawings, they are oversampled with this step size
static constexpr float enforcer_oversampling_distance = 0.2f; static constexpr float enforcer_oversampling_distance = 0.2f;