Subject: CGAL users discussion list
List archive
- From: Andreas Fabri <>
- To: "Sebastien Loriot ( via cgal-discuss Mailing List)" <>
- Subject: Re: [cgal-discuss] Is the following CDT buggy?
- Date: Mon, 14 Mar 2022 08:57:22 +0100
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-data: A9a23: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 Nv/WpLr
- Ironport-hdrordr: A9a23:mnNn66p5X6LqErFa/RoBZngaV5qxeYIsimQD101hICG9Evb0qy ncpoV46faSskdoZJhAo6H4BEDuex3hHPJOkO4s1PKZLW/bUQiTTb2Kj7GM/9SIIUSXnYRgPO VbAsxD4bbLfDtHZKjBkWyF+poboOWvweSPuuab5XJsQQZ2S7gI1WtEIzfeNFJ2ADRcDZA0D9 6966N81kGdUEVSUf/+PEAse8Lqm+fm/aiWHSIuNloZ0021tBuN0pTdKDTw5GZibxp/hYgYtV L9uyjC242fn5iAu2Xh61M=
- Ironport-phdr: A9a23:Q5BJRRYVPmz2DaS3f2+QDi//LTGL2YqcDmcuAnoPtbtCf+yZ8oj4O wSHvLMx1gWPBN+EoKsd06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQF cVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q99pHNfQlEniexba1wI Rm5sAndq9UaipZ+J6gszRfEvmFGcPlMy2NyIlKTkRf85sOu85Nm7i9dpfEv+dNeXKvjZ6g3Q qBWAzogM2Au+c3krgLDQheV5nsdSWoZjBxFCBXY4R7gX5fxtiz6tvdh2CSfIMb7Q6w4VSik4 qx2UxLjljsJOCAl/2HWksxwjbxUoBS9pxxk3oXYZJiZOOdicq/BeN8XQ3dKUMRMWCxbGo6yb IUBAOUPMuhFsYf9qVsAohmiCgejH+7v1jxFi2Xq0aEm3eksEwfL1xEgEdIUt3TUqc34ObsUU e+o1qnH0y/Mb+hL0jn98ofHaQohofCRVr93a8XRz1QgFxnbgVqKsozpJT2V2f4WvGiB7uptT u2vhHAgqwF0vDev2t0si4nHho0P1l/E6SJ5wJw1JNGiVEF7ZtukHYJWuiqHOIR4XtksTHt0u CYm1LIGo5i7cTAKxZklyRPSdf6Kf5aU7h/gVuucPyt0iXFrdrywiRu//kitx+LiWsS2zFpHs ytIn9fPu30NyRHf9MuKR/Vh8kql3zuEyg7d6uZBIU8ulKrbLYYszaI/lpUJtUTPBCj2mF/5j KOOd0Uk/PKo6+X9bbn8qJ+cLYl5gRz9PKQ2gsGzHOY1PwsUU2WV5+iwzqDv8VD9TblQk/E7n KrUvIjEKcgBu6K0AxVZ3psg5hu9FTuqztQVkHYBIVlYYhyIlZLpNEvLIP3gDfewnVCskDBzy v3HJLHhB5LNI3jAnbrvZ7p97lRTyAs3zdxG4JJUF60BLOj0Wk/vtNzUFBk5PBKow+r/CdV90 J0RWX6XD6OEMq7fskWE6+wxL+WWeYMZpTLwJ+I46/PgjnI1gVodcrOo3ZsTZnC4BPNmI0CBb HX2hNcODH0KsRQkQ+zxklGCXyRcaG2oX6I9/Tw7B5ypDYDGRo+znLyBxie6HpNMaW9aFlCMF m3odoWeV/gQbyKSJ9dtkjofWre5UY8uyQmutBPmy7pgNufY5zUUtYj/29ht++3TiRYy+CRoA MSSyW6NS3h4kX4JRz8twK9/vFd9ykyY3Khjg/1YEMRT6OlTXgc7M57c1e16BMroVgLPZNfaA GugWcisVDEtUsoqkZhJeFd4A9zkjxbZ3iPsDaVSjK2OHJVz86TS2D/6KM95jnrHz6I8lEJ1f 81UKGeai75jogjPG5bSwQLejLevba1a3SjX9W7Fw3DJp1BdSAc3UKPLWjcUaULS6Nj4/UjfV KT9NbNyeDBMw8eZNqpHbJXNik9HQ+ureM/aZHiwnHv2ABKgybaFbY6scGIYlDvcAQAPnAkXu HqHLgMjHTzphmvfCD1oGhrLYljwsKM2/Hi0R0txwwCRZFB6zJK0/AQUjLqSUaVA8KgDvXIIr TluEV+ml/zfAcCB715oeqlGbNompllO33jYnwNwOZmtM7pziFcVbwNtrgXl0BAhWdYIqtQjs H5/lFk6Eqmfyl4UMmrAhfgYW5XSI2j2plW0brLOn0vZ25CQ87sO7/IxrxPiuhuoHwws6SYvy MFbhl2b4JiCFw8OSdTpSE9i/h52vbzTeW8z7onO1FVjPK6xvyPYytwgD/ci0AfmdNBaY+ufD AGnK8QBHIC1LfAy3V2gbxYKJudXoacyM9mrfuDA1qehJudIkz+hiGlb+pFz20mQ8DBtDOXP2 sVN2OmWiy2AUTq0l1K9qob3lIRDMCkVBXa6wDP4CZR5OOt3ettbUiGrKsyzg9Jjm9jqRX4e8 lO/b78f8OmufxfaL1n03AkKkF8SvWTigyyziTp9jzAuqKObmi3I2eXrMhQdaCZNQyF5gFHgL JLR7ZhSVVW0bwUviBqu5Frrj6ldqqNlKmDPQEBONyHoJmBmW6G0u/KMeclKoJ8vtCxWVqy7b zX4Avb0pRcA3ir4WWVXzio6Xz6nvZD0gwZrhmuWMHFpvTzSfsQxjRbT6drAROJAiyIcTXod6 3GfDVy9Mt+1uNSMws6c4qblDST4D8wVKHK7nubi/GOh6GZnAAOyhaW2k9zjS00h1DPjksNtX mPOpQr9ZY/i0+K7N/hmdw9mHgyZiYIyF4dgn483nJxV12Idg8Df9HwLi2r6KpNV0KjkbVICS DkOzsLP8Qbs01FkNGPPzIX8HCb4oIMpd5yhb2Ua1zhopclMBL2Z5acCkyJ/uFuQog/WZPVhh CYTwPAy72QLxeoOvUB+q0fVSqBXFk5eMyv2kh2O5N3rt6RbalGkdr2o3VZ/l9SsZF2bijlVQ 22xOpIrHCsqq956LEqJynr4rIftZNjXa9sX8BySiRbJyeZPeto9kf8DhCwvPmyY3zVtwug3l xFnxte0tYKdKk1i8aW8DwJCJzP8bN8U4CCrhqFb1sqbxIGgGJx9Fy5DBcS4C6nyVmtL5LK+b FbrcnV0o2zTAbfFGA6D9Epq52nCFZymLTDfJXUUy8ljWAjIIUVehA4OWzBp+/xxXguuxcHnb AJ4/mVIuQ6+8UEKk7s5cUCkAjS6xk/gcDo/RZmBIQAD6whD4x2QKsmC9qdpGCoe+JS9rQuLI 2jdZgJSDGhPVFbXYjKrdrSo+9TE9PCVQ+SkKP6bK7yIpfZTXuzOy5ulyIpO8DuLM8iTJGhsB vYn3VBSG3t+Ho6K/ldHAzxSjC/LY8OB8V21/CFto8mktvriUhjuzYSCDL5fLc9+9Rm9naCZJ qibgyMzelM6ntscgHTPzrYYxlsbjSpjIiKsHbo3vinIVKvMm6VTAk1Te2ZpOcBP9a55whhVN JuRlIbuzrAhxK1QaR8NRRn7l8quf8BPP2ytKAaNGhOQLLrfbSXX2ZPyaKK4DLpNkKNTqR32v zuHW1f/JGaGnjjtERexMadKgT3+XlQWuZnhIEYrUjOlFYm5LETjbZgs13U32eFm3yKQcz9Nd 2cjNRMU6ebKpXRRhvE1c4BYxlxiK+TM2yOQ7u2Cb40TreMuGCN/0eRT/HU9zbJRqiBCXv183 iXI/JZopBm9n++DxyACMlIGoytXhI+NoURpOLnIvphGV3He+RsR7GKWQx0UrtphA9frtuhe0 N/K3K70LT5D9ZrT865+T4DML9mbNXM6LRfzMGCSCQxYHWXtMGjegwlaje3U8WOV6J43ttmkm ZYDTKNaSE1gFv4eDRcAfpRKK5N2UzU41L+D2ZdXtTzl9l+IHZQc58uXBZfwSb31JT2UjKdJf U4NyLL8d8EIM5HjnlZlYR98lZjLHEzZWZZMpDdgZ0k6uhYokjA2Q2st1kbicg7o7mUUEKv+l xg6kAZ3eqIj/T324n84K13PqTcqgUc4ksnimyHXezn0ZvTVP8keG2/vuk49P4muCR5ydhG3l Fd4OS3sGfRUiOYwLiZugQ7Y/JxSBbhbU60CZhIMj6LyBb1gwRFXrSOpwlVC7O3OBM55lQckR pWrqmpJxwNpaNNdzUn4K6dOy1VMnLOAtyS00foghgQZIhRVmIt9UCEFv0kFKqM3KSOj4ut2+ EqJnD4RIQDkttJ05PdtqxNmfeGJzial1KNfbEevN6qZIr/L4wD9
- Ironport-sdr: fWdBuD2H5edxJS6tVtIFVMSG5BjU28+0zQzFndtOJC13eSK1ZAp7TxbRIXIdMgQ/1ak3R/UBdD WR3U/mux4rgYRzZdo6EYek70xi1oYgkxZ6GH5Ql8Z6bnGi+sEQqFrEJ6yhz7nLKzuvYLI80Qdu FBENZuyNCYHXz3nFXGOWq0uvDIEcIa/u6gv8ENn/FNasDiqjSr8B6hRBy6d3g5ZljwjzxX7lPS wpYmaV3RrlHDcv6jVAoZnKx8y94IwDAn+thm9acvR85LuQZTwo2zq6sb5qRUFcseSDQF2AtbEm 6vQohNysVp1Tn7pmU2hta38C
Hello,
Note that write_VTU is documented in the CGAL package 2D Conforming Triangulations and Meshes.
When you call a function like refine_Delaunay_mesh() you define the domain (for example the interior
of your polygon, as a domain, otherwise the convex hull of the points is the domain.
When you follow the example Sebastien just gave you must adapt it, as the Delaunay_mesh_face_base_2
class has a function to set the domain.
https://doc.cgal.org/latest/Mesh_2/classDelaunayMeshFaceBase__2.html#ac4a80317799961e7830b9690121d6bdc
Best,
Andreas
On 3/14/2022 8:40 AM, Sebastien Loriot ( via cgal-discuss Mailing List) wrote:
A triangulation of a point set is a triangulation of the convex hull of the points. If some constrain edges are added, you then have the guarantee that those edges will be present in the triangulation of the--
convex hull of your points.
If your constraints define a closed shape then you need a flooding like
algorithm to only pick the triangles that are inside the shape, like in
this example:
https://doc.cgal.org/latest/Triangulation_2/Triangulation_2_2polygon_triangulation_8cpp-example.html
Best,
Sebastien.
On 3/13/22 02:46, Bob Bill ( via cgal-discuss Mailing List) wrote:I am given the vertices of a polygon, and I need to mesh it. I am following one of the first examples in the CDT package documentation.
The code is the following:
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
#include <CGAL/Delaunay_mesher_2.h>
#include <CGAL/Delaunay_mesh_face_base_2.h>
#include <CGAL/Delaunay_mesh_size_criteria_2.h>
#include <CGAL/IO/write_VTU.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 CGAL::Delaunay_mesh_size_criteria_2<CDT> Criteria;
typedef CDT::Vertex_handle Vertex_handle;
typedef CDT::Point Point;
int main()
{
CDT cdt;
Vertex_handle va = cdt.insert(Point(-1,-1));
Vertex_handle vb = cdt.insert(Point(-1,-0.25714));
Vertex_handle vc = cdt.insert(Point(-1.5,-1.4));
Vertex_handle vd = cdt.insert(Point(1.3,-1.2));
Vertex_handle ve = cdt.insert(Point(1.3,0.5));
Vertex_handle vf = cdt.insert(Point(1, 0.45714));
Vertex_handle vg = cdt.insert(Point(1, -1));
cdt.insert_constraint(va, vb);
cdt.insert_constraint(vb, vc);
cdt.insert_constraint(vc, vd);
cdt.insert_constraint(vd, ve);
cdt.insert_constraint(ve,vf);
cdt.insert_constraint(vf,vg);
cdt.insert_constraint(vg,va);
std::cout << "Number of vertices: " << cdt.number_of_vertices() << std::endl;
std::cout << "Meshing the triangulation..." << std::endl;
// CGAL::refine_Delaunay_mesh_2(cdt, Criteria(0.125, 0.5));
std::cout << "Number of vertices: " << cdt.number_of_vertices() << std::endl;
std::ofstream output("intersected_mesh.vtu");
CGAL::write_vtu(output, cdt);
//Show the vertices of the triangulation
for(auto it = cdt.finite_faces_begin();it!=cdt.finite_faces_end();++it){
std::cout << cdt.triangle(it) <<'\n';
}
}
If I look at the .vtu file, it seems to have the correct shape (see attached image). However, after I printed the vertices for each triangle, it appears that one element of the triangulation is also the one with vertices
(-1, -0.25714)
(1, -1)
(1, 0.45714)
which should not be there since is not inside that polygon. Isn't this a bug? If not, how can I create a mesh for which this is avoided? I mean, I'd like to have all the triangles inside the domain.
Best regards,
Bob
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
Andreas Fabri, PhD
Chief Officer, GeometryFactory
Editor, The CGAL Project
- [cgal-discuss] Is the following CDT buggy?, Bob Bill, 03/13/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Sebastien Loriot, 03/14/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Andreas Fabri, 03/14/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Bob Bill, 03/14/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Andreas Fabri, 03/14/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Andreas Fabri, 03/15/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Andreas Fabri, 03/14/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Bob Bill, 03/14/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Andreas Fabri, 03/14/2022
- Re: [cgal-discuss] Is the following CDT buggy?, Sebastien Loriot, 03/14/2022
Archive powered by MHonArc 2.6.19+.