Blender Git Commits

Blender Git "temp-io-alembic-changes-up-to-D7672" branch commits.

May 8, 2020, 15:43 (GMT)
Alembic: export object data with object data name

The old exporter always exported a mesh object to `{}/{}Shape`. Now it exports to `{}/{}` instead. The same change also applies to other object data types.

Note that the code now is a bit hackish, as `m_name` is set even in cases where it isn't used. This hackishness was already there, though, but it's now just more visible. This will all be cleaned up when the Alembic exporter is ported to use the `AbstractHierarchyImporter` structure of USD.

Differential Revision:
May 8, 2020, 15:35 (GMT)
IO: ensure export path and export name are always consistent

Before this, there was one code path that set `context.export_path`,
and a different code path for `context.export_name`, allowing the two to

Keeping track of the export path of the export parent (which can be but is
not always the Blender parent object) also allows a concrete subclass of
`AbstractHierarchyIterator` to find the `AbstractWriter` for the export
parent. In case of exporting to Alembic this is important, as it's not
possible to simply give the Alembic library the full export path of an
object (it needs the C++ object of the parent).
May 8, 2020, 15:32 (GMT)
IO: Allow exporting a subset of the writers

This is in order to prepare for compatibility with the Alembic exporter. That exporter is capable of writing object transforms and object data at different (sub)frames.

The rename from `created_writers` to `used_writers` is necessary, as not all created writers will be actually used in each iteration.

Differential Revision:
May 8, 2020, 15:28 (GMT)
Remove unnecessary include directories from CMakeLists.txt
May 8, 2020, 15:28 (GMT)
IO: Move Abstract Hierarchy Iterator into `io/common`

The goal of the `AbstractHierarchyIterator` class (and supporting classes) was to use it in different exporters. It shouldn't be part of the USD module + namespace any more.

The source files are moved into `io/common`, which is compiled & linked into a new library `bf_io_common`. The unittests are still inside the `tests/gtests/usd` directory. They should be moved to a separate test module too, but that will be delayed until after T73268 has been resolved.

Differential Revision:
By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2021