diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2015-01-15 20:15:52 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2015-01-20 11:30:11 +0300 |
commit | 0666de06f3119ff1640f1eb66833cd4feb669209 (patch) | |
tree | 39591d1ac9085ef4c22a5c06028e09444ad9332d /source/blender/modifiers | |
parent | 2a41d8ebdca623f03b022b15b9ad50a4ce2c611b (diff) |
Fix for particle system copy: This has to make sure the ORIGSPACE data
layer is available.
Otherwise particle mapping to the new mesh cannot work with subdivided
and constructively-modified meshes.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r-- | source/blender/modifiers/intern/MOD_particlesystem.c | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/source/blender/modifiers/intern/MOD_particlesystem.c b/source/blender/modifiers/intern/MOD_particlesystem.c index a41fbb03462..9860daeda4c 100644 --- a/source/blender/modifiers/intern/MOD_particlesystem.c +++ b/source/blender/modifiers/intern/MOD_particlesystem.c @@ -85,37 +85,7 @@ static void copyData(ModifierData *md, ModifierData *target) static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md) { ParticleSystemModifierData *psmd = (ParticleSystemModifierData *) md; - CustomDataMask dataMask = 0; - MTex *mtex; - int i; - - if (!psmd->psys->part) - return 0; - - for (i = 0; i < MAX_MTEX; i++) { - mtex = psmd->psys->part->mtex[i]; - if (mtex && mtex->mapto && (mtex->texco & TEXCO_UV)) - dataMask |= CD_MASK_MTFACE; - } - - if (psmd->psys->part->tanfac != 0.0f) - dataMask |= CD_MASK_MTFACE; - - /* ask for vertexgroups if we need them */ - for (i = 0; i < PSYS_TOT_VG; i++) { - if (psmd->psys->vgroup[i]) { - dataMask |= CD_MASK_MDEFORMVERT; - break; - } - } - - /* particles only need this if they are after a non deform modifier, and - * the modifier stack will only create them in that case. */ - dataMask |= CD_MASK_ORIGSPACE_MLOOP | CD_MASK_ORIGINDEX; - - dataMask |= CD_MASK_ORCO; - - return dataMask; + return psys_emitter_customdata_mask(psmd->psys); } /* saves the current emitter state for a particle system and calculates particles */ |