From 5d29804882d13777c2e47e5781efbd9418a39475 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Wed, 25 Dec 2013 18:57:11 -0500 Subject: [PATCH] Remove degenerate faces --- src/cgalutils.cc | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/cgalutils.cc b/src/cgalutils.cc index 8806c2d6..aceb9e58 100644 --- a/src/cgalutils.cc +++ b/src/cgalutils.cc @@ -294,16 +294,24 @@ public: B.add_vertex(CGALPoint(v[0], v[1], v[2])); } } - B.begin_facet(); - printf("["); - int fidx = 0; + std::map fc; + bool facet_is_degenerate = false; BOOST_REVERSE_FOREACH(size_t i, indices) { - B.add_vertex_to_facet(i); - if (fidx++ > 0) printf(","); - printf("%ld", i); + if (fc[i]++ > 0) facet_is_degenerate = true; + } + if (!facet_is_degenerate) { + B.begin_facet(); + printf("["); + int fidx = 0; + std::map fc; + BOOST_REVERSE_FOREACH(size_t i, indices) { + B.add_vertex_to_facet(i); + if (fidx++ > 0) printf(","); + printf("%ld", i); + } + printf("]"); + B.end_facet(); } - printf("]"); - B.end_facet(); } B.end_surface(); printf("],\n");