OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
OrderingStrategies.cpp File Reference
#include "OrderingStrategies.hpp"
#include "../Geometry.hpp"
#include "../ShortestPath.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/PrintConfig.hpp"
#include "libslic3r/libslic3r.h"
#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <limits>
#include <numeric>
#include <unordered_map>
#include <utility>
#include <vector>
#include "libslic3r/Print.hpp"
Include dependency graph for OrderingStrategies.cpp:

Go to the source code of this file.

Classes

struct  Slic3r::SnakeRow

Namespaces

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

Functions

bool Slic3r::tsp_2opt_improve (std::vector< size_t > &path, const Points &centers, int max_passes)
static bool Slic3r::bboxes_overlap (const Point &a, const Point &b, const Point &c, const Point &d)
bool Slic3r::tsp_remove_crossings (std::vector< size_t > &path, const Points &centers)
std::vector< size_t > Slic3r::tsp_exact_cycle (const Points &centers)
void Slic3r::tsp_rotate_minimize_closing (std::vector< size_t > &path, const Points &centers)
static double Slic3r::compute_row_threshold (const std::vector< double > &sorted_ys, double y_min, double y_max, size_t n, double fraction_of_y_range, double min_threshold_um)
static std::vector< SnakeRow > Slic3r::group_into_rows (const Points &centers, double row_threshold)
static std::vector< size_t > Slic3r::build_serpentine_path (const Points &centers, std::vector< SnakeRow > &rows)
static std::vector< size_t > Slic3r::row_serpentine_path (const Points &centers, double fraction_of_y_range=0.02, double min_threshold_um=1e4)
std::vector< size_t > Slic3r::snake_core (const Points &centers)
std::vector< const PrintInstance * > Slic3r::chain_print_object_instances_snake (const std::vector< const PrintObject * > &print_objects, const Point *start_near)
std::vector< const PrintInstance * > Slic3r::chain_print_object_instances_snake (const Print &print)
std::vector< const PrintInstance * > Slic3r::chain_print_object_instances_best_of (const std::vector< const PrintObject * > &print_objects, const Point *start_near)
std::vector< const PrintInstance * > Slic3r::chain_print_object_instances_best_of (const Print &print)
std::vector< size_t > Slic3r::order_points_with_strategy (const Points &points, PrintOrder print_order, const Point *start_near)

Class Documentation

◆ Slic3r::SnakeRow

struct Slic3r::SnakeRow
Collaboration diagram for Slic3r::SnakeRow:
Class Members
double avg_y
vector< size_t > indices