012289b1e7cefabc012b2e486555999e62a4e784
The goal of this refactor is to reduce the amount of boilerplate code that is necessary to have a dynamic number of sockets on nodes. This is achieved by making the code more reusable. Currently, only the simulation and repeat zone nodes make use of this. However, even with just those two, the amount of code is reduced already. The benefit of this refactor will become even more significant as more nodes support a dynamic number of sockets. For example, the bake node and for-each zone will also benefit from this. We could probably make some of the utility functions non-templates using type erasure. This could reduce the compilation overhead when the number of nodes with item arrays increases. The main reason for why everything is templated now is that it made this refactor easier. Without this patch, all the code was essentially "manually templated". So the implementations look still similar to before now, just that concrete types are replaced with template parameters. No user-visible changes are expected. Pull Request: https://projects.blender.org/blender/blender/pulls/113114
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
