简体   繁体   中英

Does ordering of mesh element change from run to run for constrained triangulation under CGAL?

I iterate over finie_vertieces , finite_edges and finite_faces after generating constrained delauny triangulation with Loyd optimization. I am on VS2012 using CGAL 4.12 under release mode. I see for a given case finite_verices list is repeatable (so is the vertex list under finite_faces ), however, the ordering of the edges in finite_edges seems to change from run to run

for(auto eit = cdtp.finite_edges_begin(); eit != cdtp.finite_edges_end(); ++eit)
{

    const auto isConstrainedEdge  = cdtp.is_constrained(*eit);
    auto & cFace = *(eit->first);
    auto cwVert = cFace.vertex(cFace.cw(eit->second));
    auto ccwVert = cFace.vertex(cFace.ccw(eit->second));

I use the above code snippet to extract vertex list, and vertex list with a given edge changes from run to run. Any help is appreciated resolving this, as I am looking for consistent behavior in the code. My triangulation involves many line constraints on a two dimensional domain.

I was told it's likely dependable behaviour, but there is no guarantee of order. IIRC the documentation says the traversal order is not guaranteed. I think it's best to assume the iterators' transversal is not deterministic and could change.

You could use any of the _info extensions to embed information into the face, edge, etc (a hash perhaps?) which you could then check against to detect a change.

In my use case, I wanted to traverse the mesh in parallel and OpenMP didn't support the iterators. So I hold a vector of the Face_handles in memory which I can then easily index over. In conjunction with the _info data, you could use this to build a vector of edges,faces, etc with a guaranteed order using unique information in the ->info() field.

Another _info example .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM