FIXME on ExPolygon::overlaps(), which should be commutative.

This commit is contained in:
Vojtech Bubnik 2021-01-22 15:32:36 +01:00
parent 59017a7dae
commit eef800b5c4
2 changed files with 3 additions and 2 deletions

View file

@ -132,8 +132,7 @@ ExPolygon::has_boundary_point(const Point &point) const
return false;
}
bool
ExPolygon::overlaps(const ExPolygon &other) const
bool ExPolygon::overlaps(const ExPolygon &other) const
{
#if 0
BoundingBox bbox = get_extents(other);
@ -150,6 +149,7 @@ ExPolygon::overlaps(const ExPolygon &other) const
#endif
if (! pl_out.empty())
return true;
//FIXME ExPolygon::overlaps() shall be commutative, it is not!
return ! other.contour.points.empty() && this->contains_b(other.contour.points.front());
}

View file

@ -84,6 +84,7 @@ public:
float overhangs_area = 0.f;
bool overlaps(const Structure &rhs) const {
//FIXME ExPolygon::overlaps() shall be commutative, it is not!
return this->bbox.overlap(rhs.bbox) && (this->polygon->overlaps(*rhs.polygon) || rhs.polygon->overlaps(*this->polygon));
}
float overlap_area(const Structure &rhs) const {