Add the ability to retrieve implicit sharing info directly from the C++ attribute API, which simplifies memory usage and performance optimizations making use of it. This commit uses the additions to the API to avoid copies in a few places: - The "rest_position" attribute in the mesh modifier stack - Instance on Points node - Instances to points node - Mesh to points node - Points to vertices node Many files are affected because in order to include the new information in the API's returned data, I had to switch a bunch of types from `VArray` to `AttributeReader`. This generally makes sense anyway, since it allows retrieving the domain, which wasn't possible before in some cases. I overloaded the `*` deference operator for some syntactic sugar to avoid the (very ugly) `.varray` that would be necessary otherwise. Pull Request: blender/blender#107059
23 KiB
23 KiB