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:
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user