Subject: CGAL users discussion list
List archive
- From: Adam Getchell <>
- To:
- Subject: [cgal-discuss] Euler characteristic of 3D triangulation
- Date: Mon, 4 Apr 2016 20:06:37 -0700
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-phdr: 9a23:/K7e1BCqls7fQih09gmdUyQJP3N1i/DPJgcQr6AfoPdwSP7/o8bcNUDSrc9gkEXOFd2CrakU26yN4+u+ASQp2tWojjMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpQAbFhi3DwdpPOO9QteU1JTnkbvisMOLKyxzxxODIppKZC2sqgvQssREyaBDEY0WjiXzn31TZu5NznlpL1/A1zz158O34YIxu38I46FppIZ8VvDxcK08CLBZFz87KHsd5cvxtBCFQxHcyGEbVzA/nhNNSyfI8Br6U5P1+n/zuuN4niaXIcb2QLQwcTun5qZvDhTvjXFUZHYC7GjLh5ko3+pgqxW7qkknzg==
Hello all,
I was debugging my Pachner move code and ran into the lines:
frame #0: 0x000000010000fd61 unittests`CGAL::Triangulation_data_structure_3<CGAL::Triangulation_vertex_base_with_info_3<unsigned int, CGAL::Epick, CGAL::Triangulation_vertex_base_3<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_3<void> > >, CGAL::Triangulation_cell_base_with_info_3<unsigned int, CGAL::Epick, CGAL::Triangulation_cell_base_3<CGAL::Epick, CGAL::Triangulation_ds_cell_base_3<void> > >, CGAL::Parallel_tag>::is_valid(this=0x0000000100703ea8, verbose=false, level=0) const + 769 at Triangulation_data_structure_3.h:3310
3307 if ( cell_count - facet_count + edge_count - vertex_count != 0 ) {
3308 if (verbose)
3309 std::cerr << "Euler relation unsatisfied" << std::endl;
-> 3310 CGAL_triangulation_assertion(false);
3311 return false;
3312 }
3313
Which is, I believe, enforcing the constraint that the Euler characteristic of the 3D (odd-dimensional manifold) is zero.
Now if I look at the (2,3) Pachner move implemented by flip(Cell_handle, facet) I count as follows:
On the left we have:
Cell count: 1345 + 2345 = 2
Facet count: 134 + 135 + 145 + 345 + 234 + 235 + 245 = 7
Edge count: 13 + 14 + 15 + 23 + 24 + 25 + 34 + 35 + 45 = 9
Vertex count: 5
2 - 7 + 9 - 5 = -1 != 0
On the right we have:
Cell count: 1235 + 1234 + 1245 = 3
Facet count: 123 + 125 + 135 + 235 + 124 + 134 + 234 + 145 + 245 = 9
Edge count: 12 + 13 + 14 + 15 + 23 + 24 + 25 + 34 + 35 + 45 = 10
Vertex count: 5
3 - 9 + 10 - 5 = -1 != 0
So, how am I counting wrong? Clearly flip() and flip_really() pass this test.
Looking at the literature[1], they count a triangle in the following manner:
1 2-face (the triangle), 3 1-faces (the edges), 3 0-faces (the vertices), plus the null set = 8. (!)
Any insights appreciated.
Adam Getchell
about.me/adamgetchell
about.me/adamgetchell
- [cgal-discuss] Euler characteristic of 3D triangulation, Adam Getchell, 04/05/2016
- Re: [cgal-discuss] Euler characteristic of 3D triangulation, Guillaume Damiand, 04/05/2016
Archive powered by MHonArc 2.6.18.