FIX: Brim may not generate with a large positive xy compensation value

studio-2344

Change-Id: I74e91ccae8465ab747f2ed7e95e3d2694238c407
(cherry picked from commit a076c0541e88c68b11cf3b91725da6f8421c405b)
This commit is contained in:
wintergua 2023-02-24 16:52:43 +08:00 committed by Lane.Wei
parent 662453f419
commit 4c93d6e59d

View file

@ -563,15 +563,18 @@ void reGroupingLayerPolygons(std::vector<groupedVolumeSlices>& gvss, ExPolygons
std::vector<int> epsIndex;
epsIndex.resize(eps.size(), -1);
for (int ie = 0; ie != eps.size(); ie++) {
if (eps[ie].area() <= 0)
continue;
double minArea = eps[ie].area();
for (int iv = 0; iv != gvss.size(); iv++) {
auto clipedExPolys = diff_ex(eps[ie], gvss[iv].slices);
double area = 0;
for (const auto& ce : clipedExPolys) {
area += ce.area();
}
if (eps[ie].area() > 0 && area / eps[ie].area() < 0.3) {
if (area < minArea) {
minArea = area;
epsIndex[ie] = iv;
break;
}
}
}