Blender Git Loki

Git Commits -> Revision 01755ae

Revision 01755ae by Lukas Toenne (tile)
December 12, 2011, 10:22 (GMT)
Generalization of group node conversion in the new compositor.

This allows groups inside groups to work and also simplifies the code a lot.

* Ungrouping of group nodes ("expanding" might be a better name?) is
done as part of the general addNodeTree function now. This way the
ungrouping happens recursively on all levels of group nodes.
* The adding of a node tree works in three basic steps:
1) Add all nodes, including group nodes (ignoring internals of the
group at this point)
2) Add links between nodes (again, no group internals here)
3) Expand all newly added group nodes from this tree, which replaces
them with internal nodes and proxy nodes for inputs and outputs.
* Expanding the node tree works different now:
1) First add proxy nodes for all input/output sockets. The group
node sockets are then reconnected to the "outer" proxy sockets, while
the internal group sockets (sock->groupsock) are assigned to the
"inner" proxy sockets.
2) Then the actual inner node tree is added, which connects internal
nodes to the proxies
An important change is that the list of nodes, which is used to look
up link targets by their bNode/bNodeSocket pairs, is now limited to
the nodes added from the current tree (including proxies from the
group). This is necessary to avoid ambiguous assignments from other
instances of the same group node type!
An advantage is also that now no more special group socket pointers
and "insideGroup" flags are needed for the Socket class, making the
code a bit simpler.
* Currently the "actual data type" is not converted on proxy
nodes (XXX TODO in the patch), this should be revisited.

Commit Details:

Full Hash: 01755ae5372e32ec934fc93f3ea068a2a4ba3647
SVN Revision: 42580
Parent Commit: 1948bd1
Lines Changed: +147, -236

15 Modified Paths:

/source/blender/compositor/intern/COM_ExecutionSystem.cpp (+1, -2) (Diff)
/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp (+69, -78) (Diff)
/source/blender/compositor/intern/COM_ExecutionSystemHelper.h (+5, -34) (Diff)
/source/blender/compositor/intern/COM_InputSocket.cpp (+2, -7) (Diff)
/source/blender/compositor/intern/COM_InputSocket.h (+0, -10) (Diff)
/source/blender/compositor/intern/COM_Node.cpp (+23, -41) (Diff)
/source/blender/compositor/intern/COM_Node.h (+15, -6) (Diff)
/source/blender/compositor/intern/COM_OutputSocket.cpp (+0, -7) (Diff)
/source/blender/compositor/intern/COM_OutputSocket.h (+0, -3) (Diff)
/source/blender/compositor/intern/COM_Socket.cpp (+0, -1) (Diff)
/source/blender/compositor/intern/COM_Socket.h (+0, -4) (Diff)
/source/blender/compositor/nodes/COM_GroupNode.cpp (+16, -30) (Diff)
/source/blender/compositor/nodes/COM_GroupNode.h (+1, -1) (Diff)
/source/blender/compositor/nodes/COM_SocketProxyNode.cpp (+12, -8) (Diff)
/source/blender/compositor/nodes/COM_SocketProxyNode.h (+3, -4) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021