Skip to Content.
Sympa Menu

cgal-discuss - Re:[cgal-discuss] Have trouble usingNamedParameters"face_index_map" in "corefine_and_compute_intersection"

Subject: CGAL users discussion list

List archive

Re:[cgal-discuss] Have trouble usingNamedParameters"face_index_map" in "corefine_and_compute_intersection"


Chronological Thread 
  • From: "蓝色追风" <>
  • To: "cgal-discuss" <>
  • Subject: Re:[cgal-discuss] Have trouble usingNamedParameters"face_index_map" in "corefine_and_compute_intersection"
  • Date: Sat, 13 May 2023 16:12:07 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:DX2QbKrII1jjwkl6RSvu0qYaV5r8eYIsimQD101hICG9Ffb5qy nOppUmPHrP4wr5N0tQ+uxoVJPsfZq/z+8R3WBhB9mftWDd0QOVxepZgrcKrQeNJ8SHzJ876U 4aSdkdNPTASWBDyeLbxCXQKadF/PC3tJiRwcPXz3JgVmhRGsddxjY8Mj7eI2lfZCxnIrUefa D32uN34wKZPXAWY62AdwA4Y9Q=
  • Ironport-phdr: A9a23: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 A==
  • Ironport-sdr: 645f9ac0_G6ZbzZoEm5De7xmdgOZm5NoVpIEwDSIgAkeL6WxVWTpa9QD nAGMZAA/Jc/LNS/6nboADhTpeLe7146IgvrpvMQ==

Hi again, 

 

Sorry for the delay response. This is a simple example code for my problem. It’s about the intersection between two boxes. 

 

//// 


read_obj("box.obj");///A simple function read shape information from OBJ file generated from Blender

std::vector<std::array<FT,3> > points;

std::vector<CGAL_Polygon> polygons;
 for(int i=0; i<vertices.size(); i++)
 {
      points.push_back(CGAL::make_array<FT>(vertices[i].x, vertices[i].y, vertices[i].z));
 }
   
 for(int i=0; i<triangles.size(); i++)
  {
      CGAL_Polygon p;
      p.push_back(triangles[i].v1);
      p.push_back(triangles[i].v2);
      p.push_back(triangles[i].v3);
      
      polygons.push_back(p);
  }


Mesh mesh; 

PMP::polygon_soup_to_polygon_mesh(points, polygons, mesh); 

Mesh mesh_copy = mesh; 

 

PMP::transform(CGAL::Aff_transformation_3<Kernel>(CGAL::Translation(), Kernel::Vector_3(0.0, 0.3, .5)), mesh); 

PMP::transform(CGAL::Aff_transformation_3<Kernel>(0,-1,0, 

                                               1,0,0, 

                                               0,0,1,1), mesh); 

 

Mesh out1; 

 

Mesh::Property_map<Mesh::Face_index, int> mesh1_id = mesh.add_property_map<Mesh::Face_index, int>("f:id", -1).first; 

Mesh::Property_map<Mesh::Face_index, int> mesh2_id = mesh_copy.add_property_map<Mesh::Face_index, int>("f:id", -1).first; 

Mesh::Property_map<Mesh::Face_index, int> out1_id = out1.add_property_map<Mesh::Face_index, int>("f:id", -1).first; 

     

 for(Mesh::Face_index f : faces(mesh)) 

 { 

    mesh1_id[f] = 1; 

 } 

 for(Mesh::Face_index f : faces(mesh_copy)) 

 { 

    mesh2_id[f] = 2; 

 } 

     

 Visitor visitor; 

 visitor.properties[&mesh] = mesh1_id; 

 visitor.properties[&mesh_copy] = mesh2_id; 

 visitor.properties[&out1] = out1_id; 

 

bool valid_intersect = PMP::corefine_and_compute_intersection(mesh, mesh_copy, out1, CGAL::parameters::visitor(visitor)); 

 

Mesh out1_part1; 

for(Mesh::Face_index f : faces(out1)) 

{ 

    if(out1_id[f] == 2) 

    { 

           std::vector<Mesh::Vertex_index> tmp; 

           auto tp = CGAL::vertices_around_face(out1.halfedge(f), out1); 

           for(auto vd:tp) 

           { 

                  Kernel::Point_3 tmp_P = out1.point(vd); 

                  Mesh::Vertex_index index = out1_part1.add_vertex(tmp_P); 

                  tmp.push_back(index); 

           } 

           out1_part1.add_face(tmp[0], tmp[1], tmp[2]); 

    } 

  } 

////

 

Here are the two boxes (mesh and mesh_copy) and the intersection polyhedron (out1). But the above code can only capture two triangles(out_part1) from Box 2. While for the command “:corefine_and_compute_union”, the above code works very well. Do you have any suggestions regarding this problem? 

 

Thanks again. 

 

Best wishes, 

Daye 


mesh and mesh_copy




out1



out_part1




蓝色追风




Original Email

Sender:"cgal-discuss"< >;

Sent Time:2023/5/11 8:35

To:"cgal-discuss"< >;

Subject:Re: [cgal-discuss] Have trouble usingNamedParameters"face_index_map" in "corefine_and_compute_intersection"


The code used is exactly the same, so if you made it work with one
function it should work with the second one. I suggest you look at the
difference you have in function calls to see where it could come from.
Without a minimal example showing the problem it would be hard to help more.

Best,

Sebastien.

On 5/10/23 14:32, "蓝色追风" ( via cgal-discuss Mailing
List) wrote:
> Yes, with "PMP::corefine_and_compute_union" I can distinguish which
> sub-mesh of the union belongs to which original mesh, just like the
> example code you sent me. But it seems that this does not work with
> "corefine_and_compute_intersection". Is it because some meshes are
> recreated during the intersection operation? Do you have any suggestions
> on how to distinguish the faces in the resulting mesh after "intersection"?
>
> Best wishes,
> Daye
> ------------------------------------------------------------------------
>
>
> 蓝色追风
>
>
>
>
>
>
>
> Original Email
>
> Sender:"cgal-discuss"< >;
>
> Sent Time:2023/5/10 11:27
>
> To:"cgal-discuss"< >;
>
> Subject:Re: [cgal-discuss] Have trouble using
> NamedParameters"face_index_map" in "corefine_and_compute_intersection"
>
>
> The corresponding mesh is passed as a reference in visitor calls so you
> can compare the address of the mesh with the one you are interested in.
>
> Best,
>
> Sebastien.
>
> On 5/10/23 11:19, "蓝色追风" ( via cgal-discuss Mailing
> List) wrote:
> > Hi, again,
> >
> > I tried your suggestion and implemented the example code you gave me.
> > However, for many faces of intersection, the visitor cannot recognize
> > whether they come from "mesh1" or "mesh2". Taking this example
> >
> (https://github.com/CGAL/cgal/blob/master/Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp ) as an example, many "out_id" of the intersected mesh are "-1". Do I need to handle the intersected mesh specially for a relatively complicated mesh?
> >
> > Thanks again.
> >
> > Best wishes,
> > Daye
> > ------------------------------------------------------------------------
> >
> >
> > 蓝色追风
> >
> >
> >
> >
> >
> >
> >
> > Original Email
> >
> > Sender:"cgal-discuss"< >;
> >
> > Sent Time:2023/5/10 8:48
> >
> > To:"cgal-discuss"< >;
> >
> > Subject:Re: [cgal-discuss] Have trouble using Named
> > Parameters"face_index_map" in "corefine_and_compute_intersection"
> >
> >
> > face_index_map is not an output parameter. It is used internally by the
> > code to avoid using a hash map. If you want to track correspondance
> > between input and output, you should use the visitor:
> >
> >
> https://doc.cgal.org/latest/Polygon_mesh_processing/classPMPCorefinementVisitor.html
> >
> >
> https://github.com/CGAL/cgal/blob/master/Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp
> >
> > Best,
> >
> > Sebastien.
> >
> > On 5/9/23 21:43, "蓝色追风" ( via cgal-discuss Mailing
> > List)
> > wrote:
> > > Hi, all,
> > >
> > > I am currently using the CGAL command
> > > "corefine_and_compute_intersection" to compute the intersection between
> > > two surface meshes. At the same time, I want to determine the face
> index
> > > of the intersection mesh in the original mesh. I noticed that the
> > > "face_index_map" in the Named Parameters of
> > > "corefine_and_compute_intersection" seems to be able to achieve this
> > > functionality, but I am having trouble using it. Could you please
> > > provide me with an example code to help me use the "face_index_map"
> > feature?
> > >
> > > Thank you for your time and help!
> > >
> > > Best wishes,
> > > Daye
> > >
> > > --
> > > 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
> >
> >
> > --
> > 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
>
>
> --
> 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




Archive powered by MHonArc 2.6.19+.

Top of Page