[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33328] branches/particles-2010/source/ blender: Ported over bugfixes from patch 24883 (version 3->4).
Lukas Toenne
lukas.toenne at googlemail.com
Fri Nov 26 12:33:18 CET 2010
Revision: 33328
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33328
Author: lukastoenne
Date: 2010-11-26 12:33:18 +0100 (Fri, 26 Nov 2010)
Log Message:
-----------
Ported over bugfixes from patch 24883 (version 3->4).
Modified Paths:
--------------
branches/particles-2010/source/blender/blenkernel/intern/node.c
branches/particles-2010/source/blender/blenloader/intern/readfile.c
branches/particles-2010/source/blender/editors/space_node/node_draw.c
branches/particles-2010/source/blender/editors/space_node/node_edit.c
branches/particles-2010/source/blender/nodes/intern/SIM_nodetree.c
Modified: branches/particles-2010/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/particles-2010/source/blender/blenkernel/intern/node.c 2010-11-26 11:20:03 UTC (rev 33327)
+++ branches/particles-2010/source/blender/blenkernel/intern/node.c 2010-11-26 11:33:18 UTC (rev 33328)
@@ -620,8 +620,8 @@
/* counting stats */
for(node= ngroup->nodes.first; node; node= node->next) {
-// if(node->type==NODE_GROUP)
-// break;
+ if(node->type==NODE_GROUP)
+ break;
for(sock= node->inputs.first; sock; sock= sock->next)
if(sock->intern==0)
totin++;
@@ -631,10 +631,10 @@
}
/* debug: nodetrees in nodetrees not handled yet */
/* XXX should not be necessary */
-// if(node) {
-// printf("group in group, not supported yet\n");
-// return;
-// }
+ if(node) {
+ printf("group in group, not supported yet\n");
+ return;
+ }
/* input type arrays */
if(totin) {
@@ -777,6 +777,14 @@
BLI_remlink(&ntree->links, link);
BLI_addtail(&ngroup->links, link);
}
+ else if (link->fromnode->flag & NODE_SELECT) {
+ /* expose internal socket for linking to the new group socket */
+ link->fromsock->intern = 0;
+ }
+ else if (link->tonode->flag & NODE_SELECT) {
+ /* expose internal socket for linking to the new group socket */
+ link->tosock->intern = 0;
+ }
}
/* now we can make own group typeinfo */
@@ -833,19 +841,9 @@
ID *group_id= (ID*)calldata;
bNode *node;
- /* find if group is in tree */
for(node= ntree->nodes.first; node; node= node->next)
if(node->id == group_id)
- break;
-
- if(node) {
- /* set all type pointers OK */
- ntreeInitTypes(ntree);
-
- for(node= ntree->nodes.first; node; node= node->next)
- if(node->id == group_id)
- nodeVerifyType(ntree, node);
- }
+ nodeVerifyType(ntree, node);
}
void nodeVerifyGroup(bNodeTree *ngroup)
@@ -1064,25 +1062,23 @@
float default_value[4];
if (node->type==NODE_GROUP) {
- bNodeTree *ntree= (bNodeTree*)node->id;
- if (ntree) {
+ bNodeTree *ngroup= (bNodeTree*)node->id;
+ if (ngroup) {
bNodeGroupSocket *gsock;
- if (ntree->inputs) {
- for (gsock=ntree->inputs; gsock->internsock; ++gsock) {
+ if (ngroup->inputs) {
+ for (gsock=ngroup->inputs; gsock->internsock; ++gsock) {
sock = nodeAddInputSocket(node, gsock->name, gsock->internsock->type, gsock->internsock->ns.vec, gsock->internsock->ns.min, gsock->internsock->ns.max);
sock->to_index = gsock->own_index;
sock->tonode = gsock->internnode;
sock->tosock = gsock->internsock;
- gsock++;
}
}
- if (ntree->outputs) {
- for (gsock=ntree->outputs; gsock->internsock; ++gsock) {
+ if (ngroup->outputs) {
+ for (gsock=ngroup->outputs; gsock->internsock; ++gsock) {
sock = nodeAddOutputSocket(node, gsock->name, gsock->internsock->type, gsock->internsock->ns.vec, gsock->internsock->ns.min, gsock->internsock->ns.max);
sock->to_index = gsock->own_index;
sock->tonode = gsock->internnode;
sock->tosock = gsock->internsock;
- gsock++;
}
}
}
Modified: branches/particles-2010/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/particles-2010/source/blender/blenloader/intern/readfile.c 2010-11-26 11:20:03 UTC (rev 33327)
+++ branches/particles-2010/source/blender/blenloader/intern/readfile.c 2010-11-26 11:33:18 UTC (rev 33328)
@@ -2053,7 +2053,6 @@
/* here we still assume no groups in groups */
for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) {
ntreeVerifyTypes(ntree); /* internal nodes, no groups! */
- ntreeMakeGroupSockets(ntree); /* for group usage */
}
for (i = 0; i < NUM_NTREE_TYPES; ++i) {
@@ -11251,7 +11250,7 @@
}
}
}
-
+
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */
Modified: branches/particles-2010/source/blender/editors/space_node/node_draw.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_node/node_draw.c 2010-11-26 11:20:03 UTC (rev 33327)
+++ branches/particles-2010/source/blender/editors/space_node/node_draw.c 2010-11-26 11:33:18 UTC (rev 33328)
@@ -1303,9 +1303,6 @@
if (ngroup->inputs) {
for(gsock=ngroup->inputs, sock=gnode->inputs.first; gsock->internsock; ++gsock, sock=sock->next) {
if(!(gsock->internsock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
- if (sock->type <= 0) {
- printf("OINK\n");
- }
socket_circle_draw(sock, NODE_SOCKSIZE);
bt = uiDefBut(gnode->block, TEX, 0, "", (short)(sock->locx-5*NODE_DY+7), (short)(sock->locy-9.0f),
Modified: branches/particles-2010/source/blender/editors/space_node/node_edit.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_node/node_edit.c 2010-11-26 11:20:03 UTC (rev 33327)
+++ branches/particles-2010/source/blender/editors/space_node/node_edit.c 2010-11-26 11:33:18 UTC (rev 33328)
@@ -1302,13 +1302,10 @@
static int outside_group_rect(SpaceNode *snode)
{
- bNodeTree *ntree= snode->nodetree;
- bNode *gnode;
- for (gnode=ntree->nodes.first; gnode; gnode=gnode->next) {
- if (gnode->type==NODE_GROUP && gnode->flag & NODE_GROUP_EDIT) {
- return (snode->mx < gnode->totr.xmin || snode->mx >= gnode->totr.xmax
- || snode->my < gnode->totr.ymin || snode->my >= gnode->totr.ymax);
- }
+ bNode *gnode= node_tree_get_editgroup(snode->nodetree);
+ if (gnode) {
+ return (snode->mx < gnode->totr.xmin || snode->mx >= gnode->totr.xmax
+ || snode->my < gnode->totr.ymin || snode->my >= gnode->totr.ymax);
}
return 0;
}
Modified: branches/particles-2010/source/blender/nodes/intern/SIM_nodetree.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/SIM_nodetree.c 2010-11-26 11:20:03 UTC (rev 33327)
+++ branches/particles-2010/source/blender/nodes/intern/SIM_nodetree.c 2010-11-26 11:33:18 UTC (rev 33328)
@@ -390,13 +390,6 @@
if (group->flag & NTREE_UPDATE) {
update_recursive(group);
}
-
- {
- bNodeSocket *sock;
- for (sock=node->inputs.first; sock; sock=sock->next)
- if (sock->type == 0)
- printf("OINKOINK\n");
- }
}
}
More information about the Bf-blender-cvs
mailing list