Subject: CGAL users discussion list
List archive
- From: Efi Fogel <>
- To:
- Subject: Re: [cgal-discuss] Sanitising polygons before insertion into polygon set
- Date: Fri, 7 Apr 2017 23:36:31 +0300
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-phdr: 9a23:WmSI7RxtVEUPCKPXCy+O+j09IxM/srCxBDY+r6Qd1OIfIJqq85mqBkHD//Il1AaPBtSHraocw8Pt8InYEVQa5piAtH1QOLdtbDQizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1JuPoEYLOksi7ze6/9pncbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDwULs6Wymt771zRRDqhicJNzA3/mLKhMJukK1WuwiuqwBlzoPOfI2ZKPhzc6XAdt0aX2pBWcNRWjRODIOybosEEuoPPeFXr4bjo1sFsByzCheiBOPuxD9IgXD20rM+0+k6HgHG2RYvH9MKsHjOsNr1M6ISXPmzwaLVwzvDaPZW1i386IjOah0hoPeMXahxccXL00UvGRnFgk2MpozqJTyV0v4Bs2+B7+pvU++klm0pqxlprzSx2sshjpPFi4EVx1ze6yl13YU4Kce3RUN/Z9OvDYFeuDuAN4RsR8MvW2Fotzg+yr0BoZO7eTIFyJUjxxLGbPyHcpSE7gvtVOueJTp0nn1leLW4hxa99Uiv1PfwWdWz0FZPtiZFk9/MuW4R1xHL9MSLVv9w8l2i1DuPzQzf9PxILEMumafUL5Mt2rswmYASsUTHEC/2gkL2jKqOe0o69Oio6urnYrLpppCCM495kQ7+MqE0lcy+BeQ0KBQBX2+e+eikzr3s4VX5QKlWjv0xiqTWrJ/aKt4fpqKgHgBV050j5AqiDze9y9QVhmIHLVJAeBKflYflIVDOIPbiDfe+mVugijlrx+qVdoDnGYjHe3jfjK/6L/E68F9Z0AN1zNZF5psSBKtGO+P2Qka2tdrWCVgyPAWwhurmE95gzZhNZWXaCaCQNObesESD+/k0C+iKfo4c/jjneNY/4Pu7oHE40XEacqStlc8aZnG2GftrJ22WZHPthpEKFmJc7Vl2d/DjlFDXCW0bXH21Ra9pvjw=
If you are using an exact predicate and exact construction kernel, then it seems like a bug; either in the union operation (join) or the validity check.
____ _ ____ _
/_____/_) o /__________ __ //
(____ ( ( ( (_/ (_/-(-'_(/
_/
/_____/_) o /__________ __ //
(____ ( ( ( (_/ (_/-(-'_(/
_/
On 7 April 2017 at 04:51, Ch'Gans <> wrote:
Hi there,
Every now and then when I join polygons into a polygon set, the
polygon set becomes invalid.
To make sure i am not inserting invalid polygon, i have tried to check
them all individually before calling join(), eg:
std::vector<Polygon_2> allPolygons;
buildPolygons(allPolygons);
Polygon_set_2 S;
for (const auto &poly: allPolygons)
if (!CGAL::is_valid_unknown_polygon(poly, S.traits()))
qWarning() << "Found invalid input polygon";
S.join(allPolygons.begin(), allPolygons.end());
if (!S.is_valid()) {
qDebug() << "Polygon set invalid after inserting all polygons";
}
When i run the above code, i get no "Found invalid input polygon"
warning, yet i get a final "Polygon set invalid after inserting all
polygons" along with this CGAL message:
CGAL warning: check violation!
_expression_ : false
File : /usr/include/CGAL/Arrangement_2/Arrangement_on_surface_2_global.h
Line : 1407
Explanation: An inner component is located in the wrong face.
Refer to the bug-reporting instructions at http://www.cgal.org/bug_report.html
Is this a bug, or am I not doing the right checks against the input polygons?
Chris
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
- [cgal-discuss] Sanitising polygons before insertion into polygon set, Ch'Gans, 04/07/2017
- Re: [cgal-discuss] Sanitising polygons before insertion into polygon set, Efi Fogel, 04/07/2017
- Re: [cgal-discuss] Sanitising polygons before insertion into polygon set, Julia Fischer, 04/09/2017
- Re: [cgal-discuss] Sanitising polygons before insertion into polygon set, Ch'Gans, 04/12/2017
- Re: [cgal-discuss] Sanitising polygons before insertion into polygon set, Efi Fogel, 04/12/2017
- Re: [cgal-discuss] Sanitising polygons before insertion into polygon set, Efi Fogel, 04/07/2017
Archive powered by MHonArc 2.6.18.