{"action":"reopened","issue":{"url":"https://api.github.com/repos/CGAL/cgal/issues/3267","repository_url":"https://api.github.com/repos/CGAL/cgal","labels_url":"https://api.github.com/repos/CGAL/cgal/issues/3267/labels{/name}","comments_url":"https://api.github.com/repos/CGAL/cgal/issues/3267/comments","events_url":"https://api.github.com/repos/CGAL/cgal/issues/3267/events","html_url":"https://github.com/CGAL/cgal/issues/3267","id":346500770,"node_id":"MDU6SXNzdWUzNDY1MDA3NzA=","number":3267,"title":"CDT_plus_2 should prevents the insertion of twice the same constraint","user":{"login":"yobeonline","id":6747553,"node_id":"MDQ6VXNlcjY3NDc1NTM=","avatar_url":"https://avatars0.githubusercontent.com/u/6747553?v=4","gravatar_id":"","url":"https://api.github.com/users/yobeonline","html_url":"https://github.com/yobeonline","followers_url":"https://api.github.com/users/yobeonline/followers","following_url":"https://api.github.com/users/yobeonline/following{/other_user}","gists_url":"https://api.github.com/users/yobeonline/gists{/gist_id}","starred_url":"https://api.github.com/users/yobeonline/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yobeonline/subscriptions","organizations_url":"https://api.github.com/users/yobeonline/orgs","repos_url":"https://api.github.com/users/yobeonline/repos","events_url":"https://api.github.com/users/yobeonline/events{/privacy}","received_events_url":"https://api.github.com/users/yobeonline/received_events","type":"User","site_admin":false},"labels":[{"id":209148296,"node_id":"MDU6TGFiZWwyMDkxNDgyOTY=","url":"https://api.github.com/repos/CGAL/cgal/labels/Pkg::Triangulation_2","name":"Pkg::Triangulation_2","color":"c2e0c6","default":false},{"id":134003709,"node_id":"MDU6TGFiZWwxMzQwMDM3MDk=","url":"https://api.github.com/repos/CGAL/cgal/labels/bug","name":"bug","color":"fc2929","default":true}],"state":"open","locked":false,"assignee":{"login":"afabri","id":3263539,"node_id":"MDQ6VXNlcjMyNjM1Mzk=","avatar_url":"https://avatars2.githubusercontent.com/u/3263539?v=4","gravatar_id":"","url":"https://api.github.com/users/afabri","html_url":"https://github.com/afabri","followers_url":"https://api.github.com/users/afabri/followers","following_url":"https://api.github.com/users/afabri/following{/other_user}","gists_url":"https://api.github.com/users/afabri/gists{/gist_id}","starred_url":"https://api.github.com/users/afabri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/afabri/subscriptions","organizations_url":"https://api.github.com/users/afabri/orgs","repos_url":"https://api.github.com/users/afabri/repos","events_url":"https://api.github.com/users/afabri/events{/privacy}","received_events_url":"https://api.github.com/users/afabri/received_events","type":"User","site_admin":false},"assignees":[{"login":"afabri","id":3263539,"node_id":"MDQ6VXNlcjMyNjM1Mzk=","avatar_url":"https://avatars2.githubusercontent.com/u/3263539?v=4","gravatar_id":"","url":"https://api.github.com/users/afabri","html_url":"https://github.com/afabri","followers_url":"https://api.github.com/users/afabri/followers","following_url":"https://api.github.com/users/afabri/following{/other_user}","gists_url":"https://api.github.com/users/afabri/gists{/gist_id}","starred_url":"https://api.github.com/users/afabri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/afabri/subscriptions","organizations_url":"https://api.github.com/users/afabri/orgs","repos_url":"https://api.github.com/users/afabri/repos","events_url":"https://api.github.com/users/afabri/events{/privacy}","received_events_url":"https://api.github.com/users/afabri/received_events","type":"User","site_admin":false},{"login":"lrineau","id":5746675,"node_id":"MDQ6VXNlcjU3NDY2NzU=","avatar_url":"https://avatars1.githubusercontent.com/u/5746675?v=4","gravatar_id":"","url":"https://api.github.com/users/lrineau","html_url":"https://github.com/lrineau","followers_url":"https://api.github.com/users/lrineau/followers","following_url":"https://api.github.com/users/lrineau/following{/other_user}","gists_url":"https://api.github.com/users/lrineau/gists{/gist_id}","starred_url":"https://api.github.com/users/lrineau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lrineau/subscriptions","organizations_url":"https://api.github.com/users/lrineau/orgs","repos_url":"https://api.github.com/users/lrineau/repos","events_url":"https://api.github.com/users/lrineau/events{/privacy}","received_events_url":"https://api.github.com/users/lrineau/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/CGAL/cgal/milestones/33","html_url":"https://github.com/CGAL/cgal/milestone/33","labels_url":"https://api.github.com/repos/CGAL/cgal/milestones/33/labels","id":3296774,"node_id":"MDk6TWlsZXN0b25lMzI5Njc3NA==","number":33,"title":"4.12.1","description":"","creator":{"login":"lrineau","id":5746675,"node_id":"MDQ6VXNlcjU3NDY2NzU=","avatar_url":"https://avatars1.githubusercontent.com/u/5746675?v=4","gravatar_id":"","url":"https://api.github.com/users/lrineau","html_url":"https://github.com/lrineau","followers_url":"https://api.github.com/users/lrineau/followers","following_url":"https://api.github.com/users/lrineau/following{/other_user}","gists_url":"https://api.github.com/users/lrineau/gists{/gist_id}","starred_url":"https://api.github.com/users/lrineau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lrineau/subscriptions","organizations_url":"https://api.github.com/users/lrineau/orgs","repos_url":"https://api.github.com/users/lrineau/repos","events_url":"https://api.github.com/users/lrineau/events{/privacy}","received_events_url":"https://api.github.com/users/lrineau/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":58,"state":"open","created_at":"2018-04-25T15:21:44Z","updated_at":"2018-08-02T13:12:24Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2018-08-01T08:34:51Z","updated_at":"2018-08-02T13:12:24Z","closed_at":null,"author_association":"NONE","body":"## Updated Issue Details, @lrineau 2018/08/02\r\n\r\nThe following test case should not loop, because it uses CDT_plus_2, that should prevent the insertion of twice the same constraint. See https://github.com/CGAL/cgal/issues/3267#issuecomment-409906745.\r\n\r\n---\r\n*The old title was:* **[Probable infinite loop] Constrained 2D Delaunay triangulation : inserting a set of constraints takes forever**\r\n## Issue Details\r\nCGAL 4.11.3 introcuded a problem in the following code snippet (it was not present with previous releases (tested 4.11, 4.11.1, 4.11.2)). Inserting a constraint causes the insert_constraint method to never return.\r\n\r\nThe set of constraints are shown in the picture below:\r\n![cgalinfloop](https://user-images.githubusercontent.com/6747553/43510309-8b2a170c-9575-11e8-8754-8a1f4d7c9491.png)\r\n\r\n## Source Code\r\n\r\n```c++\r\n#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>\r\n#include <CGAL/Constrained_Delaunay_triangulation_2.h>\r\n#include <CGAL/Constrained_triangulation_plus_2.h>\r\n#include <CGAL/Triangulation_face_base_2.h>\r\n#include <CGAL/Triangulation_vertex_base_2.h>\r\n#include <CGAL/Delaunay_triangulation_2.h>\r\n#include <CGAL/Projection_traits_xy_3.h>\r\n\r\nusing K1 = CGAL::Exact_predicates_inexact_constructions_kernel;\r\nusing K = CGAL::Projection_traits_xy_3<K1>;\r\n\r\nusing Vb2 = CGAL::Triangulation_vertex_base_2<K>;\r\nusing Fb2 = CGAL::Constrained_triangulation_face_base_2<K>;\r\n\r\nusing TDS2 = CGAL::Triangulation_data_structure_2<Vb2,Fb2>;\r\nusing Itag2 = CGAL::Exact_predicates_tag;\r\nusing CDT2_Base = CGAL::Constrained_Delaunay_triangulation_2<K,TDS2,Itag2>;\r\n\r\nusing Triangulation = CGAL::Constrained_triangulation_plus_2<CDT2_Base>;\r\nusing point = Triangulation::Point;\r\n\r\nvoid main(void)\r\n{\r\n  Triangulation t;\r\n\r\n  point const p1(866863.099976, 2025662.79999,0);\r\n  point const p2(866876.599976, 2025663.20001,0);\r\n  point const p3(866873.799988, 2025719,0);\r\n  point const p4(866859.599976, 2025718.09998,0);\r\n\r\n  point const p6(866872.099976, 2025645.29999,0);\r\n  point const p7(866888.599976, 2025646.20001,0);\r\n  point const p8(866887.599976, 2025663.59998,0);\r\n  point const p9(866870.599976, 2025663,0);\r\n\r\n  auto const insert = [&t,p1,p2,p3,p4,p6,p7,p8,p9]()\r\n  {\r\n    { // green\r\n      t.insert_constraint(p1,p2);\r\n      t.insert_constraint(p2,p3);\r\n      t.insert_constraint(p3,p4);\r\n      t.insert_constraint(p4,p1);\r\n    }\r\n\r\n    { // blue\r\n      t.insert_constraint(p6,p7);\r\n      t.insert_constraint(p7,p8);\r\n      t.insert_constraint(p8,p9); // *\r\n      t.insert_constraint(p9,p6);\r\n    }\r\n  };\r\n  \r\n  insert();\r\n  insert(); // this call never ends beacuse of the marked line in the insert lambda.\r\n}  \r\n```\r\n\r\nI admit the use case is a bit contrived (inserting twice the same data). I don't know how to generate it in a simpler manner. I figured it was still worth submitting it.\r\n\r\n## Environment\r\n\r\n* Windows 64 bits\r\n* Compiler: vs 2013 32 and 64 \r\n* Release or debug mode: both\r\n* Specific flags used (if any): none\r\n* CGAL version: 4.11.3\r\n* Boost version: 1.65.1\r\n* Other libraries versions if used (Eigen, TBB, etc.): none\r\n\r\n"}}
{"actor":{"display_login":"lrineau"}}