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: Efi Fogel <>
  • To:
  • Subject: Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements
  • Date: Wed, 25 Apr 2018 18:54:20 +0300
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:VB7yChIS3UvCIQBZwdmcpTZWNBhigK39O0sv0rFitYgRLv7xwZ3uMQTl6Ol3ixeRBMOHs6kC07KempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffwtFiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLdQgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhyUJNzA5/m/ZidF+grxHrx+6vRNz35TZbZuJOPZifK7Qe84RS2pbXsZWUixMGoyyb4UOD+EcPehYqIb9qEUKrRCjAgSjGu3vyj5Ghn/x0q01zeAhHBrJ3AwlBd0OsXDUoM/pO6cVVOC41a/FxijNYfNR3Dfy8onIchY5rPGXQbJ/a9beyUooFwPbkFqQs4LlPzeS1uUDqWSU8+1gVeephmU6qA9xuiCiytkwhoTNnI4YyVDJ+T9kzIsxO9G0UlN3bN25HJZWqiqULZF5Qtk4TGFtoCs6yqMJuZq8fCUSzZQo3R/fa/ief4iQ7BLvSP+dITlliH9mZb6znRmy8U+nyu3zUsm7zkxGoTZCktnJrnwN1hrT5dabSvZl4EutxTKC2xrQ5+xEO0w4iK7WJ4A7zrItlZcfrFzPHirsl0X3iK+WeF8k+u+t6+n/fLrmqJ6cN4FzigHxLKsunteyAes9MgcUXmib/f6w26Hk/U38WLlKlOE5krHFsJDGIsQWvrK2AwBP3YYn8hqwEjam0M8EknkaN1JFYwmKj5PpOlHLOPD3F+2zg1WqkDdxxvDJJKftApvXLiuLrLC0drl07wtQyRE40MtEz5NSELAIZvzpCWHrs9mNIxE4eyKzzOvjQIFw2IIQXm2CBoeWNarTtRmD4ed5cLrEX5McpDuoc6tt3PXpl3JswQZML5ns5oMebTWDJtojJkyYZXT2hdJYSDUFuwM/SKrhj1jQCGcPNUb3ZLo143QAMKzjFZ3KH9n/j7mI3SP9FZpTNDgfVwK8VEzwfoDBYM8iLSKfJsg7zG4BXLmlDpcvjVSg7V+jjbVgKeXQ92sTspexjNU=

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