isotropic_remeshing: remeshed region

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

isotropic_remeshing: remeshed region

Robert Sage
Hi this is my first post to the CGAL forum. We are using 4.13

I want to remesh a selected surface on a mesh, then operate on only the remeshed region. For simplicity let's say my mesh is a cube, and the selected surface is one of the cube sides (square).

Adapting this example: https://doc.cgal.org/latest/Polygon_mesh_processing/index.html#title11
I have psuedo-code:

  mesh = ... my cube
  border = ... edges around my square side of the cube
  PMP::split_long_edges(border, target_edge_length, mesh);
  my_faces = ... faces on my square side
  PMP::isotropic_remeshing(
      my_faces,
      target_edge_length,
      mesh,
      PMP::parameters::number_of_iterations(nb_iter)
      .protect_constraints(true)//i.e. protect border, here
      );

Now my square is nicely remeshed. The adjacent sides also have some new faces because the border edges have been split. I would like to know which faces in the new 'mesh' lie on my square. Is there any way to get the this directly from results of isotropic_remeshing (without geometric operations like testing for overlap of the original my_faces etc).

Thanks!
Robert

Reply | Threaded
Open this post in threaded view
|

Re: isotropic_remeshing: remeshed region

Sebastien Loriot (GeometryFactory)
I haven't tried it but I'm pretty sure that if you provide a face patch
map  (face_patch_map named parameter, filled for example by a call to
CGAL::Polygon_mesh_processing::connected_components() after
split_long_edges call), the face id map will be updated and you can
use it to collect the new faces.

Sebastien.

On 01/19/2019 03:00 AM, Robert Sage wrote:

> Hi this is my first post to the CGAL forum. We are using 4.13
>
> I want to remesh a selected surface on a mesh, then operate on only the
> remeshed region. For simplicity let's say my mesh is a cube, and the
> selected surface is one of the cube sides (square).
>
> Adapting this example:
> https://doc.cgal.org/latest/Polygon_mesh_processing/index.html#title11
> I have psuedo-code:
>
>    mesh = ... my cube
>    border = ... edges around my square side of the cube
>    PMP::split_long_edges(border, target_edge_length, mesh);
>    my_faces = ... faces on my square side
>    PMP::isotropic_remeshing(
>        my_faces,
>        target_edge_length,
>        mesh,
>        PMP::parameters::number_of_iterations(nb_iter)
>        .protect_constraints(true)//i.e. protect border, here
>        );
>
> Now my square is nicely remeshed. The adjacent sides also have some new
> faces because the border edges have been split. I would like to know
> which faces in the new 'mesh' lie on my square. Is there any way to get
> the this directly from results of isotropic_remeshing (without geometric
> operations like testing for overlap of the original my_faces etc).
>
> Thanks!
> Robert
>

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