21{
23
27
28 for (const LayerRegion *layerm : layer.regions())
29 for (const Surface &surface : layerm->get_slices().surfaces)
30 if (surface.is_internal())
32
33 std::vector<AABBTreeIndirect::BoundingBoxWrapper> bboxes;
37
39 }
40
43 int result = -1;
46 [&bbox_travel_eigen](const AABBTree::Node &node) {
47 return bbox_travel_eigen.intersects(node.bbox);
48 },
49 [&travel, &bbox_travel, &result, &islands =
m_internal_islands](
const AABBTree::Node &node) {
50 assert(node.is_leaf());
51 assert(node.is_valid());
54
55 result = int(node.idx);
56
57 return false;
58 }
59
60 return true;
61 });
62 return result != -1;
63}
Eigen::AlignedBox< CoordType, NumDimensions > BoundingBox
Definition AABBTreeIndirect.hpp:50
std::vector< const ExPolygon * > m_internal_islands
Definition RetractWhenCrossingPerimeters.hpp:25
AABBTree m_aabbtree_internal_islands
Definition RetractWhenCrossingPerimeters.hpp:28
const Layer * m_layer
Definition RetractWhenCrossingPerimeters.hpp:23
#define SCALED_EPSILON
Definition libslic3r.h:109
void traverse(const Tree< Dims, T > &tree, Predicate &&pred, Fn &&callback)
Definition AABBTreeIndirect.hpp:986
Polygons clip_clipper_polygons_with_subject_bbox(const Polygons &src, const BoundingBox &bbox)
Definition ClipperUtils.cpp:132
Slic3r::Polylines diff_pl(const Slic3r::Polyline &subject, const Slic3r::Polygons &clip)
Definition ClipperUtils.cpp:1099
BoundingBox get_extents(const ExPolygonsWithIds &e)
Definition Emboss.cpp:1374
std::vector< Polygon, PointsAllocator< Polygon > > Polygons
Definition Polygon.hpp:22
bool empty(const BoundingBoxBase< PointType, PointsType > &bb)
Definition BoundingBox.hpp:273