Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Toenne <lukas.toenne@googlemail.com>2012-07-20 19:07:06 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2012-07-20 19:07:06 +0400
commitf883337ba3ad23370ca23f0601f231883ac3c021 (patch)
treeb09c69b9258029595906fa5c018e5f17c5a3dd56 /source/blender/editors/space_node/node_edit.c
parent80a24a2ff55935296ccd2699091411bdb987dfb1 (diff)
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.
Diffstat (limited to 'source/blender/editors/space_node/node_edit.c')
-rw-r--r--source/blender/editors/space_node/node_edit.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 512781f9b77..a0df2aefab1 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -2549,14 +2549,16 @@ bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, bNodeTemplate
/* 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);
@@ -3173,11 +3175,12 @@ static int add_reroute_exec(bContext *C, wmOperator *op)
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);