#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/ConnectedBodies.hpp>
◆ IslandLocator()
| Slic3r::IslandLocator::IslandLocator |
( |
const ExPolygons & | islands, |
|
|
coord_t | margin, |
|
|
bool | tell_apart = true ) |
94{
95 m_boxes.reserve(islands.size());
96 for (const ExPolygon &island : islands)
98 if (!tell_apart)
99 return;
100
101 std::vector<size_t> order(
m_boxes.size());
102 for (size_t i = 0; i < order.size(); ++i)
103 order[i] = i;
104 std::sort(order.begin(), order.end(), [this](size_t l, size_t r) { return m_boxes[l].min.x() < m_boxes[r].min.x(); });
105 for (size_t a = 0; a < order.size(); ++a)
106 for (
size_t b = a + 1; b < order.size() &&
m_boxes[order[b]].min.x() <=
m_boxes[order[a]].max.x(); ++b)
109}
const ExPolygons * m_islands
Definition ConnectedBodies.hpp:40
std::vector< bool > m_alone
Definition ConnectedBodies.hpp:42
std::vector< BoundingBox > m_boxes
Definition ConnectedBodies.hpp:41
BoundingBox get_extents(const ExPolygonsWithIds &e)
Definition Emboss.cpp:1374
References Slic3r::get_extents(), m_alone, m_boxes, and m_islands.
◆ boxes()
| const std::vector< BoundingBox > & Slic3r::IslandLocator::boxes |
( |
| ) |
const |
|
inline |
◆ find()
| std::pair< int, double > Slic3r::IslandLocator::find |
( |
const Point & | point, |
|
|
bool | strict = false ) const |
117{
118 int nearest = -1;
119 double distance = std::numeric_limits<double>::max();
120 for (
size_t i = 0; i <
m_boxes.size(); ++i)
123 return { int(i), 0. };
126 nearest = int(i);
127 }
128 }
130}
bool contains(const std::vector< T > &vector, const Point &point)
Definition Geometry.cpp:55
float distance(SpiralVase::SpiralPoint a, SpiralVase::SpiralPoint b)
Definition SpiralVase.cpp:19
auto cast(const BoundingBoxBase< Tin > &b)
Definition BoundingBox.hpp:299
References Slic3r::cast(), Slic3r::Geometry::contains(), m_alone, m_boxes, and m_islands.
Referenced by Slic3r::solid_bodies().
◆ holds()
| bool Slic3r::IslandLocator::holds |
( |
size_t | island, |
|
|
const Point & | point, |
|
|
bool | strict = false ) const |
112{
113 return m_boxes[island].contains(point) && ((
m_alone[island] && !strict) || (*m_islands)[island].contains(point));
114}
References m_alone, and m_boxes.
◆ m_alone
| std::vector<bool> Slic3r::IslandLocator::m_alone |
|
private |
◆ m_boxes
| std::vector<BoundingBox> Slic3r::IslandLocator::m_boxes |
|
private |
◆ m_islands
| const ExPolygons* Slic3r::IslandLocator::m_islands |
|
private |
The documentation for this class was generated from the following files: