[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