[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