Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Sanitising polygons before insertion into polygon set

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Sanitising polygons before insertion into polygon set


Chronological Thread 
  • 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    /__________  __  //
 (____ (   (    (    (_/ (_/-(-'_(/
                         _/



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






Archive powered by MHonArc 2.6.18.

Top of Page