Commit: 95306a4d1982e569616211d901bb81b0467d0b8b
Author: Sergey Sharybin
Date:   Tue Jun 19 11:46:39 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB95306a4d1982e569616211d901bb81b0467d0b8b

Particles: Use utility function to copy particles

===================================================================

M       source/blender/blenkernel/intern/object.c

===================================================================

diff --git a/source/blender/blenkernel/intern/object.c 
b/source/blender/blenkernel/intern/object.c
index ac47fcec6b4..5ca9b9d2203 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -874,38 +874,9 @@ SoftBody *copy_softbody(const SoftBody *sb, const int flag)
 
 ParticleSystem *BKE_object_copy_particlesystem(ParticleSystem *psys, const int 
flag)
 {
-       ParticleSystem *psysn;
-       ParticleData *pa;
-       int p;
+       ParticleSystem *psysn = MEM_dupallocN(psys);
 
-       psysn = MEM_dupallocN(psys);
-       psysn->particles = MEM_dupallocN(psys->particles);
-       psysn->child = MEM_dupallocN(psys->child);
-
-       if (psys->part->type == PART_HAIR) {
-               for (p = 0, pa = psysn->particles; p < psysn->totpart; p++, 
pa++)
-                       pa->hair = MEM_dupallocN(pa->hair);
-       }
-
-       if (psysn->particles && (psysn->particles->keys || 
psysn->particles->boid)) {
-               ParticleKey *key = psysn->particles->keys;
-               BoidParticle *boid = psysn->particles->boid;
-
-               if (key)
-                       key = MEM_dupallocN(key);
-
-               if (boid)
-                       boid = MEM_dupallocN(boid);
-
-               for (p = 0, pa = psysn->particles; p < psysn->totpart; p++, 
pa++) {
-                       if (boid)
-                               pa->boid = boid++;
-                       if (key) {
-                               pa->keys = key;
-                               key += pa->totkey;
-                       }
-               }
-       }
+       psys_copy_particles(psysn, psys);
 
        if (psys->clmd) {
                psysn->clmd = (ClothModifierData 
*)modifier_new(eModifierType_Cloth);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to