[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60232] trunk/blender/source/blender/bmesh /intern/bmesh_polygon.c: speedup for ngon tessellation, check if the angle is an improvement before doing the full intersection check .
Campbell Barton
ideasman42 at gmail.com
Thu Sep 19 09:58:47 CEST 2013
Revision: 60232
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60232
Author: campbellbarton
Date: 2013-09-19 07:58:47 +0000 (Thu, 19 Sep 2013)
Log Message:
-----------
speedup for ngon tessellation, check if the angle is an improvement before doing the full intersection check.
with 500 verts gives approx 2x speedup.
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c 2013-09-19 07:40:41 UTC (rev 60231)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c 2013-09-19 07:58:47 UTC (rev 60232)
@@ -941,18 +941,18 @@
const BMVert *v2 = l_iter->v;
const BMVert *v3 = l_iter->next->v;
- if (bm_face_goodline((float const (*)[2])projectverts, f,
- BM_elem_index_get(v1),
- BM_elem_index_get(v2),
- BM_elem_index_get(v3)))
- {
- /* Compute highest cos (i.e. narrowest angle) of this tri. */
- cos = max_fff(abscoss[i],
- fabsf(cos_v3v3v3(v2->co, v3->co, v1->co)),
- fabsf(cos_v3v3v3(v3->co, v1->co, v2->co)));
+ /* Compute highest cos (i.e. narrowest angle) of this tri. */
+ cos = max_fff(abscoss[i],
+ fabsf(cos_v3v3v3(v2->co, v3->co, v1->co)),
+ fabsf(cos_v3v3v3(v3->co, v1->co, v2->co)));
- /* Compare to prev best (i.e. lowest) cos. */
- if (cos < cos_best) {
+ /* Compare to prev best (i.e. lowest) cos. */
+ if (cos < cos_best) {
+ if (bm_face_goodline((float const (*)[2])projectverts, f,
+ BM_elem_index_get(v1),
+ BM_elem_index_get(v2),
+ BM_elem_index_get(v3)))
+ {
/* We must check this tri would not leave a (too much) degenerated remaining face! */
/* For now just assume if the average of cos of all
* "remaining face"'s corners is below a given threshold, it's OK. */
More information about the Bf-blender-cvs
mailing list