Geometry Nodes : Removing "Combine Strings" and Group Instance ID from UI
This diff remove "Combine Strings" and "Group Instance ID" nodes from the UI (but keep them in the source code to be able to bring them back if needed).
This introduces a regression. Users need to re-create their modifiers and set their values again. The NodeGroups are intact so all they need is to create new "Empty" modifiers and set the node group.
---
Original problem: Eventually most modifiers will be node-based, so naming this new modifier "Nodes" will get outdated pretty quickly.
Calling it "Empty" it's fairly descriptive, since the node tree simply connects the modifier Input to an Output, without any effect.
There is a potential problem, that it could be associated with the Empty object type. Like some sort of Hook.
This is the task T82700, and the design task T82537.
Geometry Nodes: use density attribute name instead of index as node input
This implements a workaround for the issue that (for historical reasons) the names of vertex groups are stored on the object while the actual vertex group data is stored on the mesh.
The solution is to copy the vertex group names from the object into the `MeshComponent` so that the information is not lost, when the object cannot be accessed.
Previously, the execution function of a geometry node has three parameters. Now it has only one. This makes it easier to pass more information to the execution function, that might only be used by a few nodes, because we don't have to add more parameters that are unused in most cases.
Geometry Nodes: support geometry components in depsgraph object iterator
Objects can evaluate to a geometry set instead of a single ID (only point cloud objects for now). In the depsgraph object iterator, those geometry components are expanded into temporary objects.
It's important to note that instanced objects can also contain geometry components. Therefore, they have to be split up into multiple objects as well in some cases.
At a high level the iterator works like so: ``` for object in depsgraph: for component in object: yield object_from_component(component) for dupli in make_duplis_list(object): for component in dupli: yield object_from_component(component) ```
DEG_iterator_objects_next has been cleaned up, to make this structure a bit more apparent.