OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Polygon.cpp File Reference
#include "BoundingBox.hpp"
#include "ClipperUtils.hpp"
#include "Exception.hpp"
#include "Polygon.hpp"
#include "Line.hpp"
#include "Point.hpp"
#include "MultiPoint.hpp"
#include "Polyline.hpp"
#include "libslic3r.h"
#include <cassert>
#include <algorithm>
#include <Eigen/Core>
#include <cmath>
#include <cstddef>
#include <utility>
#include <limits>
#include <vector>
#include <cstdint>
#include <math.h>
Include dependency graph for Polygon.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

template<typename FilterFn>
Points Slic3r::filter_points_by_vectors (const Points &poly, FilterFn filter)
template<typename ConvexConcaveFilterFn>
Points Slic3r::filter_convex_concave_points_by_angle_threshold (const Points &poly, double angle_threshold, ConvexConcaveFilterFn convex_concave_filter)
 Filters points in a polygon based on a minimum angle threshold and a convex/concave criterion.
BoundingBox Slic3r::get_extents (const Polygon &poly)
BoundingBox Slic3r::get_extents (const Polygons &polygons)
BoundingBox Slic3r::get_extents_rotated (const Polygon &poly, double angle)
BoundingBox Slic3r::get_extents_rotated (const Polygons &polygons, double angle)
std::vector< BoundingBox > Slic3r::get_extents_vector (const Polygons &polygons)
bool Slic3r::polygon_is_convex (const Points &poly)
bool Slic3r::has_duplicate_points (const Polygons &polys)
bool Slic3r::remove_same_neighbor (Polygon &polygon)
bool Slic3r::remove_same_neighbor (Polygons &polygons)
static bool Slic3r::is_stick (const Point &p1, const Point &p2, const Point &p3)
bool Slic3r::remove_sticks (Polygon &poly)
bool Slic3r::remove_sticks (Polygons &polys)
bool Slic3r::remove_degenerate (Polygons &polys)
bool Slic3r::remove_small (Polygons &polys, double min_area)
void Slic3r::remove_collinear (Polygon &poly)
void Slic3r::remove_collinear (Polygons &polys)
Polygons Slic3r::polygons_simplify (const Polygons &source_polygons, double tolerance)
bool Slic3r::polygons_match (const Polygon &l, const Polygon &r)
bool Slic3r::overlaps (const Polygons &polys1, const Polygons &polys2)
static int Slic3r::point_in_polygon (const Point &pt, const Points &path)
bool Slic3r::contains (const Polygon &polygon, const Point &p, bool border_result)
bool Slic3r::contains (const Polygons &polygons, const Point &p, bool border_result)
Polygon Slic3r::make_circle (double radius, double error)
Polygon Slic3r::make_circle_num_segments (double radius, size_t num_segments)