[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