Subject: CGAL users discussion list
List archive
- From: Bob Bill <>
- To: "" <>
- Subject: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation
- Date: Fri, 17 Feb 2023 09:59:55 +0000 (UTC)
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-data: A9a23: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 O8uUXus
- Ironport-hdrordr: A9a23:A9BCtqFxJPEuyza0pLqEO8eALOsnbusQ8zAX/mp2TgFYddHdss yokukbvCWE8Qr5OUtQ/exoXZPqfZqyz/BICOUqXItKPzOW3VdATrsSjrcKqgeIc0LDH6xmpM BdmsNFeb/N5DZB7foSmDPIdeoI8Z281oeJr6Py7VdICTtLRYYI1W1EIzfeKEtwRAMDIbVRLv ahDp4unVedRUg=
- Ironport-phdr: A9a23:99WH8hHL1wZCZYc2OT3+M51Gf0BGhN3EVzX9CrIZgr5DOp6u447ld BSGo6k30RmQA9SQs6IMotGVmp6jcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yN s1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffQVFiCCgbb5zK Bi6ohndu8oLioZ+N6g9zQfErXRPd+lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q 6VAADspL2466svrtQLeTQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms8 6tnVBnlgzoBOjUk8m/Yl9ZwgbpVrhyhuRJxwJPab46JO/pwea3QZskVSXZaUclKTSFNHoGxY o0SBOQBJ+ZYqIz9qkMToBu5HganGf7iyj5Mhn/ywKY31P8uEQDC3AwkBN0DsHvZodTuOaYSS ++1zK7IzTLZY/xK3jf97ZHFfxY8qv6DQbx+a9DeyVUzFwzblFWQr5ToMy2W2+kQrmSW7vRtW OGyhmMjqw99vzehy8Yvh4fHm44YzlLJ+CZ6zYopJdO1SEB1bN6lHZZQsyyXKYV7T8AsTWxup S00xLoGuZuhcygLzpQq3wXfa+CdfIeU4RLjU/iRLilihHJrfLK/gBiz/VK8xe37U8m51ktBo CldktTUtH0A1Qbf5taJR/Z+5EutxDSC2gTJ5u1aL005kazWIIM7zLEqjJocq0HDEzf2mEroi K+WcV0p+vOv6+ThY7XpupGRO5J6hw3nMqkjmtazDvg/MggIRGib/P682Kfm/ULjQbVKiuc6k qjDsJzEP8gaprS2Aw9S0oYk8RqwEzCm0NEAkXkGKlJKZg6HgpDrNlzMOvz0E/myjle2nDt2x f3LOqftDovDI3XHiLvheKxy609YyAo919Bf4JdUB6kaL/LyXk/xsMfXAx82PgG12OvmCM9y1 oMZWWKIGKOWLKTSsVqQ6uIpOOaDfJUVtyrlK/g5+/7uimc0lUIFcamzwZQXcGy4HuhhI0iBf XXsjc0OEWMTsgUjTezqk0GNUSNIZ3apRK88/TE6CIe+DYjZXIytgbqB3D26HpJMfGxGBEqMQ j/UcNDOUPgFbGeeI9RqjycffbmnUY4okx+0/keuwLVuKq/Y+zYTqIn4/Nlz/eza0x8oo29aF cOYhkuKRSlen2cMD2s83aR7qxEhlH+S2Kh/hLpTEtkFtKABaRszKZOJl78yMNv1QA+UJr9hK X6jS9SiW3QqS84phsUJaAB7EsmjiRbK22yrBaUUnvqFHs986brSil72Ics10HPazO85lVBzS MpLMWf72vBX5gHTAImPmEKcxO6xbapJ5CfW7y+YyHaW+kRRUQp+S6LACHoeYk/c8IinzlLLT 7ipT78gN1gJ0taMf41NbNChllBaXLHjNdDZNnq2gHu1DA2Uy6mkd43sem5GhX6YVRVCmAcV5 nOccw03ByPnoniESi1nFVXoJUjr9IGSsVudSUk5h0GPZkxljf+u/wINwOabQLUV164FvyEor 3N1Gky81pTYEYjIoQ0pZ6habd4nhTUPnWvEqwxwOIChJKF+lxYfdQpwpUbnyxRwDM1Jj8Erq HogyAc6J7if1RtNcDaR3Ja4PbOySCG69hGrb6SLhg/2wd+W/aBJ4/M96h3isAyvCks+4iB/y dAGm3CY55jMEE8TSceuDQBtrEg8/u6LJHNmttCxtzUkK6S/vz7c1sh8AeIkzkzlZNJDKOaeE wS0FcQGBs+oIehsml6zbxtCMvoBkcx8d86gafaC37ameeh6mzfzx25G5IR3jx7S3zt1SunPm Z0CxrvLu2nPHye5l1qnvs3tzMpOZDUWFDfjlwD1DY5WYet5eoNBWi++ZsawwNt5nZvkXXVVo UWiC10x08isYROOblb50GW8zGwvqGe80Wu9xj1wyXQyq7aHmTbJyKLkfQYGPWhCQC9ji03tK M66lYJSUE+tZgkv3ByrgCSyj6JaoKB1cjWNaVZBfy/xaWplV+O8u6GDbMhG9J4z+XoIFr7nM RbDFe+7+UBLmyr4V3NT3jU6ay2ntvCb11RhhWSRIWwy5HvVdMdsxAvOsdnVRPpfxD0DF2Fzj TjaAET5PsH8oorSzcyT9LnhBiT7DcwAFEujhZmNvya6+2BwVBi2nvTp38biDRB/yyjwkd9jS STPqh/4JIjtzaWzd+x9LSwKTBfx7dR3HoZmn84+npYVjDIQh5GR9ydbz0/iONVc3uT1a39HF ltpi5bFpRPo3kFuNCfDzYP9Un/AnpVJdtC6ZWRQ0SU4pZMCGOKf67pKmjFwq1yzoFfKYPRzq TwazOMn9H8Qh+xa3WhlhjXYGL0ZGlNUeDD9jxndpc7rt71ZPSz8Oaj1zkd1msqtSa2Psh0JE misYY8sRGdo8t8tIVvM13q14YbhHbuYJcoPrE+FmhfHiK5TJY55wfMOgWAP1XvVm3ojxqZ7i BVv2cv/p42bMyB3+6n/BBdENzrzbsdV+zf3jK8YkNzEl4aoVo5sHDkGRv6KBbqhDS4SuPL7N g2PDCx0q3GVHqDaFBOe70EupmzGEpSiPXWabHcDytAqSB6YLU1ZyAcaOVdy1oY+DRyvzdf9f V1R/TcX51Wj80AJl78uPB75SWLF4gKhazNySYLFagtf7gZFoUzSNI37jKo7Hi1V+IGgsB3YK mGfYFcABmUIV0qYQlH7a+bxo4Obo67BWbv4daCfMtDs4aREWvyFxIyiyN5j9jeIbICUO2V6S uc80QxFVGx4HMLQn3MOTTYWnmTDdZ3+xl/09ytpo8S46PmuVhjo4N7FAbpWNd8yp06ekK6DM OnWjyF8Y2U9tNtE1TrTxb4T0URHwTlpbCWoGK8cuDTlV6XWm6QMVkVeNn41P8xO9KcmmAxEO Mqdi8mvkK9xjvkyTVxCUBay/6PhLdxPKGa7OlTdAU+NP7nTPjzHzfb8ZqakQKFRhuFZ3/VRk S2cFU7oZW3Y0mS0ERuoN/pJlmeeNR1a/oCnKFB8AGjkS5TtbRjpaLefaBUnyL0zgTXBMmtOa VCUnGtcp72X6mVThfAtQgR8
- Ironport-sdr: 63ef5095_fOjHZPUuuDw1tjYOjESvLaqmXyNSDAOED3DTmEBKybur91A 8uEtZ2/RbEnotygVIC9fogRGUziWL32hMMmHr8w==
Hi,
I need to determine if a Point is inside or outside a 2D mesh (in particular a constrained Delaunay triangulation). I’ve found the answer to this question (https://stackoverflow.com/questions/22448060/how-to-determine-a-point-is-inside-2d-mesh-or-not-cgal) on SO, but I can’t understand why this query is always negative in my particular application. Please see the following MWE, where the origin is not recognised as an internal point.
I don't see what is the problem, any hint is highly appreciated.
Best,
Bob
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
#include <CGAL/Delaunay_mesh_face_base_2.h>
#include <CGAL/Delaunay_mesh_size_criteria_2.h>
#include <CGAL/Delaunay_mesher_2.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Triangulation_conformer_2.h>
#include <iostream>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Triangulation_vertex_base_2<K> Vb;
typedef CGAL::Delaunay_mesh_face_base_2<K> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, Tds> CDT;
typedef CDT::Point Point_2;
typedef CDT::Vertex_handle Vertex_handle;
int main() {
CDT cdt;
// construct a constrained triangulation
Vertex_handle va = cdt.insert(Point_2(5., 5.));
Vertex_handle vb = cdt.insert(Point_2(-5., 5.));
Vertex_handle vc = cdt.insert(Point_2(4., 3.));
Vertex_handle vd = cdt.insert(Point_2(5., -5.));
Vertex_handle ve = cdt.insert(Point_2(6., 6.));
Vertex_handle vf = cdt.insert(Point_2(-6., 6.));
Vertex_handle vg = cdt.insert(Point_2(-6., -6.));
Vertex_handle vh = cdt.insert(Point_2(6., -6.));
std::cout << "Number of vertices before: " << cdt.number_of_vertices()
<< std::endl;
typename CDT::Face_handle fh = cdt.locate(Point_2{0., 0.});
std::cout << fh->is_in_domain() << std::endl;
}
- [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation, Bob Bill, 02/17/2023
- Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation, Andreas Fabri, 02/17/2023
- Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation, Bob Bill, 02/17/2023
- Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation, Andreas Fabri, 02/17/2023
- Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation, Andreas Fabri, 02/17/2023
- Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation, Andreas Fabri, 02/17/2023
- Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation, Bob Bill, 02/17/2023
- Re: [cgal-discuss] Determine whether or not a Point is inside a 2D triangulation, Andreas Fabri, 02/17/2023
Archive powered by MHonArc 2.6.19+.