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

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to