Subject: CGAL users discussion list
List archive
- From: Claus Volko <>
- To:
- Subject: Re: [cgal-discuss] Select all vertices
- Date: Mon, 11 Sep 2023 11:48:35 +0200
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-data: A9a23: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 A==
- Ironport-hdrordr: A9a23:PONcs6P8hOYT3cBcTsujsMiBIKoaSvp037BN7TEXdfU1SL39qy nKpp4mPHDP5wr5NEtPpTniAsW9qBHnhPxICOAqVN/IMTUO01HJEGgN1+rfKnHbak7DHr4079 YET5RD
- Ironport-phdr: A9a23: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 BUxj1knCdk=
- Ironport-sdr: 64fee289_ieudIOWYqYmOxGrWRPl2RnVH69QNexwyjaDI7i5DbabdKDJ UdzE1DpeV2ATHts79Zrn55jVm8wm+S9Z37vmGag==
Thanks, Sebastien, for your hints!
What I actually wanted to achieve was to merge vertices the coordinates of which only differ by a small difference. It seems that this code which I wrote myself does the job:
for (Polygon_mesh::Vertex_iterator v1 = polygon_mesh.vertices_begin(); v1 != polygon_mesh.vertices_end(); v1++)
{
for (Polygon_mesh::Vertex_iterator v2 = polygon_mesh.vertices_begin(); v2 != polygon_mesh.vertices_end(); v2++)
{
if (v1 == v2) continue;
if ((abs(v1->point().x() - v2->point().x()) < .01)
&& (abs(v1->point().y() - v2->point().y()) < .01)
&& (abs(v1->point().z() - v2->point().z()) < .01))
{
std::cout << "merging vertices " << v1->point() << " and " << v2->point() << std::endl;
v2->point() = v1->point();
}
}
}
{
for (Polygon_mesh::Vertex_iterator v2 = polygon_mesh.vertices_begin(); v2 != polygon_mesh.vertices_end(); v2++)
{
if (v1 == v2) continue;
if ((abs(v1->point().x() - v2->point().x()) < .01)
&& (abs(v1->point().y() - v2->point().y()) < .01)
&& (abs(v1->point().z() - v2->point().z()) < .01))
{
std::cout << "merging vertices " << v1->point() << " and " << v2->point() << std::endl;
v2->point() = v1->point();
}
}
}
Combining that with a call of stitch has the desired effect that a lot of small rectangles get merged into one big rectangle.
Am Mo., 11. Sept. 2023 um 08:52 Uhr schrieb Sebastien Loriot <>:
Yes, this will work. However, you cannot select all the vertices.
Fairing requires some unselected vertices.
Here are some useful function for selection:
expend_vertex_selection():
https://doc.cgal.org/latest/BGL/group__PkgBGLSelectionFct.html#ga49398c78507f5664b740439a92ca746b
reduce_vertex_selection():
https://doc.cgal.org/latest/BGL/group__PkgBGLSelectionFct.html#ga569127b818c04bfca7a5a5bca5b0bc24
locate a point within a mesh:
https://doc.cgal.org/latest/Polygon_mesh_processing/group__PMP__locate__grp.html
HTH,
Sebastien
On 9/11/23 06:49, Claus Volko ( via cgal-discuss
Mailing List) wrote:
> I suppose it can be done like this:
>
> std::vector<Polygon_mesh::Vertex_handle> region;
> for (Polygon_mesh::Vertex_iterator v = polygon_mesh.vertices_begin();
> v != polygon_mesh.vertices_end(); v++)
> {
> region.push_back(v);
> }
> CGAL::Polygon_mesh_processing::fair(polygon_mesh, region);
>
> Am So., 10. Sept. 2023 um 09:37 Uhr schrieb Claus Volko
> < <mailto:>>:
>
> Polygon_mesh_processing/refine_fair_example.cpp
> <https://doc.cgal.org/latest/Polygon_mesh_processing/Polygon_mesh_processing_2refine_fair_example_8cpp-example.html> contains the method extract_k_ring, which selects some vertices and puts them into a region. How can I select all vertices of a polygon mesh and put them into a region so that I can use PMP::fair with it?
>
> --
> Dipl.-Ing. Dr. Claus D. Volko, BSc
> http://www.cdvolko.net/ <http://www.cdvolko.net/>
>
>
>
>
>
> --
> Dipl.-Ing. Dr. Claus D. Volko, BSc
> http://www.cdvolko.net/ <http://www.cdvolko.net/>
>
>
>
>
> --
> You are currently subscribed to cgal-discuss.
> To unsubscribe or access the archives, go to
> https://sympa.inria.fr/sympa/info/cgal-discuss
>
--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss
--
- [cgal-discuss] Select all vertices, Claus Volko, 09/10/2023
- Re: [cgal-discuss] Select all vertices, Claus Volko, 09/11/2023
- Re: [cgal-discuss] Select all vertices, Sebastien Loriot, 09/11/2023
- Re: [cgal-discuss] Select all vertices, Claus Volko, 09/11/2023
- Re: [cgal-discuss] Select all vertices, Sebastien Loriot, 09/11/2023
- Re: [cgal-discuss] Select all vertices, Claus Volko, 09/11/2023
Archive powered by MHonArc 2.6.19+.