[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18833] branches/blender2.5/blender/source /blender: 2.5

Ton Roosendaal ton at blender.org
Fri Feb 6 17:34:05 CET 2009


Revision: 18833
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18833
Author:   ton
Date:     2009-02-06 17:34:05 +0100 (Fri, 06 Feb 2009)

Log Message:
-----------
2.5

Node editor: 

- Linking sockets back.
- Removed obsolete code 
- Add node gives correct pointers for Render stuff

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_node.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/node.c
    branches/blender2.5/blender/source/blender/editors/space_node/drawnode.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_header.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_intern.h
    branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_select.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_node.h	2009-02-06 16:31:18 UTC (rev 18832)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_node.h	2009-02-06 16:34:05 UTC (rev 18833)
@@ -52,9 +52,6 @@
 struct GPUNode;
 struct GPUNodeStack;
 
-#define SOCK_IN		1
-#define SOCK_OUT	2
-
 /* ************** NODE TYPE DEFINITIONS ***** */
 
 typedef struct bNodeSocketType {

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/node.c	2009-02-06 16:31:18 UTC (rev 18832)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/node.c	2009-02-06 16:34:05 UTC (rev 18833)
@@ -1124,7 +1124,8 @@
 	
 	/* check for copying links */
 	for(link= ntree->links.first; link; link= link->next) {
-		if(link->fromnode->new_node && link->tonode->new_node) {
+		if(link->fromnode==NULL || link->tonode==NULL);
+		else if(link->fromnode->new_node && link->tonode->new_node) {
 			nlink= nodeAddLink(newtree, link->fromnode->new_node, NULL, link->tonode->new_node, NULL);
 			/* sockets were copied in order */
 			for(a=0, sock= link->fromnode->outputs.first; sock; sock= sock->next, a++) {
@@ -2269,8 +2270,10 @@
 			/* is sock in use? */
 			else if(sock->link) {
 				bNodeLink *link= sock->link;
+				
 				/* this is the test for a cyclic case */
-				if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF) {
+				if(link->fromnode==NULL || link->tonode==NULL);
+				else if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF) {
 					if(link->fromnode->need_exec) {
 						node->need_exec= 1;
 						break;

Modified: branches/blender2.5/blender/source/blender/editors/space_node/drawnode.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/drawnode.c	2009-02-06 16:31:18 UTC (rev 18832)
+++ branches/blender2.5/blender/source/blender/editors/space_node/drawnode.c	2009-02-06 16:34:05 UTC (rev 18833)
@@ -2562,17 +2562,12 @@
 void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
 {
 	float vec[4][3];
-	float mx=0.0f, my=0.0f;
 	int do_shaded= 1, th_col1= TH_WIRE, th_col2= TH_WIRE;
 	
 	if(link->fromnode==NULL && link->tonode==NULL)
 		return;
 	
-	/* XXX fix -> notifier thingymajiggle this is dragging link */
 	if(link->fromnode==NULL || link->tonode==NULL) {
-		// short mval[2];
-		// XXX getmouseco_areawin(mval);
-		// XXX areamouseco_to_ipoco(v2d, mval, &mx, &my);
 		UI_ThemeColor(TH_WIRE);
 		do_shaded= 0;
 	}
@@ -2611,16 +2606,16 @@
 		vec[0][1]= link->fromsock->locy;
 	}
 	else {
-		vec[0][0]= mx;
-		vec[0][1]= my;
+		vec[0][0]= snode->mx;
+		vec[0][1]= snode->my;
 	}
 	if(link->tonode) {
 		vec[3][0]= link->tosock->locx;
 		vec[3][1]= link->tosock->locy;
 	}
 	else {
-		vec[3][0]= mx;
-		vec[3][1]= my;
+		vec[3][0]= snode->mx;
+		vec[3][1]= snode->my;
 	}
 	
 	node_draw_link_bezier(v2d, vec, th_col1, th_col2, do_shaded);

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c	2009-02-06 16:31:18 UTC (rev 18832)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c	2009-02-06 16:34:05 UTC (rev 18833)
@@ -85,6 +85,8 @@
  
 #include "node_intern.h"
 
+#define SOCK_IN		1
+#define SOCK_OUT	2
 
 /* ***************** composite job manager ********************** */
 
@@ -295,7 +297,7 @@
 		BKE_image_signal(ima, node->storage, IMA_SIGNAL_RELOAD);
 		
 		NodeTagChanged(snode->edittree, node);
-		snode_handle_recalc(snode);
+		// XXX			snode_handle_recalc(snode);
 		// allqueue(REDRAWNODE, 0); 
 	}
 }
@@ -401,7 +403,7 @@
 			break;
 		}
 		case B_NODE_TREE_EXEC:
-			snode_handle_recalc(snode);
+			// XXX			snode_handle_recalc(snode);
 			break;		
 		default:
 			/* B_NODE_EXEC */
@@ -417,7 +419,7 @@
 					addqueue(curarea->win, UI_BUT_EVENT, B_NODE_TREE_EXEC);
 					
 					composite_node_render(snode, node);
-					snode_handle_recalc(snode);
+					// XXX			snode_handle_recalc(snode);
 					
 					/* add another event, a render can go fullscreen and open new window */
 					addqueue(curarea->win, UI_BUT_EVENT, B_NODE_TREE_EXEC);
@@ -427,7 +429,7 @@
 					if(node)
 						NodeTagIDChanged(snode->nodetree, node->id);
 					
-					snode_handle_recalc(snode);
+					// XXX			snode_handle_recalc(snode);
 				}
 			}
 		}			
@@ -458,7 +460,7 @@
 		default:
 			/* B_NODE_EXEC */
 			ntreeTexCheckCyclics( snode->nodetree );
-			snode_handle_recalc(snode);
+			// XXX			snode_handle_recalc(snode);
 			// allqueue(REDRAWNODE, 1);
 			break;
 	}
@@ -677,7 +679,7 @@
 					if(gnode)
 						NodeTagIDChanged(snode->nodetree, gnode->id);
 					
-					snode_handle_recalc(snode);
+					// XXX			snode_handle_recalc(snode);
 				}
 				
 				/* addnode() doesnt link this yet... */
@@ -907,7 +909,6 @@
 	return NULL;
 }
 
-#if 0
 /* is rct in visible part of node? */
 static bNode *visible_node(SpaceNode *snode, rctf *rct)
 {
@@ -919,7 +920,6 @@
 	}
 	return tnode;
 }
-#endif
 
 void snode_home(ScrArea *sa, ARegion *ar, SpaceNode* snode)
 {
@@ -1032,188 +1032,9 @@
 	
 	window_set_cursor(win, oldcursor);
 }
+#endif;
 
-static void reset_sel_socket(SpaceNode *snode, int in_out)
-{
-	bNode *node;
-	bNodeSocket *sock;
-	
-	for(node= snode->edittree->nodes.first; node; node= node->next) {
-		if(in_out & SOCK_IN) {
-			for(sock= node->inputs.first; sock; sock= sock->next)
-				if(sock->flag & SOCK_SEL) sock->flag&= ~SOCK_SEL;
-		}
-		if(in_out & SOCK_OUT) {
-			for(sock= node->outputs.first; sock; sock= sock->next)
-				if(sock->flag & SOCK_SEL) sock->flag&= ~SOCK_SEL;
-		}
-	}
-}
 
-/* checks mouse position, and returns found node/socket */
-/* type is SOCK_IN and/or SOCK_OUT */
-static int find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **sockp, int in_out)
-{
-	bNode *node;
-	bNodeSocket *sock;
-	rctf rect;
-	short mval[2];
-	
-	getmouseco_areawin(mval);
-	
-	/* check if we click in a socket */
-	for(node= snode->edittree->nodes.first; node; node= node->next) {
-	
-		areamouseco_to_ipoco(G.v2d, mval, &rect.xmin, &rect.ymin);
-		
-		rect.xmin -= NODE_SOCKSIZE+3;
-		rect.ymin -= NODE_SOCKSIZE+3;
-		rect.xmax = rect.xmin + 2*NODE_SOCKSIZE+6;
-		rect.ymax = rect.ymin + 2*NODE_SOCKSIZE+6;
-		
-		if (!(node->flag & NODE_HIDDEN)) {
-			/* extra padding inside and out - allow dragging on the text areas too */
-			if (in_out == SOCK_IN) {
-				rect.xmax += NODE_SOCKSIZE;
-				rect.xmin -= NODE_SOCKSIZE*4;
-			} else if (in_out == SOCK_OUT) {
-				rect.xmax += NODE_SOCKSIZE*4;
-				rect.xmin -= NODE_SOCKSIZE;
-			}
-		}
-			
-		if(in_out & SOCK_IN) {
-			for(sock= node->inputs.first; sock; sock= sock->next) {
-				if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
-					if(BLI_in_rctf(&rect, sock->locx, sock->locy)) {
-						if(node == visible_node(snode, &rect)) {
-							*nodep= node;
-							*sockp= sock;
-							return 1;
-						}
-					}
-				}
-			}
-		}
-		if(in_out & SOCK_OUT) {
-			for(sock= node->outputs.first; sock; sock= sock->next) {
-				if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
-					if(BLI_in_rctf(&rect, sock->locx, sock->locy)) {
-						if(node == visible_node(snode, &rect)) {
-							*nodep= node;
-							*sockp= sock;
-							return 1;
-						}
-					}
-				}
-			}
-		}
-	}
-	return 0;
-}
-
-/* ********************* transform ****************** */
-
-/* releases on event, only intern (for extern see below) */
-/* we need argument ntree to allow operations on edittree or nodetree */
-static void transform_nodes(bNodeTree *ntree, char mode, char *undostr)
-{
-	bNode *node;
-	float mxstart, mystart, mx, my, *oldlocs, *ol;
-	int cont=1, tot=0, cancel=0, firsttime=1;
-	short mval[2], mvalo[2];
-	
-	/* count total */
-	for(node= ntree->nodes.first; node; node= node->next)
-		if(node->flag & SELECT) tot++;
-	
-	if(tot==0) return;
-	
-	/* store oldlocs */
-	ol= oldlocs= MEM_mallocN(sizeof(float)*2*tot, "oldlocs transform");
-	for(node= ntree->nodes.first; node; node= node->next) {
-		if(node->flag & SELECT) {
-			ol[0]= node->locx; ol[1]= node->locy;
-			ol+= 2;
-		}
-	}
-	
-	getmouseco_areawin(mvalo);
-	areamouseco_to_ipoco(G.v2d, mvalo, &mxstart, &mystart);
-	
-	while(cont) {
-		
-		getmouseco_areawin(mval);
-		if(mval[0]!=mvalo[0] || mval[1]!=mvalo[1] || firsttime) {
-
-			firsttime= 0;
-			
-			areamouseco_to_ipoco(G.v2d, mval, &mx, &my);
-			mvalo[0]= mval[0];
-			mvalo[1]= mval[1];
-			
-			for(ol= oldlocs, node= ntree->nodes.first; node; node= node->next) {
-				if(node->flag & SELECT) {
-					node->locx= ol[0] + mx-mxstart;
-					node->locy= ol[1] + my-mystart;
-					ol+= 2;
-				}
-			}
-			
-			force_draw(0);
-		}
-		else
-			PIL_sleep_ms(10);
-		
-		while (qtest()) {
-			short val;
-			unsigned short event= extern_qread(&val);
-			
-			switch (event) {
-				case LEFTMOUSE:
-				case SPACEKEY:
-				case RETKEY:
-					cont=0;
-					break;
-				case ESCKEY:
-				case RIGHTMOUSE:
-					if(val) {
-						cancel=1;
-						cont=0;
-					}
-					break;
-				default:
-					if(val) arrows_move_cursor(event);
-					break;
-			}
-		}
-		
-	}
-	
-	if(cancel) {
-		for(ol= oldlocs, node= ntree->nodes.first; node; node= node->next) {
-			if(node->flag & SELECT) {
-				node->locx= ol[0];
-				node->locy= ol[1];
-				ol+= 2;
-			}
-		}
-		
-	}
-	
-	// allqueue(REDRAWNODE, 1);
-	MEM_freeN(oldlocs);
-}
-
-/* external call, also for callback */
-void node_transform_ext(int mode, int unused)
-{
-	SpaceNode *snode= curarea->spacedata.first;
-	
-	transform_nodes(snode->edittree, 'g', "Move Node");
-}
-#endif /* 0 */
-
 /* releases on event, only 1 node */
 void scale_node(SpaceNode *snode, bNode *node)
 {
@@ -1338,6 +1159,7 @@
 	}
 	return ma;
 }
+#endif /* 0 */
 
 /* used in buttons to check context, also checks for edited groups */
 bNode *editnode_get_active(bNodeTree *ntree)
@@ -1354,7 +1176,6 @@
 		return nodeGetActive(ntree);
 }
 
-#endif /* 0 */
 
 /* no undo here! */
 void node_deselectall(SpaceNode *snode, int swap)
@@ -1377,7 +1198,6 @@
 		node->flag &= ~SELECT;
 }
 
-#if 0
 
 int node_has_hidden_sockets(bNode *node)
 {
@@ -1437,7 +1257,7 @@
 
 }
 
-static int do_header_node(SpaceNode *snode, bNode *node, float mx, float my)
+/*static*/ int do_header_node(SpaceNode *snode, bNode *node, float mx, float my)
 {

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list