OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::Geometry::impl Namespace Reference

Classes

class  Epick
struct  ParabolicTangentToSegmentOrientationPredicate
struct  ParabolicTangentToParabolicTangentOrientationPredicate

Typedefs

using K = CGAL::Simple_cartesian<double>
using FK = CGAL::Simple_cartesian<CGAL::Interval_nt_advanced>
using EK = CGAL::Simple_cartesian<CGAL::MP_Float>
using C2E = CGAL::Cartesian_converter<K, EK>
using C2F = CGAL::Cartesian_converter<K, FK>
using ParabolicTangentToSegmentOrientationPredicateFiltered = CGAL::Filtered_predicate<ParabolicTangentToSegmentOrientationPredicate<EK>, ParabolicTangentToSegmentOrientationPredicate<FK>, C2E, C2F>
using ParabolicTangentToParabolicTangentOrientationPredicateFiltered = CGAL::Filtered_predicate<ParabolicTangentToParabolicTangentOrientationPredicate<EK>, ParabolicTangentToParabolicTangentOrientationPredicate<FK>, C2E, C2F>

Functions

template<typename K>
K::Vector_2 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)

Typedef Documentation

◆ C2E

using Slic3r::Geometry::impl::C2E = CGAL::Cartesian_converter<K, EK>

◆ C2F

using Slic3r::Geometry::impl::C2F = CGAL::Cartesian_converter<K, FK>

◆ EK

using Slic3r::Geometry::impl::EK = CGAL::Simple_cartesian<CGAL::MP_Float>

◆ FK

using Slic3r::Geometry::impl::FK = CGAL::Simple_cartesian<CGAL::Interval_nt_advanced>

◆ K

using Slic3r::Geometry::impl::K = CGAL::Simple_cartesian<double>

◆ ParabolicTangentToParabolicTangentOrientationPredicateFiltered

◆ ParabolicTangentToSegmentOrientationPredicateFiltered

Function Documentation

◆ calculate_parabolic_tangent_vector()

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 )
inline
67 {
68 using RT = typename K::RT;
69 using Vector_2 = typename K::Vector_2;
70
71 const Vector_2 directrix_vec = v - u;
72 const RT directrix_vec_sqr_length = CGAL::scalar_product(directrix_vec, directrix_vec);
73 Vector_2 focus_vec = (f - u) * directrix_vec_sqr_length - directrix_vec * CGAL::scalar_product(directrix_vec, p - u);
74 Vector_2 tangent_vec = focus_vec.perpendicular(tangent_orientation);
75 return tangent_vec;
76 }
static double f(double x, double z_sin, double z_cos, bool vertical, bool flip)
Definition FillGyroid.cpp:124

References calculate_parabolic_tangent_vector(), and Slic3r::f().

Referenced by calculate_parabolic_tangent_vector(), Slic3r::Geometry::impl::ParabolicTangentToParabolicTangentOrientationPredicate< K >::operator()(), and Slic3r::Geometry::impl::ParabolicTangentToSegmentOrientationPredicate< K >::operator()().

Here is the call graph for this function:
Here is the caller graph for this function: