diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2017-02-23 18:00:06 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2017-04-06 17:04:31 +0300 |
commit | d1696622b7791a6e809a5c76f343c319974d60c9 (patch) | |
tree | 434530c2e9b453a99c615b54c9772ae7ae6a020d /source/blender/alembic/intern/alembic_capi.cc | |
parent | 818ee188e704b61ce745d3394483183a86994608 (diff) |
Alembic import: fixed bug where local matrix from Alembic was used as object matrix
Also renamed AbcObjectReader::readObjectMatrix to
setupObjectTransform, as it does more than just reading the object
matrix; it also sets up an object constraint if the Alembic Xform is
animated.
Diffstat (limited to 'source/blender/alembic/intern/alembic_capi.cc')
-rw-r--r-- | source/blender/alembic/intern/alembic_capi.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc index 44d902907c3..44f49542828 100644 --- a/source/blender/alembic/intern/alembic_capi.cc +++ b/source/blender/alembic/intern/alembic_capi.cc @@ -639,7 +639,6 @@ static void import_startjob(void *user_data, short *stop, short *do_update, floa if (reader->valid()) { reader->readObjectData(data->bmain, 0.0f); - reader->readObjectMatrix(0.0f); min_time = std::min(min_time, reader->minTime()); max_time = std::max(max_time, reader->maxTime()); @@ -712,6 +711,12 @@ static void import_startjob(void *user_data, short *stop, short *do_update, floa return; } } + + /* Setup transformations and constraints. */ + for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) { + AbcObjectReader *reader = *iter; + reader->setupObjectTransform(0.0f); + } } static void import_endjob(void *user_data) |