bool Polygon::intersectBool(const Arc& arc) const { myFloat rad = arc.getLength() / 2 + maxRadius; Point arcCenter = (arc.position.point + arc.getEnd().point) / 2; if ((arcCenter - center).length() > rad) { return false; } Point last = pnts.back(); for (Point act : pnts) { if (!arc.intersectionPoint(Line(last, act)).position.invalid()) { return true; } last = act; } return false; }