[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50887] trunk/blender/source/blender/ compositor: Compositor:
Jeroen Bakker
j.bakker at atmind.nl
Tue Sep 25 15:02:52 CEST 2012
Revision: 50887
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50887
Author: jbakker
Date: 2012-09-25 13:02:52 +0000 (Tue, 25 Sep 2012)
Log Message:
-----------
Compositor:
* Node muting in node groups didn't work.
[#32597] Mute one node in a group blocks it
It looked for connections in the main tree, and not inside the group.
Modified Paths:
--------------
trunk/blender/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp
trunk/blender/source/blender/compositor/intern/COM_Node.h
trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp
Modified: trunk/blender/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp 2012-09-25 12:43:50 UTC (rev 50886)
+++ trunk/blender/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp 2012-09-25 13:02:52 UTC (rev 50887)
@@ -49,7 +49,8 @@
/* add all nodes of the tree to the node list */
bNode *node = (bNode *)tree->nodes.first;
while (node != NULL) {
- addNode(nodes, node, isActiveGroup, system.getContext().isFastCalculation());
+ Node *nnode = addNode(nodes, node, isActiveGroup, system.getContext().isFastCalculation());
+ nnode->setbNodeGroup(groupnode);
node = (bNode *)node->next;
}
Modified: trunk/blender/source/blender/compositor/intern/COM_Node.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_Node.h 2012-09-25 12:43:50 UTC (rev 50886)
+++ trunk/blender/source/blender/compositor/intern/COM_Node.h 2012-09-25 13:02:52 UTC (rev 50887)
@@ -53,6 +53,12 @@
* @brief Is this node part of the active group
*/
bool m_inActiveGroup;
+
+ /**
+ * @brief The group node this node belongs to.
+ * @note: used to find the links in the current subtree for muting nodes
+ */
+ bNode* m_bNodeGroup;
public:
Node(bNode *editorNode, bool create_sockets = true);
@@ -134,6 +140,9 @@
* @param socket
*/
OutputSocket *findOutputSocketBybNodeSocket(bNodeSocket *socket);
+
+ inline void setbNodeGroup(bNode* group) {this->m_bNodeGroup = group;}
+ inline bNode* getbNodeGroup() {return this->m_bNodeGroup;}
protected:
void addPreviewOperation(ExecutionSystem *system, CompositorContext *context, InputSocket *inputSocket);
void addPreviewOperation(ExecutionSystem *system, CompositorContext *context, OutputSocket *outputSocket);
Modified: trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp
===================================================================
--- trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp 2012-09-25 12:43:50 UTC (rev 50886)
+++ trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp 2012-09-25 13:02:52 UTC (rev 50887)
@@ -111,11 +111,17 @@
if ((editorNode->flag & NODE_MUTED) && editorNode->typeinfo->internal_connect) {
vector<InputSocket *> &inputsockets = this->getInputSockets();
vector<OutputSocket *> relinkedsockets;
- bNodeTree *editorTree = (bNodeTree *) context->getbNodeTree();
+ bNodeTree *editorTree;
SocketMap socketMap;
ListBase intlinks;
bNodeLink *link;
+ if (this->getbNodeGroup()) {
+ editorTree = (bNodeTree *) getbNodeGroup()->id;
+ } else {
+ editorTree = (bNodeTree *) context->getbNodeTree();
+ }
+
intlinks = editorNode->typeinfo->internal_connect(editorTree, editorNode);
this->fillSocketMap<OutputSocket>(outputsockets, socketMap);
More information about the Bf-blender-cvs
mailing list