[Bf-blender-cvs] [547f421] particles_refactor: Added default rotation attribute.

Lukas Tönne noreply at git.blender.org
Tue Apr 22 12:07:05 CEST 2014


Commit: 547f42156e4e04634b5bb3f8a6dec0967357f0c6
Author: Lukas Tönne
Date:   Fri Jan 3 17:00:12 2014 +0100
https://developer.blender.org/rB547f42156e4e04634b5bb3f8a6dec0967357f0c6

Added default rotation attribute.

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

M	source/blender/blenkernel/intern/nparticle.c
M	source/blender/blenkernel/intern/rigidbody.c

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

diff --git a/source/blender/blenkernel/intern/nparticle.c b/source/blender/blenkernel/intern/nparticle.c
index dd49350..8daffc0 100644
--- a/source/blender/blenkernel/intern/nparticle.c
+++ b/source/blender/blenkernel/intern/nparticle.c
@@ -169,6 +169,7 @@ static void nparticle_system_default_attributes(NParticleSystem *psys)
 	
 	/* common attributes */
 	BKE_nparticle_attribute_new(psys, "position", PAR_ATTR_DATATYPE_POINT, PAR_ATTR_PROTECTED);
+	BKE_nparticle_attribute_new(psys, "rotation", PAR_ATTR_DATATYPE_QUATERNION, PAR_ATTR_PROTECTED);
 	
 	/* XXX bullet RB pointers, this should be based on actual simulation settings and requirements */
 	BKE_nparticle_attribute_new(psys, "rigid_body", PAR_ATTR_DATATYPE_POINTER, PAR_ATTR_PROTECTED | PAR_ATTR_TEMPORARY);
diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index ec306d9..ae1eb8b 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -585,7 +585,7 @@ static rbRigidBody *rigidbody_validate_particle(RigidBodyWorld *rbw, Object *UNU
 	}
 	
 	BKE_nparticle_iter_get_vector(iter, "position", loc);
-	unit_qt(rot);
+	BKE_nparticle_iter_get_quaternion(iter, "rotation", rot);
 	
 	body = BKE_nparticle_iter_get_pointer(iter, "rigid_body");
 	if (!body || rebuild) {
@@ -1400,9 +1400,11 @@ static void rigidbody_world_apply_particles(Scene *UNUSED(scene), RigidBodyWorld
 	for (BKE_nparticle_iter_init(state, &iter); BKE_nparticle_iter_valid(&iter); BKE_nparticle_iter_next(&iter)) {
 		rbRigidBody *body = BKE_nparticle_iter_get_pointer(&iter, "rigid_body");
 		if (body) {
-			float pos[3];
+			float pos[3], rot[4];
 			RB_body_get_position(body, pos);
+			RB_body_get_orientation(body, rot);
 			BKE_nparticle_iter_set_vector(&iter, "position", pos);
+			BKE_nparticle_iter_set_quaternion(&iter, "rotation", rot);
 		}
 	}




More information about the Bf-blender-cvs mailing list