OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::sla::anonymous_namespace{Pad.cpp}::Intersector Class Reference
Collaboration diagram for Slic3r::sla::anonymous_namespace{Pad.cpp}::Intersector:

Public Member Functions

void add (const ExPolygon &ep)
bool intersects (const ExPolygon &poly)

Private Attributes

BoxIndex m_index
ExPolygons m_polys

Detailed Description

Member Function Documentation

◆ add()

void Slic3r::sla::anonymous_namespace{Pad.cpp}::Intersector::add ( const ExPolygon & ep)
inline
199 {
200 m_polys.emplace_back(ep);
201 m_index.insert(get_extents(ep), unsigned(m_index.size()));
202 }
BoundingBox get_extents(const ExPolygonsWithIds &e)
Definition Emboss.cpp:1374

References Slic3r::get_extents(), m_index, and m_polys.

Here is the call graph for this function:

◆ intersects()

bool Slic3r::sla::anonymous_namespace{Pad.cpp}::Intersector::intersects ( const ExPolygon & poly)
inline
206 {
207 // Create a suitable query bounding box.
208 auto bb = poly.contour.bounding_box();
209
210 std::vector<BoxIndexEl> qres = m_index.query(bb, BoxIndex::qtIntersects);
211
212 // Now check intersections on the actual polygons (not just the boxes)
213 bool is_overlap = false;
214 auto qit = qres.begin();
215 while (!is_overlap && qit != qres.end())
216 is_overlap = is_overlap || poly.overlaps(m_polys[(qit++)->second]);
217
218 return is_overlap;
219 }
@ qtIntersects
Definition SpatIndex.hpp:86
void poly(std::vector< std::pair< Vec2d, Vec2d > > &out, std::initializer_list< Vec2d > p)
Definition DesignSketchTool.cpp:7751

References m_index, m_polys, and Slic3r::sla::BoxIndex::qtIntersects.

Member Data Documentation

◆ m_index

BoxIndex Slic3r::sla::anonymous_namespace{Pad.cpp}::Intersector::m_index
private

Referenced by add(), and intersects().

◆ m_polys

ExPolygons Slic3r::sla::anonymous_namespace{Pad.cpp}::Intersector::m_polys
private

Referenced by add(), and intersects().


The documentation for this class was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/SLA/Pad.cpp