[Bf-blender-cvs] [833029b] master: Fix own rB8714ae09f894: Forgot to handle bone constraints in versionning code!

Bastien Montagne noreply at git.blender.org
Mon Apr 7 19:46:02 CEST 2014


Commit: 833029ba02f81fecb3fa34ee89879a69e6c458e5
Author: Bastien Montagne
Date:   Mon Apr 7 19:43:21 2014 +0200
https://developer.blender.org/rB833029ba02f81fecb3fa34ee89879a69e6c458e5

Fix own rB8714ae09f894: Forgot to handle bone constraints in versionning code!

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

M	source/blender/blenloader/intern/versioning_270.c

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

diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index 8f95d78..82458e1 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -56,6 +56,29 @@
 #include "readfile.h"
 
 
+static void do_version_constraints_radians_degrees_270_1(ListBase *lb)
+{
+	bConstraint *con;
+
+	for (con = lb->first; con; con = con->next) {
+		if (con->type == CONSTRAINT_TYPE_TRANSFORM) {
+			bTransformConstraint *data = (bTransformConstraint *)con->data;
+			const float deg_to_rad_f = DEG2RADF(1.0f);
+
+			if (data->from == TRANS_ROTATION) {
+				mul_v3_fl(data->from_min, deg_to_rad_f);
+				mul_v3_fl(data->from_max, deg_to_rad_f);
+			}
+
+			if (data->to == TRANS_ROTATION) {
+				mul_v3_fl(data->to_min, deg_to_rad_f);
+				mul_v3_fl(data->to_max, deg_to_rad_f);
+			}
+		}
+	}
+}
+
+
 void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
 {
 	if (!MAIN_VERSION_ATLEAST(main, 270, 0)) {
@@ -119,21 +142,13 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
 
 		/* Update Transform constraint (another deg -> rad stuff). */
 		for (ob = main->object.first; ob; ob = ob->id.next) {
-			bConstraint *con;
-			for (con = ob->constraints.first; con; con = con->next) {
-				if (con->type == CONSTRAINT_TYPE_TRANSFORM) {
-					bTransformConstraint *data = (bTransformConstraint *)con->data;
-					const float deg_to_rad_f = DEG2RADF(1.0f);
-
-					if (data->from == TRANS_ROTATION) {
-						mul_v3_fl(data->from_min, deg_to_rad_f);
-						mul_v3_fl(data->from_max, deg_to_rad_f);
-					}
+			do_version_constraints_radians_degrees_270_1(&ob->constraints);
 
-					if (data->to == TRANS_ROTATION) {
-						mul_v3_fl(data->to_min, deg_to_rad_f);
-						mul_v3_fl(data->to_max, deg_to_rad_f);
-					}
+			if (ob->pose) {
+				/* Bones constraints! */
+				bPoseChannel *pchan;
+				for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
+					do_version_constraints_radians_degrees_270_1(&pchan->constraints);
 				}
 			}
 		}




More information about the Bf-blender-cvs mailing list