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

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Geometry/Circle.hpp>

Inheritance diagram for Slic3r::Geometry::Circle< Vector >:
Collaboration diagram for Slic3r::Geometry::Circle< Vector >:

Public Types

using Scalar = typename Vector::Scalar

Public Member Functions

 Circle ()
 Circle (const Vector &center, const Scalar radius)
 Circle (const Vector &a, const Vector &b)
 Circle (const Vector &a, const Vector &b, const Vector &c, const Scalar epsilon)
template<typename Vector2>
 Circle (const CircleSq< Vector2 > &c)
template<typename Vector2>
Circle operator= (const CircleSq< Vector2 > &c)
bool invalid () const
bool valid () const
bool contains (const Vector &p) const
bool contains (const Vector &p, const Scalar epsilon) const
Circle inflated (Scalar epsilon) const

Static Public Member Functions

static Circle make_invalid ()

Public Attributes

Vector center
Scalar radius

Detailed Description

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

Member Typedef Documentation

◆ Scalar

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

Constructor & Destructor Documentation

◆ Circle() [1/5]

template<typename Vector>
Slic3r::Geometry::Circle< Vector >::Circle ( )
inline
73{}

◆ Circle() [2/5]

template<typename Vector>
Slic3r::Geometry::Circle< Vector >::Circle ( const Vector & center,
const Scalar radius )
inline
Vector center
Definition Circle.hpp:70
Scalar radius
Definition Circle.hpp:71

◆ Circle() [3/5]

template<typename Vector>
Slic3r::Geometry::Circle< Vector >::Circle ( const Vector & a,
const Vector & b )
inline
75: center(Scalar(0.5) * (a + b)) { radius = (a - center).norm(); }
Definition Circle.hpp:67
typename Vector::Scalar Scalar
Definition Circle.hpp:68

◆ Circle() [4/5]

template<typename Vector>
Slic3r::Geometry::Circle< Vector >::Circle ( const Vector & a,
const Vector & b,
const Vector & c,
const Scalar epsilon )
inline
76{ *this = CircleSq(a, b, c, epsilon); }

◆ Circle() [5/5]

template<typename Vector>
template<typename Vector2>
Slic3r::Geometry::Circle< Vector >::Circle ( const CircleSq< Vector2 > & c)
inlineexplicit
80: center(c.center), radius(c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2)) {}

Member Function Documentation

◆ contains() [1/2]

template<typename Vector>
bool Slic3r::Geometry::Circle< Vector >::contains ( const Vector & p) const
inline
86{ return (p - this->center).squaredNorm() <= this->radius * this->radius; }

◆ contains() [2/2]

template<typename Vector>
bool Slic3r::Geometry::Circle< Vector >::contains ( const Vector & p,
const Scalar epsilon ) const
inline
88 { Scalar re = this->radius + epsilon; return (p - this->center).squaredNorm() < re * re; }

◆ inflated()

template<typename Vector>
Circle Slic3r::Geometry::Circle< Vector >::inflated ( Scalar epsilon) const
inline
90{ assert(this->radius >= 0); return { this->center, this->radius + epsilon }; }

◆ invalid()

template<typename Vector>
bool Slic3r::Geometry::Circle< Vector >::invalid ( ) const
inline
84{ return this->radius < 0; }

Referenced by Slic3r::Geometry::Circle< Vec2f >::valid().

Here is the caller graph for this function:

◆ make_invalid()

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

◆ operator=()

template<typename Vector>
template<typename Vector2>
Circle Slic3r::Geometry::Circle< Vector >::operator= ( const CircleSq< Vector2 > & c)
inline
82{ this->center = c.center; this->radius = c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2); }

◆ valid()

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

Member Data Documentation

◆ center

◆ radius


The documentation for this struct was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Geometry/Circle.hpp