[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