OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
ClipperUtils.cpp File Reference
#include <algorithm>
#include <array>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <cassert>
#include <cmath>
#include <limits>
#include <numeric>
#include <optional>
#include <unordered_map>
#include <tbb/parallel_for.h>
#include "ClipperUtils.hpp"
#include "AABBTreeIndirect.hpp"
#include "BoundingBox.hpp"
#include "ExPolygon.hpp"
#include "Point.hpp"
#include "Polygon.hpp"
#include "Polyline.hpp"
#include "Line.hpp"
#include "ShortestPath.hpp"
#include "libslic3r.h"
#include "Surface.hpp"
#include <clipper2/clipper.h>
#include <utility>
#include <vector>
#include "ExtrusionEntity.hpp"
Include dependency graph for ClipperUtils.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 |/
namespace  Slic3r::ClipperUtils
namespace  Slic3r::anonymous_namespace{ClipperUtils.cpp}

Macros

#define CLIPPERUTILS_PROFILE_FUNC()
#define CLIPPERUTILS_PROFILE_BLOCK(name)

Functions

template<typename PointsType>
void Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox_templ (const PointsType &src, const BoundingBox &bbox, PointsType &out, const bool get_entire_polygons=false)
void Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox (const Points &src, const BoundingBox &bbox, Points &out, const bool get_entire_polygons)
void Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox (const ZPoints &src, const BoundingBox &bbox, ZPoints &out)
template<typename PointsType>
PointsType Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox_templ (const PointsType &src, const BoundingBox &bbox)
Points Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox (const Points &src, const BoundingBox &bbox)
ZPoints Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox (const ZPoints &src, const BoundingBox &bbox)
void Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox (const Polygon &src, const BoundingBox &bbox, Polygon &out)
Polygon Slic3r::ClipperUtils::clip_clipper_polygon_with_subject_bbox (const Polygon &src, const BoundingBox &bbox, const bool get_entire_polygons)
Polygons Slic3r::ClipperUtils::clip_clipper_polygons_with_subject_bbox (const Polygons &src, const BoundingBox &bbox)
Polygons Slic3r::ClipperUtils::clip_clipper_polygons_with_subject_bbox (const ExPolygon &src, const BoundingBox &bbox, const bool get_entire_polygons)
Polygons Slic3r::ClipperUtils::clip_clipper_polygons_with_subject_bbox (const ExPolygons &src, const BoundingBox &bbox, const bool get_entire_polygons)
C2::ClipType Slic3r::anonymous_namespace{ClipperUtils.cpp}::to_c2 (ClipType type)
C2::FillRule Slic3r::anonymous_namespace{ClipperUtils.cpp}::to_c2 (PolyFillType type)
C2::JoinType Slic3r::anonymous_namespace{ClipperUtils.cpp}::to_c2 (JoinType type)
C2::EndType Slic3r::anonymous_namespace{ClipperUtils.cpp}::to_c2 (EndType type)
int64_t Slic3r::anonymous_namespace{ClipperUtils.cpp}::px (const Point &pt)
int64_t Slic3r::anonymous_namespace{ClipperUtils.cpp}::py (const Point &pt)
int64_t Slic3r::anonymous_namespace{ClipperUtils.cpp}::px (const C2::Point64 &pt)
int64_t Slic3r::anonymous_namespace{ClipperUtils.cpp}::py (const C2::Point64 &pt)
template<typename PathsProvider>
C2::Paths64 Slic3r::anonymous_namespace{ClipperUtils.cpp}::to_paths64 (PathsProvider &&paths)
template<class PathT>
bool Slic3r::anonymous_namespace{ClipperUtils.cpp}::append_offset_path (C2::Paths64 &out, const PathT &path, double shortest, C2::EndType end)
Points Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_to_points (const C2::Path64 &path)
Polygons Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_to_polygons (const C2::Paths64 &paths)
Polylines Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_to_polylines (const C2::Paths64 &paths)
size_t Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_count_expolygons (const C2::PolyPath64 &outer)
void Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_append_expolygons (const C2::PolyPath64 &outer, ExPolygons &out, std::vector< const C2::Path64 * > &stray_holes)
bool Slic3r::anonymous_namespace{ClipperUtils.cpp}::path_encloses (const Polygon &outer, const Polygon &inner)
void Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_attach_stray_holes (ExPolygons &out, size_t first, const std::vector< const C2::Path64 * > &stray_holes)
ExPolygons Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_to_expolygons (const C2::PolyTree64 &tree)
template<class TOut>
void Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_clip (C2::ClipType type, const C2::Paths64 &subject, const C2::Paths64 &clip, C2::FillRule fill, TOut &out)
Polylines Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_clip_open (C2::ClipType type, const C2::Paths64 &subject, const C2::Paths64 &clip)
void Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_setup (C2::ClipperOffset &co, float delta, JoinType joinType, double miterLimit, double capTolerance=0.)
bool Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_as_group (const C2::Paths64 &paths, const std::vector< double > &areas)
template<class TOut>
void Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_closed_paths (C2::Paths64 &&paths, float delta, JoinType joinType, double miterLimit, TOut &out)
template<class PathsT, class TOut>
void Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_closed (PathsT &&src, float delta, JoinType joinType, double miterLimit, TOut &out)
template<class PathsProvider, class TOut>
void Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset2_closed (PathsProvider &&src, float delta1, float delta2, JoinType joinType, double miterLimit, TOut &out)
const ExPolygon & Slic3r::anonymous_namespace{ClipperUtils.cpp}::expolygon_of (const ExPolygon &expoly)
const ExPolygon & Slic3r::anonymous_namespace{ClipperUtils.cpp}::expolygon_of (const ExPolygon *expoly)
const ExPolygon & Slic3r::anonymous_namespace{ClipperUtils.cpp}::expolygon_of (const Surface &surface)
const ExPolygon & Slic3r::anonymous_namespace{ClipperUtils.cpp}::expolygon_of (const Surface *surface)
template<class ExPolygonRange, class TOut>
void Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_expolygons (const ExPolygonRange &src, float delta, JoinType joinType, double miterLimit, TOut &out)
template<class ExPolygonRange>
Polygons Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_expolygons_offset (const ExPolygonRange &src, float delta, JoinType joinType, double miterLimit)
template<class ExPolygonRange>
ExPolygons Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_expolygons_offset_ex (const ExPolygonRange &src, float delta, JoinType joinType, double miterLimit)
template<class PathsProvider>
Polygons Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_offset_lines (PathsProvider &&src, float delta, JoinType joinType, double miterLimit, EndType endType, double capTolerance=0.)
template<class PathsProvider>
C2::Paths64 Slic3r::anonymous_namespace{ClipperUtils.cpp}::c2_clip_paths (PathsProvider &&clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::offset (const Slic3r::Polygon &polygon, const float delta, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::offset (const Slic3r::Polygons &polygons, const float delta, JoinType joinType, double miterLimit)
Slic3r::ExPolygons Slic3r::offset_ex (const Slic3r::Polygons &polygons, const float delta, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::offset (const Slic3r::Polyline &polyline, const float delta, JoinType joinType, double miterLimit, EndType end_type)
Slic3r::Polygons Slic3r::offset (const Slic3r::Polyline3 &polyline, const float delta, JoinType joinType, double miterLimit, EndType end_type)
Slic3r::Polygons Slic3r::offset (const Slic3r::Polylines &polylines, const float delta, JoinType joinType, double miterLimit, EndType end_type, double cap_tolerance)
Polygons Slic3r::contour_to_polygons (const Polygon &polygon, const float line_width, JoinType join_type, double miter_limit)
Polygons Slic3r::contour_to_polygons (const Polygons &polygons, const float line_width, JoinType join_type, double miter_limit)
Slic3r::Polygons Slic3r::offset (const Slic3r::ExPolygon &expolygon, const float delta, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::offset (const Slic3r::ExPolygons &expolygons, const float delta, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::offset (const Slic3r::Surfaces &surfaces, const float delta, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::offset (const Slic3r::SurfacesPtr &surfaces, const float delta, JoinType joinType, double miterLimit)
Slic3r::ExPolygons Slic3r::offset_ex (const Slic3r::ExPolygon &expolygon, const float delta, JoinType joinType, double miterLimit)
Slic3r::ExPolygons Slic3r::offset_ex (const Slic3r::ExPolygons &expolygons, const float delta, JoinType joinType, double miterLimit)
Slic3r::ExPolygons Slic3r::offset_ex (const Slic3r::Surfaces &surfaces, const float delta, JoinType joinType, double miterLimit)
Slic3r::ExPolygons Slic3r::offset_ex (const Slic3r::SurfacesPtr &surfaces, const float delta, JoinType joinType, double miterLimit)
Polygons Slic3r::offset2 (const ExPolygons &expolygons, const float delta1, const float delta2, JoinType joinType, double miterLimit)
ExPolygons Slic3r::offset2_ex (const ExPolygons &expolygons, const float delta1, const float delta2, JoinType joinType, double miterLimit)
ExPolygons Slic3r::offset2_ex (const Surfaces &surfaces, const float delta1, const float delta2, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::closing (const Slic3r::Polygons &polygons, const float delta1, const float delta2, JoinType joinType, double miterLimit)
Slic3r::ExPolygons Slic3r::closing_ex (const Slic3r::Polygons &polygons, const float delta1, const float delta2, JoinType joinType, double miterLimit)
Slic3r::ExPolygons Slic3r::closing_ex (const Slic3r::Surfaces &surfaces, const float delta1, const float delta2, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::opening (const Slic3r::Polygons &polygons, const float delta1, const float delta2, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::opening (const Slic3r::ExPolygons &expolygons, const float delta1, const float delta2, JoinType joinType, double miterLimit)
Slic3r::Polygons Slic3r::opening (const Slic3r::Surfaces &surfaces, const float delta1, const float delta2, JoinType joinType, double miterLimit)
template<class TSubj, class TClip>
static Polygons Slic3r::_clipper (ClipType clipType, TSubj &&subject, TClip &&clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::diff (const Slic3r::Polygon &subject, const Slic3r::Polygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::diff (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::diff_clipped (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_clipped (const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_clipped (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::diff (const Slic3r::Polygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::diff (const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::diff (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::diff (const Slic3r::Surfaces &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::diff_expanded (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, float delta)
Slic3r::Polygons Slic3r::intersection (const Slic3r::Polygon &subject, const Slic3r::Polygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection_clipped (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection (const Slic3r::Polygons &subject, const Slic3r::ExPolygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, PolyFillType fill_type)
Slic3r::Polygons Slic3r::intersection (const Slic3r::ExPolygon &subject, const Slic3r::ExPolygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection (const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection (const Slic3r::Surfaces &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection (const Slic3r::Surfaces &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::intersection (const Slic3r::Polygons &subject, const Slic3r::Polygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::Polygons Slic3r::union_ (const Slic3r::Polygons &subject)
Slic3r::Polygons Slic3r::union_ (const Slic3r::ExPolygons &subject)
Slic3r::Polygons Slic3r::union_ (const Slic3r::Polygons &subject, const PolyFillType fillType)
Slic3r::Polygons Slic3r::union_ (const Slic3r::Polygons &subject, const Slic3r::Polygons &subject2)
template<typename TSubject, typename TClip>
static ExPolygons Slic3r::_clipper_ex (ClipType clipType, TSubject &&subject, TClip &&clip, ApplySafetyOffset do_safety_offset, PolyFillType fill_type=pftNonZero)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Polygons &subject, const Slic3r::Surfaces &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Polygon &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Polygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::ExPolygon &subject, const Slic3r::Polygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::ExPolygon &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Surfaces &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Surfaces &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::ExPolygons &subject, const Slic3r::Surfaces &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Surfaces &subject, const Slic3r::Surfaces &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::SurfacesPtr &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::SurfacesPtr &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Polygon &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex (const Slic3r::Polygon &subject, const Slic3r::Polygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::ExPolygon &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::ExPolygon &subject, const Slic3r::ExPolygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::Polygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::ExPolygon &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::Surfaces &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::Surfaces &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::Surfaces &subject, const Slic3r::Surfaces &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex (const Slic3r::SurfacesPtr &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
std::vector< ExPolygonsTile > Slic3r::ClipperUtils::tile_expolygons (const ExPolygons &expolygons, size_t per_tile)
std::optional< Point > Slic3r::ClipperUtils::interior_point (const Polygon &polygon)
static Slic3r::ExPolygons Slic3r::clipper_ex_by_piece (ClipType clipType, const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::diff_ex_by_piece (const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::intersection_ex_by_piece (const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::union_ex (const Slic3r::Polygons &subject, PolyFillType fill_type)
Slic3r::ExPolygons Slic3r::union_ex (const Slic3r::ExPolygons &subject)
Slic3r::ExPolygons Slic3r::union_ex (const Slic3r::ExPolygons &subject, const Slic3r::Polygons &subject2)
Slic3r::ExPolygons Slic3r::union_ex (const Slic3r::Surfaces &subject)
Slic3r::ExPolygons Slic3r::union_ex (const Slic3r::ExPolygons &poly1, const Slic3r::ExPolygons &poly2, bool safety_offset_)
Slic3r::ExPolygons Slic3r::xor_ex (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygon &clip, ApplySafetyOffset do_safety_offset)
Slic3r::ExPolygons Slic3r::xor_ex (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset)
template<typename PathsProvider1, typename PathsProvider2>
Polylines Slic3r::_clipper_pl_open (ClipType clipType, PathsProvider1 &&subject, PathsProvider2 &&clip)
static void Slic3r::_clipper_pl_recombine (Polylines &polylines)
template<typename PathProvider1, typename PathProvider2>
Polylines Slic3r::_clipper_pl_closed (ClipType clipType, PathProvider1 &&subject, PathProvider2 &&clip)
Slic3r::Polylines Slic3r::diff_pl (const Slic3r::Polyline &subject, const Slic3r::Polygons &clip)
Slic3r::Polylines Slic3r::diff_pl (const Slic3r::Polylines &subject, const Slic3r::Polygons &clip)
Slic3r::Polylines Slic3r::diff_pl (const Slic3r::Polyline &subject, const Slic3r::ExPolygon &clip)
Slic3r::Polylines Slic3r::diff_pl (const Slic3r::Polylines &subject, const Slic3r::ExPolygon &clip)
Slic3r::Polylines Slic3r::diff_pl (const Slic3r::Polylines &subject, const Slic3r::ExPolygons &clip)
Slic3r::Polylines Slic3r::diff_pl (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip)
Slic3r::Polylines Slic3r::intersection_pl (const Slic3r::Polylines &subject, const Slic3r::Polygon &clip)
Slic3r::Polylines Slic3r::intersection_pl (const Slic3r::Polyline &subject, const Slic3r::ExPolygon &clip)
Slic3r::Polylines Slic3r::intersection_pl (const Slic3r::Polylines &subject, const Slic3r::ExPolygon &clip)
Slic3r::Polylines Slic3r::intersection_pl (const Slic3r::Polyline &subject, const Slic3r::Polygons &clip)
Slic3r::Polylines Slic3r::intersection_pl (const Slic3r::Polylines &subject, const Slic3r::Polygons &clip)
Slic3r::Polylines Slic3r::intersection_pl (const Slic3r::Polylines &subject, const Slic3r::ExPolygons &clip)
Slic3r::Polylines Slic3r::intersection_pl (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip)
void Slic3r::restore_source_path_order (const Slic3r::Polyline &source, Slic3r::Polylines &fragments)
Lines Slic3r::_clipper_ln (ClipType clipType, const Lines &subject, const Polygons &clip)
static void Slic3r::traverse_pt_outside_in (const std::vector< const C2::PolyPath64 * > &nodes, bool holes, Polygons *retval)
Polygons Slic3r::union_pt_chained_outside_in (const Polygons &subject)
Polygons Slic3r::simplify_polygons (const Polygons &subject)
ExPolygons Slic3r::simplify_polygons_ex (const Polygons &subject)
Polygons Slic3r::top_level_islands (const Slic3r::Polygons &polygons)
ExPolygons Slic3r::top_level_expolygons (const ExPolygons &expolygons, ExPolygons *nested)
Points Slic3r::mittered_offset_path_scaled (const Points &contour, const std::vector< float > &deltas, double miter_limit)
template<class TOut>
static void Slic3r::variable_offset (const ExPolygon &expoly, const std::vector< std::vector< float > > &deltas, double miter_limit, TOut &out)
Polygons Slic3r::variable_offset_inner (const ExPolygon &expoly, const std::vector< std::vector< float > > &deltas, double miter_limit)
Polygons Slic3r::variable_offset_outer (const ExPolygon &expoly, const std::vector< std::vector< float > > &deltas, double miter_limit)
ExPolygons Slic3r::variable_offset_outer_ex (const ExPolygon &expoly, const std::vector< std::vector< float > > &deltas, double miter_limit)
ExPolygons Slic3r::variable_offset_inner_ex (const ExPolygon &expoly, const std::vector< std::vector< float > > &deltas, double miter_limit)
Pointfs Slic3r::make_counter_clockwise (const Pointfs &pointfs)

Macro Definition Documentation

◆ CLIPPERUTILS_PROFILE_BLOCK

#define CLIPPERUTILS_PROFILE_BLOCK ( name)

◆ CLIPPERUTILS_PROFILE_FUNC

#define CLIPPERUTILS_PROFILE_FUNC ( )