Subject: CGAL users discussion list
List archive
- From: "Sebastien Loriot (GeometryFactory)" <>
- To:
- Subject: Re: [cgal-discuss] CGAL fails with insertion operation in 2D arrangements
- Date: Thu, 3 May 2018 18:06:53 +0200
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-phdr: 9a23:XGUS6hYauh7Jr5VWXW5uOtv/LSx+4OfEezUN459isYplN5qZr8q9bnLW6fgltlLVR4KTs6sC17KN9fi4EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCazbL9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjmk8qxlSgLniD0fOjAk7m/XhMx+gqFVrh2vqBNwwZLbbo6OOfpifa7QZ88WSXZPU8tTUSFKH4Oyb5EID+oEJetUoZTzqEUVohSkHgmsGOLvxSFOhnTr26M61P4hEQDB3Aw8AtkCtHXao8vyNKcXT++10LPIzDXDYfxMxTj99I/IcgohoP2JU757bM3cyVIrFwPClFWQqIvlPy+P2uQIt2iW9OVgVee1hG4mrwF9uCSgxsApioTQgI8e117K9SJ8wIkvJN24TlZ2YcW4EJRKqy6aNIx2Qt08TGFytiY6zroGuJChcCcWz5QnwhjSYOGEfYiQ+h/vSvqdLDNiiH9meL+znQu+/Vajx+HmS8W50lRHojJHn9TPrHwByRPe58mdRvdg+kqs1yyD2gLT5+xCPEs6j7DUK4Q7zb41jpcTsVrMHivxmEjuia+ZbEQk+uyx5+XpeLXquoaQN4Fphgz8MKkigMO/AeM/MggBW2iU5/6w26Hk/U38WLlKj/s2nbfFsJ3CO8gXuqq0DxVW34sj8RqzEimq3dcCkXUaLl9IegqLj43zNFHPJPD4A+2/g1OpkDpz3PDGOrrhAo/MLnjEjLftZ7N960pHxQo8yNBQ/ZNUCrUbLP3vXU/xscTUDgUlPAys3+bnFNJ925sCVmKAGKCZNLrevkKJ5uI0P+aMeZQVuC3mJvg+5//uiGc5lkUHcamo25sXcnG4Ee58L0WXe3q/yusGRGwFtw57QO3xg0CZShZSYWyzVuQy/GIVEoWjWM34S4qkm6CA0SHzOppMZ2daQhCjHHDtepmeStkFYz6VON4g2HRQTrymUY4myVersCf1zrNmKqzf/ShO5sGr78R8++CGzUJ6zjdzFcnIizjcHVExpXsBQnoN5I46pEV8zlmZ1q0h2q5XENVS47VCVQJobMeAndw/MMj7X0f6RvnMUEyvG4z0DjQ4T9Z3yNgLMR4kRoeSyyvb1i/vOIc70ryGAJturPDZ1nn1YtlnkzPIjfZ+yVYhRcRLOCutgastrwU=
Which 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
- 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.