[Bf-blender-cvs] [95306a4d198] blender2.8: Particles: Use utility function to copy particles

Sergey Sharybin noreply at git.blender.org
Tue Jun 19 15:29:08 CEST 2018


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);



More information about the Bf-blender-cvs mailing list