From 424f37e17bf16f91d8912e685952d356cd09c924 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Sun, 8 Mar 2015 23:56:37 -0400 Subject: [PATCH] #1250 Don't tesselate convex polysets for rendering --- src/CSGTermEvaluator.cc | 5 ++++- .../opencsgtest/issue1005-expected.png | Bin 16118 -> 16055 bytes 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/CSGTermEvaluator.cc b/src/CSGTermEvaluator.cc index e2207f76..6416f29b 100644 --- a/src/CSGTermEvaluator.cc +++ b/src/CSGTermEvaluator.cc @@ -107,7 +107,10 @@ static shared_ptr evaluate_csg_term_from_geometry(const State &state, else { // We cannot render concave polygons, so tessellate any 3D PolySets shared_ptr ps = dynamic_pointer_cast(geom); - if (ps) { + // Since is_convex() doesn't handle non-planar faces, we need to tessellate + // also in the indeterminate state so we cannot just use a boolean comparison. See #1061 + bool convex = ps->convexValue(); + if (ps && !convex) { assert(ps->getDimension() == 3); PolySet *ps_tri = new PolySet(3, ps->convexValue()); ps_tri->setConvexity(ps->getConvexity()); diff --git a/tests/regression/opencsgtest/issue1005-expected.png b/tests/regression/opencsgtest/issue1005-expected.png index 7242d5c556570d41f2c97c4f70e5d0a640abd310..06503b149bb23eabea0879bd491749bbdcbfe48b 100644 GIT binary patch literal 16055 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 z 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 JKPy