diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2014-07-09 14:17:05 +0400 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2014-07-09 14:25:54 +0400 |
commit | c9ac51ec1ffd77efcff758bc42a37fd02859a4bc (patch) | |
tree | 6538125006d72e391d9f3f59bd0611f9dcbe348a /source/blender/blenkernel/BKE_anim.h | |
parent | 6c70559f581a6e4c9047958e247e0b876a045bf8 (diff) |
Fix T40164: Linking a Group of linked Groups don't take Dupli Visibility
correctly.
Problem was that object layers are defined by duplis as the top-level
duplicator layers. This happens //during// the duplilist construction,
which breaks group layer checks for subsequent instances and hides them.
Now the duplilist generators leave Object DNA untouched, the
modification of layers for drawing, rendering, etc. happens afterward
in the duplilist_apply/restore functions, as a kind of second pass.
Diffstat (limited to 'source/blender/blenkernel/BKE_anim.h')
-rw-r--r-- | source/blender/blenkernel/BKE_anim.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_anim.h index e49fe98aa14..0d5078bc026 100644 --- a/source/blender/blenkernel/BKE_anim.h +++ b/source/blender/blenkernel/BKE_anim.h @@ -73,6 +73,7 @@ int count_duplilist(struct Object *ob); typedef struct DupliExtraData { float obmat[4][4]; + unsigned int lay; } DupliExtraData; typedef struct DupliApplyData { @@ -80,8 +81,8 @@ typedef struct DupliApplyData { DupliExtraData *extra; } DupliApplyData; -DupliApplyData *duplilist_apply_matrix(struct ListBase *duplilist); -void duplilist_restore_matrix(struct ListBase *duplilist, DupliApplyData *apply_data); +DupliApplyData *duplilist_apply(struct Object *ob, struct ListBase *duplilist); +void duplilist_restore(struct ListBase *duplilist, DupliApplyData *apply_data); void duplilist_free_apply_data(DupliApplyData *apply_data); #endif |