diff --git a/qad_blockview/blockbusitem.cpp b/qad_blockview/blockbusitem.cpp index f82fa8d..b7a36c0 100644 --- a/qad_blockview/blockbusitem.cpp +++ b/qad_blockview/blockbusitem.cpp @@ -208,32 +208,32 @@ void BlockBusItem::simplify(bool full) { } } if (full) { - /*QList segs; + QList segs; for (int p = 0; p < pol.size(); ++p) { if (pointSegmentsCount(p, &segs) != 2) continue; + int s0 = segs[0], s1 = segs[1]; QPointF cp = pol[p], sp[2]; for (int i = 0; i < 2; ++i) { if (segments[segs[i]].first == p) sp[i] = pol[segments[segs[i]].second]; else sp[i] = pol[segments[segs[i]].first]; } - qDebug() << p << segs; QLineF l0(sp[0], cp), l1(cp, sp[1]); if (l0.angle() != l1.angle()) continue; - if (segments[segs[0]].first == p) { - if (segments[segs[1]].first == p) segments[segs[0]].second = segments[segs[1]].second; - else segments[segs[0]].second = segments[segs[1]].first; + if (segments[s0].first == p) { + if (segments[s1].first == p) segments[s0].first = segments[s1].second; + else segments[s0].first = segments[s1].first; } else { - if (segments[segs[1]].first == p) segments[segs[0]].first = segments[segs[1]].second; - else segments[segs[0]].first = segments[segs[1]].first; + if (segments[s1].first == p) segments[s0].second = segments[s1].second; + else segments[s0].second = segments[s1].first; } - segments.removeAt(segs[1]); + segments.removeAt(s1); pol.remove(p); for (int i = 0; i < segments.size(); ++i) { - if (segments[i].first > p) segments[i].first--; - if (segments[i].second > p) segments[i].second--; + if (segments[i].first >= p) segments[i].first--; + if (segments[i].second >= p) segments[i].second--; } p = -1; - }*/ + } } if (pcnt == pol.size()) return; updateGeometry();