[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49085] trunk/blender/source/blender/ editors/space_node/node_edit.c: Fix #32118, Reroute nodes inside groups get created in wonky places.

Lukas Toenne lukas.toenne at googlemail.com
Fri Jul 20 17:07:06 CEST 2012


Revision: 49085
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49085
Author:   lukastoenne
Date:     2012-07-20 15:07:06 +0000 (Fri, 20 Jul 2012)
Log Message:
-----------
Fix #32118, Reroute nodes inside groups get created in wonky places.

Previous attempt was not taking into account parent nodes of the group nodes (i.e. frames). The nodeFromView function should be used to convert between relative node location to absolute view space. Also added this in the node_add_node helper function, which is used in a number of operators for adding nodes in a specific location.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_node/node_edit.c

Modified: trunk/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_edit.c	2012-07-20 14:16:25 UTC (rev 49084)
+++ trunk/blender/source/blender/editors/space_node/node_edit.c	2012-07-20 15:07:06 UTC (rev 49085)
@@ -2549,15 +2549,17 @@
 	
 	/* generics */
 	if (node) {
-		node->locx = locx;
-		node->locy = locy + 60.0f;       // arbitrary.. so its visible, (0,0) is top of node
 		node_select(node);
 		
 		gnode = node_tree_get_editgroup(snode->nodetree);
+		// arbitrary y offset of 60 so its visible
 		if (gnode) {
-			node->locx -= gnode->locx;
-			node->locy -= gnode->locy;
+			nodeFromView(gnode, locx, locy + 60.0f, &node->locx, &node->locy);
 		}
+		else {
+			node->locx = locx;
+			node->locy = locy + 60.0f;
+		}
 
 		ntreeUpdateTree(snode->edittree);
 		ED_node_set_active(bmain, snode->edittree, node);
@@ -3173,12 +3175,13 @@
 				
 				ntemp.type = NODE_REROUTE;
 				rerouteNode = nodeAddNode(snode->edittree, &ntemp);
-				rerouteNode->locx = insertPoint[0];
-				rerouteNode->locy = insertPoint[1];
 				if (gnode) {
-					rerouteNode->locx -= gnode->locx;
-					rerouteNode->locy -= gnode->locy;
+					nodeFromView(gnode, insertPoint[0], insertPoint[1], &rerouteNode->locx, &rerouteNode->locy);
 				}
+				else {
+					rerouteNode->locx = insertPoint[0];
+					rerouteNode->locy = insertPoint[1];
+				}
 				
 				nodeAddLink(snode->edittree, link->fromnode, link->fromsock, rerouteNode, rerouteNode->inputs.first);
 				link->fromnode = rerouteNode;




More information about the Bf-blender-cvs mailing list