[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52398] trunk/blender/source/blender/ modifiers/intern/MOD_triangulate.c: Skip CDDM_calc_edges since it' s a costly operation.

Antony Riakiotakis kalast at gmail.com
Tue Nov 20 10:04:57 CET 2012


Revision: 52398
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52398
Author:   psy-fi
Date:     2012-11-20 09:04:55 +0000 (Tue, 20 Nov 2012)
Log Message:
-----------
Skip CDDM_calc_edges since it's a costly operation. Instead make sure
all edges are set to draw. Thanks to Campbel for pointing that out!

Modified Paths:
--------------
    trunk/blender/source/blender/modifiers/intern/MOD_triangulate.c

Modified: trunk/blender/source/blender/modifiers/intern/MOD_triangulate.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_triangulate.c	2012-11-20 08:04:53 UTC (rev 52397)
+++ trunk/blender/source/blender/modifiers/intern/MOD_triangulate.c	2012-11-20 09:04:55 UTC (rev 52398)
@@ -39,6 +39,8 @@
 {
 	DerivedMesh *result;
 	BMesh *bm;
+	int total_edges, i;
+	MEdge *me;
 
 	bm = DM_to_bmesh(dm);
 
@@ -53,8 +55,13 @@
 	result = CDDM_from_bmesh(bm, FALSE);
 	BM_mesh_free(bm);
 
-	CDDM_calc_edges(result);
+	total_edges = result->getNumEdges(result);
+	me = CDDM_get_edges(result);
 
+	/* force drawing of all edges (seems to be omitted in CDDM_from_bmesh) */
+	for (i = 0; i < total_edges; i++, me++)
+		me->flag |= ME_EDGEDRAW | ME_EDGERENDER;
+
 	CDDM_calc_normals(result);
 
 	return result;




More information about the Bf-blender-cvs mailing list