Search code examples
3dcgal

Tag boundary vertices after 3d triangulation


My goal is to tag all the vertices of a 3d regular-triangulated mesh as inner or outer vertices. I'm aware of the infinite vertex.

I iterate through all the adjacent vertices of the infinite vertex and tag them as outer vertices. When do that i get strange results:

right pic: all the vertices of the mushroom. middle pic: vertices tagged as outer. left pic: vertices tagged as inner

http://i62.tinypic.com/2uqj6hj.jpg

when I do the same thing but with a sphere mesh i get correct results. Am I not understanding the infinite vertex correctly? How can i solve this?

P.S. I'm new to cgal.


Solution

  • I managed to solve this finally by using sub-domains

    for (C3t3::Facets_in_complex_iterator
        fit = i_pTetrahedlizedMesh.facets_in_complex_begin(),
        end = i_pTetrahedlizedMesh.facets_in_complex_end();
    fit != end; ++fit)
    {
        C3t3::Subdomain_index cell_sd = i_pTetrahedlizedMesh.subdomain_index(fit->first);
        C3t3::Subdomain_index opp_sd = i_pTetrahedlizedMesh.subdomain_index(fit->first->neighbor(fit->second));
    
        if (cell_sd != 0 && opp_sd != 0) continue; //this is an inner vertex
        else .... //this is an outer vertex