Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Creating a surface mesh segment as the ROI in Surface mesh deformation

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Creating a surface mesh segment as the ROI in Surface mesh deformation


Chronological Thread 
  • From: Sukhraj Singh <>
  • To:
  • Subject: Re: [cgal-discuss] Creating a surface mesh segment as the ROI in Surface mesh deformation
  • Date: Mon, 5 Sep 2016 18:59:01 +0530
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:kzx50BS+h4NQHh7BuNv0oUrqPNpsv+yvbD5Q0YIujvd0So/mwa64ZxaN2/xhgRfzUJnB7Loc0qyN4vmmBDxLvMfJ8ChbNscTB1ld0YRetjdjKfDGIHWzFOTtYS0+EZYKf35e1Fb/D3JoHt3jbUbZuHy44G1aMBz+MQ1oOra9QdaK3Izkn9204IDZNgVUmCKmM/Q1NwSztQyXt88MgIIkJLx20QrMunIPeuJYwiRjKluX2hr9/cyt54UwzyMFsP0o84tMUL7xYr8jZb1eFjUvdW4vt+PxshyWdhaM5mEVUC0tkxxHA0CR9xD8UZe3qTb5tvB02gGVOMT3SfY/XjH0vPQjcwPhlCpSb21xy2rQkMEl1K8=

Hi Sebastien,
 Instead of getting the segment polyhedron and using that to create an ROI, I directly used the segment_map to create the ROI as follows.

=============================================================================

 for(Polyhedron::Facet_iterator facet_it = (*polyhedron()).facets_begin();
                facet_it != (*polyhedron()).facets_end(); ++facet_it)
        {

            if(segment_property_map[facet_it] == segid)// the particular seg id I want as ROI
            {
                //Let's take the three vertices of facet
                insert_roi_vertex(facet_it->halfedge()->vertex());
                insert_roi_vertex(facet_it->halfedge()->next()->vertex());
                insert_roi_vertex(facet_it->halfedge()->opposite()->vertex());
            }

        }
===============================================================================


I do get a correct ROI as seen form its vizulization, but have a doubt iterating in this way will push same shared vertex among faces again.
I have done this because the Segmentation algo implementation returns a facet based property map.

Thanks to clarify.


On Mon, Sep 5, 2016 at 4:18 PM, Sebastien Loriot (GeometryFactory) <> wrote:
Could you provide a full example reproducing the issue?

Thanks,

Sebastien.


On 09/02/2016 07:24 PM, Sukhraj Singh wrote:
Hello,

I am trying to create a particular segment (which is the output of
surface mesh segmentation) as ROI in Surface Mesh Deformation.

I implemented following code, which is crashing( psb comment below)

==========================================================

void  set_all_vertices_as_roi()

   {

     vertex_iterator  vb,  ve;

     for(boost::tie(vb,  ve)  =  vertices(*polyhedron());  vb  !=  ve;  ++vb)

     {

       insert_roi_vertex(*vb);

     }

   }



//Implement it likewise all mesh vertices as roi


   void  set_segment_vertices_as_roi(Polyhedron  mesh)

   {

     std::size_t  number_of_clusters;

     double  smoothing_lambda  ;


     //  create  a  property-map  for  segment-ids

     typedef  std::map<Polyhedron::Facet_const_handle,  std::size_t>  Facet_int_map;

     Facet_int_map  internal_segment_map;

     boost::associative_property_map<Facet_int_map>  segment_property_map(internal_segment_map);


//Run the sdf segmentation algo

     int  nb_segments  =  SegmentPolyhedron(segment_property_map,number_of_clusters,  smoothing_lambda  ,mesh);


     std::vector  <Polyhedron>  PolySegments;

     PolySegments.resize(nb_segments);


//Get the segement of the mesh

     GetSegments(mesh,segment_property_map,nb_segments,PolySegments,0);



     vertex_iterator  vb,  ve;



//Make zeroth segment as ROI

     for(boost::tie(vb,  ve)  =  vertices(PolySegments[0]);  vb  !=  ve;  ++vb)

     {

       //std::cout  <<  __LINE__  <<  std::endl;

         insert_roi_vertex(*vb); // GIVES CRASH

     }





   }



===============================================================================


Perhaps it is because of size of deform_mesh, which was  equal to
complete non-segmented mesh size. ?

There is k-ring selection as well, which is used when picked by mouse.

Can someone suggest me some other way maybe, so that I could make the
mesh segment as ROI


Thanks to provide input.


--
Sukhraj Singh


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





--
Sukhraj Singh
 



Archive powered by MHonArc 2.6.18.

Top of Page