OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
WipePathHelpers.cpp File Reference
#include "WipePathHelpers.hpp"
#include "../AABBTreeLines.hpp"
#include "libslic3r/ExtrusionEntity.hpp"
#include "libslic3r/Line.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/libslic3r.h"
#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstddef>
#include <limits>
#include <optional>
#include <tuple>
#include <utility>
#include "libslic3r/Polyline.hpp"
Include dependency graph for WipePathHelpers.cpp:

Go to the source code of this file.

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/

Functions

static double Slic3r::wipe_tolerance (double distance, double relative_tolerance=0.1)
Point Slic3r::sample_path_at_distance (const ExtrusionPaths &paths, bool forward, double target)
static bool Slic3r::prepare_source (Points &pts)
static bool Slic3r::build_offset_polyline (const Points &original, int dir, double offset_dist, Points &result, size_t &first_join_index)
int Slic3r::wipe_offset_direction (bool is_ccw, bool is_hole)
static bool Slic3r::starts_by_backtracking (const Polyline &path, Point actual_start)
static Point Slic3r::sample_polyline_at_distance (const Polyline &polyline, double target)
static bool Slic3r::store_wipe_path (Polyline &destination, Point seam_start, Polyline actual_path, double max_wipe_length)
bool Slic3r::offset_wipe_path (Polyline &polyline, Point seam_start, Point seam_end, Point wipe_start, int dir, double offset_dist, double max_wipe_length)
static bool Slic3r::translated_wipe_path (Polyline &polyline, Point seam_start, Point seam_end, Point wipe_start, const Vec2d &translation, double max_wipe_length)
static bool Slic3r::segment_is_supported (Point start, Point end, const AABBTreeLines::LinesDistancer< Line > &distancer, double max_distance)
std::optional< double > Slic3r::wipe_path_support_score (const Polyline &polyline, Point wipe_start, const AABBTreeLines::LinesDistancer< Line > &target_distancer, const AABBTreeLines::LinesDistancer< Line > &all_support_distancer, double max_distance)
static bool Slic3r::initial_connector_is_clear (const Polyline &polyline, Point wipe_start, Point seam_start, AABBTreeLines::LinesDistancer< Line > &current_perimeter_distancer, double contact_tolerance)
static std::optional< Vec2d > Slic3r::support_offset_at_start (const Polyline &source, Point local_origin, bool disambiguate_branch, AABBTreeLines::LinesDistancer< Line > &support_distancer, double max_support_distance)
static double Slic3r::executable_path_length (const Polyline &stored_path, Point wipe_start)
static Lines Slic3r::material_side_support_lines (const Polyline &path, Point seam, int preferred_dir, const Lines &support_lines)
bool Slic3r::wipe_path_stays_on_material_side (const Polyline &path, Point path_start, const Vec2d &support_direction, const AABBTreeLines::LinesDistancer< Line > &target_perimeter_distancer, const AABBTreeLines::LinesDistancer< Line > &current_perimeter_distancer, double effective_offset, bool require_clearance)
bool Slic3r::offset_wipe_path_toward_support (Polyline &polyline, Point seam_start, Point seam_end, Point wipe_start, int preferred_dir, double offset_dist, double max_wipe_length, const Lines &target_perimeter_lines, const Lines &printed_perimeter_lines, const Lines &current_perimeter_lines, double max_support_distance)
std::optional< Point > Slic3r::wipe_on_loops_destination (const ExtrusionPaths &paths, double nozzle_diam_scaled, bool is_ccw, bool is_hole)

Variables

static constexpr double Slic3r::miter_limit = 3.0
static constexpr double Slic3r::reversal_dot_threshold = -0.99
static constexpr double Slic3r::min_support_alignment = 0.5