Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Is the following CDT buggy?

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Is the following CDT buggy?


Chronological Thread 
  • From: Bob Bill <>
  • To: "" <>
  • Subject: Re: [cgal-discuss] Is the following CDT buggy?
  • Date: Mon, 14 Mar 2022 11:09:06 +0000 (UTC)
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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 Q==
  • Ironport-hdrordr: A9a23:rLEFEKt/IyyhRO1D4LdjHjxA7skDv9V00zEX/kB9WHVpW+afkN 2jm+le8BPyhisRMUtQ4exoWZPwJ080kKQf3WB/B9mftWXd2VdAabsSj7cKoAeQfBEWlNQttp uIGpIWYLLN5BpB/KPHCWKDYrIdKbe8kJxA/d2utktFfEVRTYZBxUNVKCa+VndXai4uP/AEPa vZ3MxBpzDlXVt/VKiG7i1sZYX+m+E=
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: BtJR94lx6prkObi2qdCLyv3ZFeXJ129wP4YEC3X+YSVcgjZj0ueW4c7uHDEXfgqDnPkmZp7Ktz Jn/hjgNqBVJSFFg1G2xxBWcLYer9fVfQu8nAmoTUdl+Ms4PtGxYhHqXmzCbdckNZP+dA8axgQB 4rJ+XWAAnJmHVTY2/nPlHgo3MhDg4nLV17DCXDZT85VAQf9DKtpUJ/xZU3CLPNda63gU+HhfA1 iNPRbp83TfjTro6py6zfmi+0CfMql+MJW3lCMLnpTkFrbLCPBatzvOowpZI1zuzsQq8V+GQ/lP KHF/xIPUe74a7Av2+tuJOMx1

Thanks Sebastien and Andreas,

I see what Andreas means, indeed if I modify my example accordingly and then call refine_Delaunay_mesh_2() I have the expected error " no member named 'set_in_domain'...".

I tried to adapt it by adding typedef CGAL::Delaunay_mesh_face_base_2<K> Fb;  in place of  typedef CGAL::Constrained_triangulation_face_base_2<K,Fbb>    Fb, but I get an error "no member named 'info' in..." coming from the start->info(), so I don't really know how to adapt it in order to have both functions. 

Should I only change the typedefs?


Best,
Bob
Il lunedì 14 marzo 2022, 08:59:26 CET, Andreas Fabri <> ha scritto:


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



--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss





Archive powered by MHonArc 2.6.19+.

Top of Page