OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
VoronoiUtilsCgal.cpp File Reference
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Interval_nt.h>
#include <CGAL/Cartesian_converter.h>
#include <CGAL/Filtered_kernel.h>
#include <CGAL/Kernel/Type_equality_wrapper.h>
#include <CGAL/Filtered_predicate.h>
#include <CGAL/enum.h>
#include <CGAL/Kernel/global_functions_2.h>
#include <boost/next_prior.hpp>
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Arr_segment_traits_2.h>
#include <CGAL/Surface_sweep_2_algorithms.h>
#include <boost/variant/get.hpp>
#include <iterator>
#include <vector>
#include <cassert>
#include "libslic3r/Geometry/Voronoi.hpp"
#include "libslic3r/Geometry/VoronoiUtils.hpp"
#include "libslic3r/Arachne/utils/PolygonsSegmentIndex.hpp"
#include "libslic3r/MultiMaterialSegmentation.hpp"
#include "VoronoiUtilsCgal.hpp"
#include "libslic3r/Line.hpp"
#include "libslic3r/Point.hpp"
Include dependency graph for VoronoiUtilsCgal.cpp:

Go to the source code of this file.

Classes

class  Slic3r::Geometry::impl::Epick
struct  Slic3r::Geometry::impl::ParabolicTangentToSegmentOrientationPredicate< K >
struct  Slic3r::Geometry::impl::ParabolicTangentToParabolicTangentOrientationPredicate< K >
struct  Slic3r::Geometry::ParabolicSegment

Namespaces

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

Typedefs

using Slic3r::Geometry::impl::K = CGAL::Simple_cartesian<double>
using Slic3r::Geometry::impl::FK = CGAL::Simple_cartesian<CGAL::Interval_nt_advanced>
using Slic3r::Geometry::impl::EK = CGAL::Simple_cartesian<CGAL::MP_Float>
using Slic3r::Geometry::impl::C2E = CGAL::Cartesian_converter<K, EK>
using Slic3r::Geometry::impl::C2F = CGAL::Cartesian_converter<K, FK>
using Slic3r::Geometry::impl::ParabolicTangentToSegmentOrientationPredicateFiltered = CGAL::Filtered_predicate<ParabolicTangentToSegmentOrientationPredicate<EK>, ParabolicTangentToSegmentOrientationPredicate<FK>, C2E, C2F>
using Slic3r::Geometry::impl::ParabolicTangentToParabolicTangentOrientationPredicateFiltered = CGAL::Filtered_predicate<ParabolicTangentToParabolicTangentOrientationPredicate<EK>, ParabolicTangentToParabolicTangentOrientationPredicate<FK>, C2E, C2F>
using Slic3r::Geometry::ParabolicTangentToSegmentOrientation = impl::ParabolicTangentToSegmentOrientationPredicateFiltered
using Slic3r::Geometry::ParabolicTangentToParabolicTangentOrientation = impl::ParabolicTangentToParabolicTangentOrientationPredicateFiltered
using Slic3r::Geometry::CGAL_Point = impl::K::Point_2

Functions

template<typename K>
K::Vector_2 Slic3r::Geometry::impl::calculate_parabolic_tangent_vector (const typename K::Point_2 &p, const typename K::Point_2 &f, const typename K::Point_2 &u, const typename K::Point_2 &v, const typename K::Orientation &tangent_orientation)
CGAL_Point Slic3r::Geometry::to_cgal_point (const VD::vertex_type *pt)
CGAL_Point Slic3r::Geometry::to_cgal_point (const Point &pt)
CGAL_Point Slic3r::Geometry::to_cgal_point (const Vec2d &pt)
Linef Slic3r::Geometry::make_linef (const VD::edge_type &edge)
bool Slic3r::Geometry::is_equal (const VD::vertex_type &vertex_first, const VD::vertex_type &vertex_second)
template<typename SegmentIterator>
static boost::polygon::enable_if< typenameboost::polygon::gtl_if< typenameboost::polygon::is_segment_concept< typenameboost::polygon::geometry_concept< typenamestd::iterator_traits< SegmentIterator >::value_type >::type >::type >::type, ParabolicSegment >::type Slic3r::Geometry::get_parabolic_segment (const VD::edge_type &edge, const SegmentIterator segment_begin, const SegmentIterator segment_end)
template<typename SegmentIterator>
static boost::polygon::enable_if< typenameboost::polygon::gtl_if< typenameboost::polygon::is_segment_concept< typenameboost::polygon::geometry_concept< typenamestd::iterator_traits< SegmentIterator >::value_type >::type >::type >::type, CGAL::Orientation >::type Slic3r::Geometry::orientation_of_two_edges (const VD::edge_type &edge_a, const VD::edge_type &edge_b, const SegmentIterator segment_begin, const SegmentIterator segment_end)
template<typename SegmentIterator>
static boost::polygon::enable_if< typenameboost::polygon::gtl_if< typenameboost::polygon::is_segment_concept< typenameboost::polygon::geometry_concept< typenamestd::iterator_traits< SegmentIterator >::value_type >::type >::type >::type, bool >::type Slic3r::Geometry::check_if_three_edges_are_ccw (const VD::edge_type &edge_first, const VD::edge_type &edge_second, const VD::edge_type &edge_third, const SegmentIterator segment_begin, const SegmentIterator segment_end)

Class Documentation

◆ Slic3r::Geometry::ParabolicSegment

struct Slic3r::Geometry::ParabolicSegment
Collaboration diagram for Slic3r::Geometry::ParabolicSegment:
Class Members
const Line directrix
const Point focus
const Orientation is_focus_on_left
const Linef segment