[Bf-blender-cvs] [2f2bf51] master: Revert "Fix T41226: Wrong Undo on curves and hooks"

Sergey Sharybin noreply at git.blender.org
Fri Aug 1 08:30:56 CEST 2014


Commit: 2f2bf513e97a3955f3d98582bf7e837ca44b8009
Author: Sergey Sharybin
Date:   Fri Aug 1 10:56:20 2014 +0600
Branches: master
https://developer.blender.org/rB2f2bf513e97a3955f3d98582bf7e837ca44b8009

Revert "Fix T41226: Wrong Undo on curves and hooks"

This reverts commit e042c8428f8c0c0a72cdd23d2c058c20ab5745ed.

Proper fix will come later, or be declared a TODO.

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

M	source/blender/editors/curve/editcurve.c

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

diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index 4db2215..b0371b8 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -1165,7 +1165,7 @@ int ED_curve_updateAnimPaths(Curve *cu)
 
 /* ********************* LOAD and MAKE *************** */
 
-static int *initialize_index_map(Object *obedit, int *r_old_totvert, bool reverse)
+static int *initialize_index_map(Object *obedit, int *r_old_totvert)
 {
 	Curve *curve = (Curve *) obedit->data;
 	EditNurb *editnurb = curve->editnurb;
@@ -1200,29 +1200,15 @@ static int *initialize_index_map(Object *obedit, int *r_old_totvert, bool revers
 			while (a--) {
 				keyIndex = getCVKeyIndex(editnurb, bezt);
 				if (keyIndex) {
-					if (reverse) {
-						if (keyIndex->switched) {
-							old_to_new_map[vertex_index] = keyIndex->vertex_index + 2;
-							old_to_new_map[vertex_index + 1] = keyIndex->vertex_index + 1;
-							old_to_new_map[vertex_index + 2] = keyIndex->vertex_index;
-						}
-						else {
-							old_to_new_map[vertex_index] = keyIndex->vertex_index;
-							old_to_new_map[vertex_index + 1] = keyIndex->vertex_index + 1;
-							old_to_new_map[vertex_index + 2] = keyIndex->vertex_index + 2;
-						}
+					if (keyIndex->switched) {
+						old_to_new_map[keyIndex->vertex_index] = vertex_index + 2;
+						old_to_new_map[keyIndex->vertex_index + 1] = vertex_index + 1;
+						old_to_new_map[keyIndex->vertex_index + 2] = vertex_index;
 					}
 					else {
-						if (keyIndex->switched) {
-							old_to_new_map[keyIndex->vertex_index] = vertex_index + 2;
-							old_to_new_map[keyIndex->vertex_index + 1] = vertex_index + 1;
-							old_to_new_map[keyIndex->vertex_index + 2] = vertex_index;
-						}
-						else {
-							old_to_new_map[keyIndex->vertex_index] = vertex_index;
-							old_to_new_map[keyIndex->vertex_index + 1] = vertex_index + 1;
-							old_to_new_map[keyIndex->vertex_index + 2] = vertex_index + 2;
-						}
+						old_to_new_map[keyIndex->vertex_index] = vertex_index;
+						old_to_new_map[keyIndex->vertex_index + 1] = vertex_index + 1;
+						old_to_new_map[keyIndex->vertex_index + 2] = vertex_index + 2;
 					}
 				}
 				vertex_index += 3;
@@ -1236,12 +1222,7 @@ static int *initialize_index_map(Object *obedit, int *r_old_totvert, bool revers
 			while (a--) {
 				keyIndex = getCVKeyIndex(editnurb, bp);
 				if (keyIndex) {
-					if (reverse) {
-						old_to_new_map[vertex_index] = keyIndex->vertex_index;
-					}
-					else {
-						old_to_new_map[keyIndex->vertex_index] = vertex_index;
-					}
+					old_to_new_map[keyIndex->vertex_index] = vertex_index;
 				}
 				vertex_index++;
 				bp++;
@@ -1253,7 +1234,7 @@ static int *initialize_index_map(Object *obedit, int *r_old_totvert, bool revers
 	return old_to_new_map;
 }
 
-static void remap_hooks_and_vertex_parents(Object *obedit, bool reverse)
+static void remap_hooks_and_vertex_parents(Object *obedit)
 {
 	Object *object;
 	Curve *curve = (Curve *) obedit->data;
@@ -1268,9 +1249,7 @@ static void remap_hooks_and_vertex_parents(Object *obedit, bool reverse)
 		    ELEM(object->partype, PARVERT1, PARVERT3))
 		{
 			if (old_to_new_map == NULL) {
-				old_to_new_map = initialize_index_map(obedit,
-				                                      &old_totvert,
-				                                      reverse);
+				old_to_new_map = initialize_index_map(obedit, &old_totvert);
 			}
 
 			if (object->par1 < old_totvert) {
@@ -1299,9 +1278,7 @@ static void remap_hooks_and_vertex_parents(Object *obedit, bool reverse)
 					int i, j;
 
 					if (old_to_new_map == NULL) {
-						old_to_new_map = initialize_index_map(obedit,
-						                                      &old_totvert,
-						                                      reverse);
+						old_to_new_map = initialize_index_map(obedit, &old_totvert);
 					}
 
 					for (i = j = 0; i < hmd->totindex; i++) {
@@ -1338,6 +1315,8 @@ void load_editNurb(Object *obedit)
 		Nurb *nu, *newnu;
 		ListBase newnurb = {NULL, NULL}, oldnurb = cu->nurb;
 
+		remap_hooks_and_vertex_parents(obedit);
+
 		for (nu = editnurb->first; nu; nu = nu->next) {
 			newnu = BKE_nurb_duplicate(nu);
 			BLI_addtail(&newnurb, newnu);
@@ -6892,9 +6871,8 @@ void CURVE_OT_tilt_clear(wmOperatorType *ot)
 
 /****************** undo for curves ****************/
 
-static void undoCurve_to_editCurve(void *ucu, void *edata, void *cu_v)
+static void undoCurve_to_editCurve(void *ucu, void *UNUSED(edata), void *cu_v)
 {
-	Object *obedit = (Object *) edata;
 	Curve *cu = cu_v;
 	UndoCurve *undoCurve = ucu;
 	ListBase *undobase = &undoCurve->nubase;
@@ -6903,8 +6881,6 @@ static void undoCurve_to_editCurve(void *ucu, void *edata, void *cu_v)
 	EditNurb *editnurb = cu->editnurb;
 	AnimData *ad = BKE_animdata_from_id(&cu->id);
 
-	remap_hooks_and_vertex_parents(obedit, true);
-
 	BKE_nurbList_free(editbase);
 
 	if (undoCurve->undoIndex) {
@@ -6938,9 +6914,8 @@ static void undoCurve_to_editCurve(void *ucu, void *edata, void *cu_v)
 	ED_curve_updateAnimPaths(cu);
 }
 
-static void *editCurve_to_undoCurve(void *edata, void *cu_v)
+static void *editCurve_to_undoCurve(void *UNUSED(edata), void *cu_v)
 {
-	Object *obedit = (Object *) edata;
 	Curve *cu = cu_v;
 	ListBase *nubase = BKE_curve_editNurbs_get(cu);
 	UndoCurve *undoCurve;
@@ -6976,8 +6951,6 @@ static void *editCurve_to_undoCurve(void *edata, void *cu_v)
 	undoCurve->actvert = cu->actvert;
 	undoCurve->actnu = cu->actnu;
 
-	remap_hooks_and_vertex_parents(obedit, false);
-
 	return undoCurve;
 }




More information about the Bf-blender-cvs mailing list