8c2ad8bbd3
Adds an optional list of panels to node trees. Each socket can be assigned a panel. UI panels will be created in the future in the modifier for these grouped sockets. Panels are stored as a pointer array in node trees, next to socket declarations. Each panel has a name, but it does not have to be unique. In future a panel might also store whether it is visible by default and similar information. C API and RNA API are both added. Panels and their socket assignments are accessible to users through another list in the "Group" tab of the node editor sidebar. Sockets in the same panel will remain together even when adding, removing, or moving sockets or panels, renaming, etc. A socket can be moved up or down within a panel but each panel remains a contiguous block. Actual tree views may be created later. Pull Request: https://projects.blender.org/blender/blender/pulls/108649