reading in hair with dynamics wasnt working but mostly crashed when duplicating the object.

from reading all places dynamic hair is used I think these changes are correct (cloth seems to share pointcache with the psys) but its not obvious.

jahka: please check this is ok.
This commit is contained in:
2010-02-04 16:54:25 +00:00
parent eaca7fa8b5
commit eedf5cbe89
2 changed files with 13 additions and 0 deletions

View File

@@ -1164,6 +1164,12 @@ ParticleSystem *copy_particlesystem(ParticleSystem *psys)
psysn->pointcache= BKE_ptcache_copy_list(&psysn->ptcaches, &psys->ptcaches);
/* XXX - from reading existing code this seems correct but intended usage of
* pointcache should /w cloth should be added in 'ParticleSystem' - campbell */
if(psysn->clmd) {
psysn->clmd->point_cache= psysn->pointcache;
}
id_us_plus((ID *)psysn->part);
return psysn;

View File

@@ -3187,6 +3187,13 @@ static void lib_link_particlesystems(FileData *fd, Object *ob, ID *id, ListBase
pt->ob=newlibadr(fd, id->lib, pt->ob);
psys->target_ob = newlibadr(fd, id->lib, psys->target_ob);
if(psys->clmd) {
/* XXX - from reading existing code this seems correct but intended usage of
* pointcache should /w cloth should be added in 'ParticleSystem' - campbell */
psys->clmd->point_cache= psys->pointcache;
psys->clmd->ptcaches.first= psys->clmd->ptcaches.last= NULL;
}
}
else {
/* particle modifier must be removed before particle system */