This rewrites the Alembic and USD data importers to work with and
output GeometrySets instead of Meshes.
The main motivation for this change is to be able to import properly
point clouds, which are currently imported as Meshes, and curves
data, which suffer from a lot of issues due to limitations of
legacy curves structures (fixed by the new curves data-block) and are
also converted to Meshes. Further, for Curves, it will allow importing
arbitrary attributes.
This patch was primarily meant for Alembic, but changes to USD import
were necessary as they share the same modifier.
For Alembic:
- there should be no behavioral changes for Meshes
- points are imported as PointClouds
- curves are imported as the new Curves object type which fixes an
important bug (see note at the end)
For USD:
- there should be no behavioral changes for Meshes
- curves are imported as the new Curves object type
Note that the current USD importer does not support loading PointClouds,
so this patch does not add support for it.
For both Alembic and USD, knots arrays are not read anymore, as the new
Curves object does not expose the ability to set them. As knots arrays
from other software were always a little problematic to interpret, this
might not really change anything for users.
This fixes#58704: Animated Alembic curves don't update on render
(NOTE: it could be that the fixed bug was also present in USD.)