[Bf-blender-cvs] [3bd15fc] master: Correction for poly_to_tri_count (used over-complicated method)

Campbell Barton noreply at git.blender.org
Sun Mar 30 03:05:56 CEST 2014


Commit: 3bd15fcf15e6f4ebcf45b5e5483a2d3b2e53058b
Author: Campbell Barton
Date:   Sun Mar 30 12:00:11 2014 +1100
https://developer.blender.org/rB3bd15fcf15e6f4ebcf45b5e5483a2d3b2e53058b

Correction for poly_to_tri_count (used over-complicated method)

===================================================================

M	source/blender/blenlib/intern/math_geom_inline.c

===================================================================

diff --git a/source/blender/blenlib/intern/math_geom_inline.c b/source/blender/blenlib/intern/math_geom_inline.c
index c6f3646..4b1d6a9 100644
--- a/source/blender/blenlib/intern/math_geom_inline.c
+++ b/source/blender/blenlib/intern/math_geom_inline.c
@@ -213,28 +213,13 @@ MINLINE int min_axis_v3(const float vec[3])
 /**
  * Simple method to find how many tri's we need when we already know the corner+poly count.
  *
- * Formula is:
- *
- *   tri = ((corner_count / poly_count) - 2) * poly_count;
- *
- * Use doubles since this is used for allocating and we
- * don't want float precision to give incorrect results.
- *
  * \param poly_count The number of ngon's/tris (1-2 sided faces will give incorrect results)
  * \param corner_count - also known as loops in BMesh/DNA
  */
 MINLINE int poly_to_tri_count(const int poly_count, const int corner_count)
 {
-	if (poly_count != 0) {
-		const double poly_count_d   = (double)poly_count;
-		const double corner_count_d = (double)corner_count;
-		BLI_assert(poly_count   > 0);
-		BLI_assert(corner_count > 0);
-		return (int)((((corner_count_d / poly_count_d) - 2.0) * poly_count_d) + 0.5);
-	}
-	else {
-		return 0;
-	}
+	BLI_assert(corner_count > poly_count * 2);
+	return corner_count - (poly_count * 2);
 }
 
 MINLINE float plane_point_side_v3(const float plane[4], const float co[3])




More information about the Bf-blender-cvs mailing list