[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48692] branches/soc-2011-tomato: svn merge ^/trunk/blender -r48681:48691

Campbell Barton ideasman42 at gmail.com
Fri Jul 6 22:28:35 CEST 2012


Revision: 48692
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48692
Author:   campbellbarton
Date:     2012-07-06 20:28:35 +0000 (Fri, 06 Jul 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r48681:48691

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48681

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/blenkernel/intern/depsgraph.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/material.c
    branches/soc-2011-tomato/source/blender/bmesh/operators/bmo_hull.c

Property Changed:
----------------
    branches/soc-2011-tomato/
    branches/soc-2011-tomato/source/blender/editors/interface/interface.c
    branches/soc-2011-tomato/source/blender/editors/space_outliner/


Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-48681
   + /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-48691

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/depsgraph.c	2012-07-06 20:16:04 UTC (rev 48691)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/depsgraph.c	2012-07-06 20:28:35 UTC (rev 48692)
@@ -352,10 +352,11 @@
 static void dag_add_material_driver_relations(DagForest *dag, DagNode *node, Material *ma);
 
 /* recursive handling for material nodetree drivers */
-static void dag_add_material_nodetree_driver_relations(DagForest *dag, DagNode *node, bNodeTree *ntree)
+static void dag_add_material_nodetree_driver_relations(DagForest *dag, DagNode *node, bNodeTree *ntree, Material *rootma)
 {
 	bNode *n;
-	
+	Material *ma;
+
 	/* nodetree itself */
 	if (ntree->adt) {
 		dag_add_driver_relation(ntree->adt, dag, node, 1);
@@ -364,10 +365,13 @@
 	/* nodetree's nodes... */
 	for (n = ntree->nodes.first; n; n = n->next) {
 		if (n->id && GS(n->id->name) == ID_MA) {
-			dag_add_material_driver_relations(dag, node, (Material *)n->id);
+            ma = (Material *)n->id;
+            if (ma != rootma) {
+                dag_add_material_driver_relations(dag, node, ma);
+            }
 		}
 		else if (n->type == NODE_GROUP && n->id) {
-			dag_add_material_nodetree_driver_relations(dag, node, (bNodeTree *)n->id);
+			dag_add_material_nodetree_driver_relations(dag, node, (bNodeTree *)n->id, rootma);
 		}
 	}
 }
@@ -386,7 +390,7 @@
 	
 	/* material's nodetree */
 	if (ma->nodetree) {
-		dag_add_material_nodetree_driver_relations(dag, node, ma->nodetree);
+		dag_add_material_nodetree_driver_relations(dag, node, ma->nodetree, ma);
 	}
 }
 

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/material.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/material.c	2012-07-06 20:16:04 UTC (rev 48691)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/material.c	2012-07-06 20:28:35 UTC (rev 48692)
@@ -1056,10 +1056,11 @@
 /* ****************** */
 
 /* Update drivers for materials in a nodetree */
-static void material_node_drivers_update(Scene *scene, bNodeTree *ntree, float ctime)
+static void material_node_drivers_update(Scene *scene, bNodeTree *ntree, float ctime, Material *rootma)
 {
 	bNode *node;
-	
+	Material *ma;
+
 	/* nodetree itself */
 	if (ntree->adt && ntree->adt->drivers.first) {
 		BKE_animsys_evaluate_animdata(scene, &ntree->id, ntree->adt, ctime, ADT_RECALC_DRIVERS);
@@ -1069,10 +1070,14 @@
 	for (node = ntree->nodes.first; node; node = node->next) {
 		if (node->id && GS(node->id->name) == ID_MA) {
 			/* TODO: prevent infinite recursion here... */
-			material_drivers_update(scene, (Material *)node->id, ctime);
+            ma = (Material *)node->id;
+            if (ma != rootma) {
+                material_drivers_update(scene, ma, ctime);
+            }
 		}
 		else if (node->type == NODE_GROUP && node->id) {
-			material_node_drivers_update(scene, (bNodeTree *)node->id, ctime);
+			material_node_drivers_update(scene, (bNodeTree *)node->id,
+                                         ctime, rootma);
 		}
 	}
 }
@@ -1094,7 +1099,7 @@
 	
 	/* nodes */
 	if (ma->nodetree) {
-		material_node_drivers_update(scene, ma->nodetree, ctime);
+		material_node_drivers_update(scene, ma->nodetree, ctime, ma);
 	}
 }
 	

Modified: branches/soc-2011-tomato/source/blender/bmesh/operators/bmo_hull.c
===================================================================
--- branches/soc-2011-tomato/source/blender/bmesh/operators/bmo_hull.c	2012-07-06 20:16:04 UTC (rev 48691)
+++ branches/soc-2011-tomato/source/blender/bmesh/operators/bmo_hull.c	2012-07-06 20:28:35 UTC (rev 48692)
@@ -38,6 +38,9 @@
 #include "bmesh.h"
 
 #define HULL_EPSILON_FLT 0.0001f
+/* values above 0.0001 cause errors, see below for details, don't increase
+ * without checking against bug [#32027] */
+#define HULL_EPSILON_DOT_FLT 0.00000001f
 
 /* Internal operator flags */
 typedef enum {
@@ -72,23 +75,23 @@
 
 /*************************** Boundary Edges ***************************/
 
-static int edge_match(BMVert *e1_0, BMVert *e1_1, BMVert *e2[2])
+static int edge_match(BMVert *e1_v1, BMVert *e1_v2, BMVert *e2[2])
 {
-	return (e1_0 == e2[0] && e1_1 == e2[1]) ||
-	       (e1_0 == e2[1] && e1_1 == e2[0]);
+	return (e1_v1 == e2[0] && e1_v2 == e2[1]) ||
+	       (e1_v1 == e2[1] && e1_v2 == e2[0]);
 }
 
 /* Returns true if the edge (e1, e2) is already in edges; that edge is
  * deleted here as well. if not found just returns 0 */
 static int check_for_dup(ListBase *edges, BLI_mempool *pool,
-                         BMVert *e1, BMVert *e2)
+                         BMVert *v1, BMVert *v2)
 {
-	HullBoundaryEdge *e, *next;
+	HullBoundaryEdge *e, *e_next;
 
-	for (e = edges->first; e; e = next) {
-		next = e->next;
+	for (e = edges->first; e; e = e_next) {
+		e_next = e->next;
 
-		if (edge_match(e1, e2, e->v)) {
+		if (edge_match(v1, v2, e->v)) {
 			/* remove the interior edge */
 			BLI_remlink(edges, e);
 			BLI_mempool_free(pool, e);
@@ -102,17 +105,17 @@
 static void expand_boundary_edges(ListBase *edges, BLI_mempool *edge_pool,
                                   const HullTriangle *t)
 {
-	HullBoundaryEdge *new;
+	HullBoundaryEdge *e_new;
 	int i;
 
 	/* Insert each triangle edge into the boundary list; if any of
 	 * its edges are already in there, remove the edge entirely */
 	for (i = 0; i < 3; i++) {
 		if (!check_for_dup(edges, edge_pool, t->v[i], t->v[(i + 1) % 3])) {
-			new = BLI_mempool_calloc(edge_pool);
-			new->v[0] = t->v[i];
-			new->v[1] = t->v[(i + 1) % 3];
-			BLI_addtail(edges, new);
+			e_new = BLI_mempool_calloc(edge_pool);
+			e_new->v[0] = t->v[i];
+			e_new->v[1] = t->v[(i + 1) % 3];
+			BLI_addtail(edges, e_new);
 		}
 	}
 }
@@ -144,12 +147,16 @@
 {
 	/* Added epsilon to fix bug [#31941], improves output when some
 	 * vertices are nearly coplanar. Might need further tweaking for
-	 * other cases though. */
+	 * other cases though.
+	 * ...
+	 * Update: epsilon of 0.0001 causes [#32027], use HULL_EPSILON_DOT_FLT
+	 * and give it a much smaller value
+	 * */
 	float p[3], d;
 	sub_v3_v3v3(p, co, t->v[0]->co);
 	d = dot_v3v3(t->no, p);
-	if      (d < -HULL_EPSILON_FLT) return -1;
-	else if (d >  HULL_EPSILON_FLT) return  1;
+	if      (d < -HULL_EPSILON_DOT_FLT) return -1;
+	else if (d >  HULL_EPSILON_DOT_FLT) return  1;
 	else return 0;
 }
 
@@ -179,7 +186,7 @@
                       BLI_mempool *edge_pool, GHash *outside, BMVert *v)
 {
 	ListBase edges = {NULL, NULL};
-	HullBoundaryEdge *e, *next;
+	HullBoundaryEdge *e, *e_next;
 	GHashIterator iter;
 
 	GHASH_ITER (iter, outside) {
@@ -198,8 +205,8 @@
 	}
 
 	/* Fill hole boundary with triangles to new point */
-	for (e = edges.first; e; e = next) {
-		next = e->next;
+	for (e = edges.first; e; e = e_next) {
+		e_next = e->next;
 		hull_add_triangle(bm, hull_triangles, hull_pool, e->v[0], e->v[1], v);
 		BLI_mempool_free(edge_pool, e);
 	}
@@ -356,7 +363,8 @@
 		{0, 1, 2},
 		{0, 2, 3},
 		{1, 0, 3},
-		{2, 1, 3}};
+		{2, 1, 3}
+	};
 
 	/* Calculate center */
 	zero_v3(center);


Property changes on: branches/soc-2011-tomato/source/blender/editors/interface/interface.c
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_candy/source/blender/editors/interface/interface.c:45070-46163
/branches/ge_harmony/source/blender/editors/interface/interface.c:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber/source/blender/editors/interface/interface.c:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers/source/blender/editors/interface/interface.c:38694-39989
/trunk/blender/source/blender/editors/interface/interface.c:36831-48681
   + /branches/ge_candy/source/blender/editors/interface/interface.c:45070-46163
/branches/ge_harmony/source/blender/editors/interface/interface.c:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber/source/blender/editors/interface/interface.c:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers/source/blender/editors/interface/interface.c:38694-39989
/trunk/blender/source/blender/editors/interface/interface.c:36831-48691


Property changes on: branches/soc-2011-tomato/source/blender/editors/space_outliner
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber/source/blender/editors/space_outliner:38968,38970,38973,39045,40845
/branches/soc-2011-pepper/source/blender/editors/space_outliner:36831-38987
/trunk/blender/source/blender/editors/space_outliner:36831-48681
   + /branches/soc-2011-cucumber/source/blender/editors/space_outliner:38968,38970,38973,39045,40845
/branches/soc-2011-pepper/source/blender/editors/space_outliner:36831-38987
/trunk/blender/source/blender/editors/space_outliner:36831-48691




More information about the Bf-blender-cvs mailing list