Blender Git Loki

Git Commits -> Revision e1cc9aa

Revision e1cc9aa by Jacques Lucke (master)
June 9, 2020, 15:08 (GMT)
Nodes: efficient node tree queries and inlining

This adds two data structures that wrap a node tree. However, they work
on different abstraction levels.

`NodeTreeRef` is an immutable structure that makes working with a node
tree in C++ much more efficient and convenient. It supports various
queries efficiently, that are not easily possible using just `bNodeTree`.

`DerivedNodeTree` builds on top of `NodeTreeRef`. It contains a flattened
view on the node tree, i.e. with node groups being inlined. Every inlined
node still knows its "call stack". It supports pretty much the same queries
as `NodeTreeRef`.

Both data structures come with a dot graph exporter for debugging purposes.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D7628

Commit Details:

Full Hash: e1cc9aa7f2813004cad34a580e2faa1b7ca21db1
Parent Commit: b37fca6
Lines Changed: +1525, -0

4 Added Paths:

/source/blender/blenkernel/BKE_derived_node_tree.hh (+453, -0) (View)
/source/blender/blenkernel/BKE_node_tree_ref.hh (+448, -0) (View)
/source/blender/blenkernel/intern/derived_node_tree.cc (+442, -0) (View)
/source/blender/blenkernel/intern/node_tree_ref.cc (+178, -0) (View)

1 Modified Path:

/source/blender/blenkernel/CMakeLists.txt (+4, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021