Created by: portnov
I propose to simplify code of many nodes by removing duplicated boilerplate for standard inputs/outputs sockets processing routine.
Summary of changes:
- Decorator for checking if mandatory inputs/outputs are connected — checking_links.
- Classes for node input/output sockets metainformation.
- Such metainformation enables us to write default implementation of sv_init().
- Shortcut decorators for most "standard" (i beleive) routine of input/output data processing and matching of input lists — match_inputs and std_inputs_processing.
- Shortcut decorator for nodes which work by converting input lists to BMesh and then BMesh to lists again.
I also changed one pretty simple node to use changed API, for proof-of-concept and testing purposes. As you can see this change allows us to remove about 30 lines of boilerplate code from each node which uses "standard" inputs processing. Metainformation about input and output sockets can be also used later by upgrade system. I tried to maintain backwards compatibility. All "old" nodes, which do not use new features, should work as they were.
Please review and test. Any suggestions are welcome.