Subject: CGAL users discussion list
List archive
- From: Dinesh Shetty <>
- To:
- Subject: Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements
- Date: Thu, 03 May 2018 17:50:58 +0000
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-phdr: 9a23:F6OBoRB0dPVOFbA1Wg5qUyQJP3N1i/DPJgcQr6AfoPdwSPT/pcbcNUDSrc9gkEXOFd2Cra4c0KyO6+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglUijexe69+IAmrpgjNq8cahpdvJLwswRXTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Xymp4aV2Rx/ykCoIODA5/2PXhMJ+j6xVvQyvqABkzoHOfI2YLuBzcr/Bcd4YQ2dKQ8ZfVzZGAoO5d4YBAesBPeBGoInmp1sFsAawBQmyC+Pz1j9JhmL90Kon3OQgFwHJwhcgH9IUvHTVrdX1L7sdXPu6zKnN1zrDbvdW1S3h54jPdxAsuPeBVq9+f8rWzEkgDQLFjlOIpIzkOTOVzOUNvHKB4+puT+Kjk3Unqx1rrTezxccsjZfJiZwPylDK8SV5x4g0KcekR058ZN6pFoZbuSKCN4ZuXM8uX2VltDw5x7AGo5K3YjUGxZU9yxLCafGKco6F6Q/5WumLOzd3nndldaq/hxms9UigzfXxVsyu31ZLqipJi8DMtmwR2xDK5MiLV/lw80a71TaA0ADT7e5EIUQqmqbBN5EhxbswmoISsUTFACD2hF37gLGKekgg4OSl6OTqbq/4qpOBNoJ4kBzyP6Yvl8CnBOQ3KAkOX2yV+eSm073j+FX0T6hLjv0wjKbZq5DaKd4apq64GA9azp0u6xm6Dzi80dQYmWMLI05CeBKCl4TpIU3BIOjkDfejhFShiCtkx//cMb3lG5nCM3nDkKz9crZg8E5c0xE+zctf5pJRErEOOuj/Wk73tNzCDx82KRa4w+j9CIY164UFRGjaArOFKLiA9hiT9+c3Kq+NYpUUsXDzMb8+9vv2hDg4n1EaOqKm1J9SZHGjFel9OBalZi/njd4FVGsLpQEjV/fCiVuYUDcVaWzhcbg742QXCYSrFoeLfYCgnKCQlHO3H5tbfWAAC1GXGl/ncoyFX7EHbyfEcZwpqSANSbX0E9xp7hqprgKvk+M2fNqRwTURsNfY7PYw4uTSkR8o8jktVpaS1miMSyd/mWZaHmZqjpA6mlR0zxK46YY9m+ZRTIUB6PZAUwN8PpnZnbQjVoLCHznZd9LMc26IB9WrBTZrEIA0yt4KJl9hQ5Cs10+dmSWtBLARmvqAA5lmqq8=
Well I have a case here that definitely works in debug mode in 4.4 but surely fails in 4.12( I have both version of libraries).
Consider yourself lucky that you have never encountered a problem while using inexact constructions, and that you are now fixing your code to be robust for all cases.No it did not. Perhaps it compiled, and perhaps it happened to work in release mode for certain input cases, but the failure was around the corner.2D Arrangements always required exact construction and exact predicates when the split function object of the traits was used.____ _ ____ _
/_____/_) o /__________ __ //
(____ ( ( ( (_/ (_/-(-'_(/
_/On 3 May 2018 at 20:29, Dinesh Shetty <> wrote:Ok.. but switching from 4.4 to 4.12 has been huge effort. Not sure why both packages can not work under one kernel anymore. Cgal 4.4 worked for inexact construction in both debug and release for arrangement and DelaunayWhich way are you going? From arrangement to Mesh_2 or the way around?
You can use CGAL::Cartesian_converter to convert the point from the
arrangement that is using EPECK to EPICK for Mesh_2.
Basically,
CGAL::Cartesion_converter<CGAL::EPECK, CGAL::EPICK> to_epick;
EPECK::Point_3 ept;
EPICK::Point_3 pt = to_epick(ept);
HTH,
Sebastien.
On 05/03/2018 05:37 PM, Dinesh Shetty wrote:
> 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 <
> <mailto:>> 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.
>
> On Wed, Apr 25, 2018, 19:09 Dinesh Shetty <
> <mailto:>> wrote:
>
> 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 <
> <mailto:>> 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
> < <mailto:>> wrote:
>
> Well my version with 4.4 works
>
> On Wed, Apr 25, 2018 at 3:31 AM Efi Fogel
> < <mailto:>> 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
> <
> <mailto:>> 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
> < <mailto:>>
> wrote:
>
> Please provide a test case that reproduces
> the problem.
>
> ____ _ ____ _
> /_____/_) o /__________ __ //
> (____ ( ( ( (_/ (_/-(-'_(/
> _/
>
>
>
> On 24 April 2018 at 17:32, Dinesh Shetty
> <
> <mailto:>> 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
> https://stackoverflow.com/questions/50004248/cgal-fails-with-insertion-operation-in-2d-arrangements
>
>
>
>
>
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
- Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements, Dinesh Shetty, 05/03/2018
- Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements, Sebastien Loriot (GeometryFactory), 05/03/2018
- Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements, Dinesh Shetty, 05/03/2018
- Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements, Efi Fogel, 05/03/2018
- Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements, Dinesh Shetty, 05/03/2018
- Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements, Efi Fogel, 05/03/2018
- Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements, Dinesh Shetty, 05/03/2018
- Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements, Sebastien Loriot (GeometryFactory), 05/03/2018
Archive powered by MHonArc 2.6.18.