Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements


Chronological Thread 
  • From: Dinesh Shetty <>
  • To:
  • Subject: Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements
  • Date: Thu, 03 May 2018 15:37:22 +0000
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:TP0xnBL8rgvg3DCFT9mcpTZWNBhigK39O0sv0rFitYgRLf3xwZ3uMQTl6Ol3ixeRBMOHs6kC07KempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffwtFiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLdQgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhygJNzE78G/ZhM9+gr9Frh29vBFw2ZLYbZuPOfZiYq/Qf9UXTndBUMZLUCxBB5uxYYUOD+oHI+lYtIn9rEYToxu+GwasGP/vyz9VjXLxwKI60uIhHh/d3AwgBd4OsXXUrM7pO6oJXuC1ybPHzTTHb/9MxTj9743IfwknrPqRU7xwds/RxlMuFwPDlliQspDlMCmJ2eQOtGib8fRvVfihi24jrAFwrCKjydsrionMgI8e11PK9T1hzYorOdG1TFR3bN2kHZdKqS2WKop7Ttk/T2xquis3zKANt4ShcygQ0psnwgbSa/yZfIiM5RLuTOORLi15hHJhYb6/ngqy/VS5xu3yS8W50lRHojBKktnLsXAN2BjT5dadRvRh+Ueh3C6D1wHV6u5aPUA5jbTXJ4Ilz7IqlZcesV7PEjHrlEj3lqOaa0cp9+qw5+TieLrmp5ucN4FuigH5N6QjgtGwAeU+MgcQRGib+f6w1Lzi/U3iXLpHlfI2kqzDv5DbIcQXvLK2AwhQ0oo78RawEy+m0MgEnXkANF9KZB2HgJLtO13XPf/4DOy/jEixkDdw3PDLJabhA5XILnjbirjtZ7d960hGyAoy199T/ZxUCqtSaM70D0T+vdidAh4iOBGv2M7mDs9838UQQzGhGKicZY/Tt1KT5qoUI+SQeJ5d7Dr8LfU+57jvjGQysVAYdKitm5AQbSbrTbxdP0yFbC+00Z86GmAQs19mFb24uBi5STdWIk2Kcec57zA/BpihCN6aFI+oib2Fmiy8G88PPzwUOhW3CX7tMr68dbIUcivLe51ulzUFUf6qTIpzjUjz5j+/8KJuK6/vwgNdtZ/n04IrtejalBV37CAsSsrEjD7LQGZzkWcFATQx2fInrA==

I am really having hard time switching from 4.4 to 4.12. Seems like arrangement crash if I don’t use exact construction but constrained Delaunay mesh does not compile with exact construction

On Thu, Apr 26, 2018 at 12:32 AM Efi Fogel <> wrote:
The assertion that causes the error has been there for ever. It is active only in debug mode. It's possible that it has never worked in debug mode and still works in release mode. In any case I suggest that you switch to using an exact construction kernel, cause even if it has been working so far, the failure is around the corner regardless of the assertion. 

It worked for many years for all the problems I have tried, but I switch to 4.12 now it breaks

On Wed, Apr 25, 2018 at 10:55 AM Efi Fogel <> wrote:
When you use inexact construction, your program may work on some instances and may fail on other.
We do not guarantee anything.


   ____  _        ____             _
  /_____/_) o    /__________  __  //
 (____ (   (    (    (_/ (_/-(-'_(/
                         _/



On 25 April 2018 at 18:49, Dinesh Shetty <> wrote:
Well my version with 4.4 works

On Wed, Apr 25, 2018 at 3:31 AM Efi Fogel <> wrote:
This could have never worked.
You are using inexact construction.
Change the first line to:

typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;

   ____  _        ____             _
  /_____/_) o    /__________  __  //
 (____ (   (    (    (_/ (_/-(-'_(/
                         _/



On 24 April 2018 at 22:07, Dinesh Shetty <> wrote:
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::FT                                        Number_type;

typedef CGAL::Arr_segment_traits_2<Kernel>              Traits;
typedef Traits::Point_2                                 Point;
typedef Traits::X_monotone_curve_2                      Segment;

typedef CGAL::Arrangement_2<Traits>                     Arrangement;
typedef Arrangement::Vertex_handle                      Vertex_handle;
typedef Arrangement::Halfedge_handle                    Halfedge_handle;
typedef Arrangement::Face_handle                        Face_handle;
typedef Arrangement::Vertex_const_handle                Vertex_const_handle;
typedef Arrangement::Halfedge_const_handle              Halfedge_const_handle;


typedef CGAL::Arr_consolidated_curve_data_traits_2<Traits, int>
Data_traits;
typedef Data_traits::Curve_2                               Numbered_segment;
typedef CGAL::Arrangement_2<Data_traits>                   Numbered_arr;

Numbered_arr   arr;


insert(arr, Numbered_segment(Segment(Point(1.6831200000000E+02,-1.3992000000000E+01), Point( 1.2253100000000E+02, -2.0889000000000E+01)), 6));
insert(arr, Numbered_segment(Segment(Point(1.6490200000000E+02, 1.0314000000000E+01), Point( 1.0342400000000E+02, 4.2850000000000E+00)), 11));
insert(arr, Numbered_segment(Segment(Point(1.7217000000000E+02,-3.2611000000000E+01), Point( 9.9756000000000E+01, -4.3728000000000E+01)), 16));
insert(arr, Numbered_segment(Segment(Point(1.4197300000000E+02, 5.4490000000000E+00), Point( 1.4887000000000E+02, -4.0331000000000E+01)), 51));
std::stringstream ss;
Numbered_arr::Vertex_const_iterator   vit;
for (vit = arr.vertices_begin(); vit != arr.vertices_end(); ++vit) 
{
std::map<int, int> Frequency;
Numbered_arr::Halfedge_around_vertex_const_circulator eit, first;
eit = first = vit->incident_halfedges();
do 
{

++Frequency[eit->curve().data().front()];

} while (++eit != first);

ss << "@ ( " << vit->point() << ")" <<std::endl;
for(auto & itr : Frequency)
{
ss<<itr.first<<" apprears "<<itr.second<<"\n";
}

}


Numbered_arr::Edge_const_iterator eit;
std::vector<int> Pid;
for (eit = arr.edges_begin(); eit != arr.edges_end(); ++eit) 
{
Data_traits::Data_container::const_iterator  it;

if(eit->curve().data().size()> 1)
{
Pid.clear();
Pid.reserve(eit->curve().data().size());
for (it = eit->curve().data().begin(); it != eit->curve().data().end(); ++it)
{
Pid.push_back(*it);
}
ss<<"Overlap detected : ";
for(auto & itr : Pid)
ss<<itr<<" ";
ss<<"\n";
}
}



ss << arr.number_of_edges() << " edges:" << std::endl;
for (eit = arr.edges_begin(); eit != arr.edges_end(); ++eit)
ss << "[" << eit->curve() << "]" << std::endl;

On Tue, Apr 24, 2018 at 12:33 PM, Efi Fogel <> wrote:
Please provide a test case that reproduces the problem.

   ____  _        ____             _
  /_____/_) o    /__________  __  //
 (____ (   (    (    (_/ (_/-(-'_(/
                         _/



On 24 April 2018 at 17:32, Dinesh Shetty <> wrote:
When I switched to CGAL 4.12-beta2 from CGAL-4.4, I get following exception thrown
Exception: CGAL ERROR: precondition violation!
Expr: (m_traits.compare_y_at_x_2_object()(p, cv) == EQUAL) && compare_xy(cv.left(), p) == SMALLER && compare_xy(cv.right(), p) == LARGER
File: D:\PE\PE_Software\3rdParty\CGAL\CGAL-4.12-beta2\include\CGAL/Arr_segment_traits_2.h
Line: 714

Any help appreciated..

On stackExchange







Archive powered by MHonArc 2.6.18.

Top of Page