Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::Geometry::CircleSq< Vector > Struct Template Reference

#include <src/libslic3r/Geometry/Circle.hpp>

+ Collaboration diagram for Slic3r::Geometry::CircleSq< Vector >:

Public Types

using Scalar = typename Vector::Scalar
 

Public Member Functions

 CircleSq ()
 
 CircleSq (const Vector &center, const Scalar radius2)
 
 CircleSq (const Vector &a, const Vector &b)
 
 CircleSq (const Vector &a, const Vector &b, const Vector &c, Scalar epsilon)
 
bool invalid () const
 
bool valid () const
 
bool contains (const Vector &p) const
 
bool contains (const Vector &p, const Scalar epsilon2) const
 
CircleSq inflated (Scalar epsilon) const
 

Static Public Member Functions

static CircleSq make_invalid ()
 

Public Attributes

Vector center
 
Scalar radius2
 

Detailed Description

template<typename Vector>
struct Slic3r::Geometry::CircleSq< Vector >

Member Typedef Documentation

◆ Scalar

template<typename Vector >
using Slic3r::Geometry::CircleSq< Vector >::Scalar = typename Vector::Scalar

Constructor & Destructor Documentation

◆ CircleSq() [1/4]

template<typename Vector >
Slic3r::Geometry::CircleSq< Vector >::CircleSq ( )
inline
41{}

◆ CircleSq() [2/4]

template<typename Vector >
Slic3r::Geometry::CircleSq< Vector >::CircleSq ( const Vector center,
const Scalar  radius2 
)
inline
Vector center
Definition Circle.hpp:38
Scalar radius2
Definition Circle.hpp:39

◆ CircleSq() [3/4]

template<typename Vector >
Slic3r::Geometry::CircleSq< Vector >::CircleSq ( const Vector a,
const Vector b 
)
inline
43: center(Scalar(0.5) * (a + b)) { radius2 = (a - center).squaredNorm(); }
typename Vector::Scalar Scalar
Definition Circle.hpp:36

References Slic3r::Geometry::CircleSq< Vector >::center, and Slic3r::Geometry::CircleSq< Vector >::radius2.

◆ CircleSq() [4/4]

template<typename Vector >
Slic3r::Geometry::CircleSq< Vector >::CircleSq ( const Vector a,
const Vector b,
const Vector c,
Scalar  epsilon 
)
inline
44 {
45 this->center = circle_center(a, b, c, epsilon);
46 this->radius2 = (a - this->center).squaredNorm();
47 }
Vector circle_center(const Vector &a, const Vector &bsrc, const Vector &csrc, typename Vector::Scalar epsilon)
Definition Circle.hpp:13

References Slic3r::Geometry::CircleSq< Vector >::center, and Slic3r::Geometry::circle_center().

+ Here is the call graph for this function:

Member Function Documentation

◆ contains() [1/2]

template<typename Vector >
bool Slic3r::Geometry::CircleSq< Vector >::contains ( const Vector p) const
inline
51{ return (p - this->center).squaredNorm() < this->radius2; }

References Slic3r::Geometry::CircleSq< Vector >::radius2.

Referenced by Slic3r::Geometry::smallest_enclosing_circle2_welzl().

+ Here is the caller graph for this function:

◆ contains() [2/2]

template<typename Vector >
bool Slic3r::Geometry::CircleSq< Vector >::contains ( const Vector p,
const Scalar  epsilon2 
) const
inline
52{ return (p - this->center).squaredNorm() < this->radius2 + epsilon2; }

◆ inflated()

template<typename Vector >
CircleSq Slic3r::Geometry::CircleSq< Vector >::inflated ( Scalar  epsilon) const
inline
55 { assert(this->radius2 >= 0); Scalar r = sqrt(this->radius2) + epsilon; return { this->center, r * r }; }
EIGEN_DEVICE_FUNC const SqrtReturnType sqrt() const
Definition ArrayCwiseUnaryOps.h:152
constexpr double epsilon()
Definition DoubleSlider.hpp:28

References Slic3r::Geometry::CircleSq< Vector >::center, and sqrt().

Referenced by Slic3r::Geometry::smallest_enclosing_circle2_welzl().

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

◆ invalid()

template<typename Vector >
bool Slic3r::Geometry::CircleSq< Vector >::invalid ( ) const
inline
49{ return this->radius2 < 0; }

Referenced by Slic3r::Geometry::CircleSq< Vector >::valid().

+ Here is the caller graph for this function:

◆ make_invalid()

template<typename Vector >
static CircleSq Slic3r::Geometry::CircleSq< Vector >::make_invalid ( )
inlinestatic
57{ return CircleSq { { 0, 0 }, -1 }; }
CircleSq()
Definition Circle.hpp:41

◆ valid()

template<typename Vector >
bool Slic3r::Geometry::CircleSq< Vector >::valid ( ) const
inline
50{ return ! this->invalid(); }
bool invalid() const
Definition Circle.hpp:49

References Slic3r::Geometry::CircleSq< Vector >::invalid().

+ Here is the call graph for this function:

Member Data Documentation

◆ center

◆ radius2


The documentation for this struct was generated from the following file: