OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::Geometry::CircleSq< Vector > Struct Template Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/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
46{}

Referenced by inflated(), and make_invalid().

Here is the caller graph for this function:

◆ CircleSq() [2/4]

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

References center, and radius2.

◆ CircleSq() [3/4]

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

References center, and radius2.

◆ CircleSq() [4/4]

template<typename Vector>
Slic3r::Geometry::CircleSq< Vector >::CircleSq ( const Vector & a,
const Vector & b,
const Vector & c,
Scalar epsilon )
inline
49 {
50 this->center = circle_center(a, b, c, epsilon);
51 this->radius2 = (a - this->center).squaredNorm();
52 }
Vector circle_center(const Vector &a, const Vector &bsrc, const Vector &csrc, typename Vector::Scalar epsilon)
Definition Circle.hpp:18

References 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
56{ return (p - this->center).squaredNorm() < this->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
57{ return (p - this->center).squaredNorm() < this->radius2 + epsilon2; }

◆ inflated()

template<typename Vector>
CircleSq Slic3r::Geometry::CircleSq< Vector >::inflated ( Scalar epsilon) const
inline
60 { assert(this->radius2 >= 0); Scalar r = sqrt(this->radius2) + epsilon; return { this->center, r * r }; }

References CircleSq().

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
54{ return this->radius2 < 0; }

Referenced by valid().

Here is the caller graph for this function:

◆ make_invalid()

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

References CircleSq().

Here is the call graph for this function:

◆ valid()

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

References 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:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Geometry/Circle.hpp