From 43a3b6a7a8a30477e317d1a4089c4bc3ab34169c Mon Sep 17 00:00:00 2001 From: David Rose Date: Thu, 26 Jan 2006 01:18:23 +0000 Subject: [PATCH] don't use concave quads in tristrips --- panda/src/egg/eggMesher.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/panda/src/egg/eggMesher.cxx b/panda/src/egg/eggMesher.cxx index 3896f0276a..19bf000ff9 100644 --- a/panda/src/egg/eggMesher.cxx +++ b/panda/src/egg/eggMesher.cxx @@ -193,11 +193,15 @@ clear() { //////////////////////////////////////////////////////////////////// bool EggMesher:: add_polygon(const EggPolygon *egg_poly, EggMesherStrip::MesherOrigin origin) { - if (egg_poly->size() != 3 && egg_poly->size() != 4) { - // If we have a higher-order polygon, triangulate it + if (egg_poly->size() != 3) { + // If we have a higher-order or concave polygon, triangulate it // automatically. + + // We'll keep quads, unless they're concave. + bool convex_also = (egg_poly->size() != 4); + PT(EggGroupNode) temp_group = new EggGroupNode; - bool result = egg_poly->triangulate_into(temp_group, true); + bool result = egg_poly->triangulate_into(temp_group, convex_also); EggGroupNode::iterator ci; for (ci = temp_group->begin(); ci != temp_group->end(); ++ci) { add_polygon(DCAST(EggPolygon, *ci), EggMesherStrip::MO_user);