This adds an operator accessible from the MeshSequenceCache modifiers or
the Transform Cache constraints to set the Scene frame range from the
Archive time information (either through the Alembic TimeSampling
pointers or from the filenames if the archive is in fact a file
sequence).
This is essentially the same procedure as what happens when setting the
Scene frame range during import, however, having this as an operator is
useful in cases where a cache is reloaded after an update to ensure that
the new Scene frame range matches that of the new archive's frame range,
as this is not updated during the file reload, which happens though a
dependency graph update.
To avoid retraversing the entire list of cache readers or Alembic
objects, this computes the frame range using the Alembic TimeSampling
pointers from the Archive's TimeSampling pool, and removes the existing
code to detect the min/max time from Alembic Schemas. As the Schemas'
TimeSampling pointers actually come from this very pool, we also avoid
recomputing the min/max time for the same TimeSampling as Alembic will
merge similar TimeSamplings during file writes.
Depends on D12411.