Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@stuvel.eu>2017-04-14 19:20:24 +0300
committerSybren A. Stüvel <sybren@stuvel.eu>2017-04-14 19:20:28 +0300
commit5fa4f397c2050fa15e28855acae1520377a4a517 (patch)
treef0f1afb37f20ba39c90d4c59b4cb7c9abf92d73a /source/blender/alembic/intern/abc_exporter.cc
parent4d117f2fd2438989d90b40f38d2ca1625be9e6e0 (diff)
Alembic import: fixed dupligroup export when the dupli-empty has a parent
Diffstat (limited to 'source/blender/alembic/intern/abc_exporter.cc')
-rw-r--r--source/blender/alembic/intern/abc_exporter.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index d949df1b20a..ef3196cb15d 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -448,7 +448,12 @@ AbcTransformWriter * AbcExporter::createTransformWriter(Object *ob, Object *pare
* parent by name. We'll just call createTransformWriter(), which will
* return the parent's AbcTransformWriter pointer. */
if (parent->parent) {
- parent_writer = createTransformWriter(parent, parent->parent, dupliObParent);
+ if (parent == dupliObParent) {
+ parent_writer = createTransformWriter(parent, parent->parent, NULL);
+ }
+ else {
+ parent_writer = createTransformWriter(parent, parent->parent, dupliObParent);
+ }
}
else if (parent == dupliObParent) {
if (dupliObParent->parent == NULL) {
@@ -468,6 +473,12 @@ AbcTransformWriter * AbcExporter::createTransformWriter(Object *ob, Object *pare
my_writer = new AbcTransformWriter(ob, alembic_parent, parent_writer,
m_trans_sampling_index, m_settings);
+
+ /* When flattening, the matrix of the dupliobject has to be added. */
+ if (m_settings.flatten_hierarchy && dupliObParent) {
+ my_writer->m_proxy_from = dupliObParent;
+ }
+
m_xforms[name] = my_writer;
return my_writer;
}