[Bf-blender-cvs] [a48cbdfa715] experimental-build: Revert "Squashed commit of the staging smooth-curves branch:"

Alexander Gavrilov noreply at git.blender.org
Fri Aug 4 09:16:52 CEST 2017


Commit: a48cbdfa7156be4e6b2d436f15ce78ab24a789cb
Author: Alexander Gavrilov
Date:   Fri Aug 4 10:15:53 2017 +0300
Branches: experimental-build
https://developer.blender.org/rBa48cbdfa7156be4e6b2d436f15ce78ab24a789cb

Revert "Squashed commit of the staging smooth-curves branch:"

This reverts commit 42843004fdab789f94b6f25b178aedfdf9b24960.

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

M	source/blender/blenkernel/BKE_curve.h
M	source/blender/blenkernel/BKE_fcurve.h
M	source/blender/blenkernel/intern/colortools.c
M	source/blender/blenkernel/intern/curve.c
M	source/blender/blenkernel/intern/fcurve.c
M	source/blender/blenkernel/intern/fmodifier.c
M	source/blender/blenkernel/intern/ipo.c
M	source/blender/blenkernel/intern/mask.c
M	source/blender/blenkernel/intern/nla.c
M	source/blender/blenlib/BLI_math_solvers.h
M	source/blender/blenlib/intern/math_solvers.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/editors/animation/drivers.c
M	source/blender/editors/animation/fmodifier_ui.c
M	source/blender/editors/animation/keyframing.c
M	source/blender/editors/curve/editcurve.c
M	source/blender/editors/include/ED_anim_api.h
M	source/blender/editors/interface/interface_templates.c
M	source/blender/editors/object/object_constraint.c
M	source/blender/editors/object/object_relations.c
M	source/blender/editors/space_action/action_edit.c
M	source/blender/editors/space_graph/graph_buttons.c
M	source/blender/editors/space_graph/graph_edit.c
M	source/blender/editors/space_nla/nla_edit.c
M	source/blender/makesdna/DNA_anim_types.h
M	source/blender/makesdna/DNA_color_types.h
M	source/blender/makesdna/DNA_curve_types.h
M	source/blender/makesrna/intern/rna_color.c
M	source/blender/makesrna/intern/rna_fcurve.c

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

diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h
index c990486b729..635e999dd95 100644
--- a/source/blender/blenkernel/BKE_curve.h
+++ b/source/blender/blenkernel/BKE_curve.h
@@ -201,13 +201,10 @@ void BKE_nurb_bpoint_calc_normal(struct Nurb *nu, struct BPoint *bp, float r_nor
 void BKE_nurb_bpoint_calc_plane(struct Nurb *nu, struct BPoint *bp, float r_plane[3]);
 
 void BKE_nurb_handle_calc(struct BezTriple *bezt, struct BezTriple *prev,  struct BezTriple *next,
-                          const bool is_fcurve, const bool smoothing);
+                          const bool is_fcurve);
 void BKE_nurb_handle_calc_simple(struct Nurb *nu, struct BezTriple *bezt);
 void BKE_nurb_handle_calc_simple_auto(struct Nurb *nu, struct BezTriple *bezt);
 
-void BKE_nurb_handle_smooth_fcurve(struct BezTriple *bezt, int total, bool cyclic);
-void BKE_nurb_handle_smooth_color_curve(struct BezTriple *bezt, int total);
-
 void BKE_nurb_handles_calc(struct Nurb *nu);
 void BKE_nurb_handles_autocalc(struct Nurb *nu, int flag);
 void BKE_nurb_bezt_handle_test(struct BezTriple *bezt, const bool use_handle);
diff --git a/source/blender/blenkernel/BKE_fcurve.h b/source/blender/blenkernel/BKE_fcurve.h
index 03328f39c0f..b38f1299763 100644
--- a/source/blender/blenkernel/BKE_fcurve.h
+++ b/source/blender/blenkernel/BKE_fcurve.h
@@ -188,8 +188,7 @@ const FModifierTypeInfo *get_fmodifier_typeinfo(const int type);
 
 /* ---------------------- */
 
-struct FModifier *add_fmodifier_raw(ListBase *modifiers, int type);
-struct FModifier *add_fmodifier(struct FCurve *fcu, int type);
+struct FModifier *add_fmodifier(ListBase *modifiers, int type);
 struct FModifier *copy_fmodifier(const struct FModifier *src);
 void copy_fmodifiers(ListBase *dst, const ListBase *src);
 bool remove_fmodifier(ListBase *modifiers, struct FModifier *fcm);
diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c
index a5623d54611..ee0f904c3a6 100644
--- a/source/blender/blenkernel/intern/colortools.c
+++ b/source/blender/blenkernel/intern/colortools.c
@@ -432,9 +432,6 @@ static void calchandle_curvemap(
 	float len, len_a, len_b;
 	float dvec_a[2], dvec_b[2];
 
-	/* assume normal handle until we check */
-	bezt->f5 = HD_AUTOTYPE_NORMAL;
-
 	if (bezt->h1 == 0 && bezt->h2 == 0) {
 		return;
 	}
@@ -489,7 +486,6 @@ static void calchandle_curvemap(
 					    (ydiff1 >= 0.0f && ydiff2 >= 0.0f))
 					{
 						bezt->vec[0][1] = bezt->vec[1][1];
-						bezt->f5 = HD_AUTOTYPE_SPECIAL;
 					}
 					else { /* handles should not be beyond y coord of two others */
 						if (ydiff1 <= 0.0f) {
@@ -516,7 +512,6 @@ static void calchandle_curvemap(
 					    (ydiff1 >= 0.0f && ydiff2 >= 0.0f))
 					{
 						bezt->vec[2][1] = bezt->vec[1][1];
-						bezt->f5 = HD_AUTOTYPE_SPECIAL;
 					}
 					else { /* handles should not be beyond y coord of two others */
 						if (ydiff1 <= 0.0f) {
@@ -617,51 +612,45 @@ static void curvemap_make_table(CurveMap *cuma, const rctf *clipr)
 		bezt_prev = &bezt[a];
 	}
 	
-	if (cuma->flag & CUMA_SMOOTH_HANDLES) {
-		BKE_nurb_handle_smooth_color_curve(bezt, cuma->totpoint);
-	}
-	else {
-		/* first and last handle need correction, instead of pointing to center of next/prev,
-		 * we let it point to the closest handle */
-		if (cuma->totpoint > 2) {
-			float hlen, nlen, vec[3];
-
-			if (bezt[0].h2 == HD_AUTO) {
-
-				hlen = len_v3v3(bezt[0].vec[1], bezt[0].vec[2]); /* original handle length */
-				/* clip handle point */
-				copy_v3_v3(vec, bezt[1].vec[0]);
-				if (vec[0] < bezt[0].vec[1][0])
-					vec[0] = bezt[0].vec[1][0];
-
-				sub_v3_v3(vec, bezt[0].vec[1]);
-				nlen = len_v3(vec);
-				if (nlen > FLT_EPSILON) {
-					mul_v3_fl(vec, hlen / nlen);
-					add_v3_v3v3(bezt[0].vec[2], vec, bezt[0].vec[1]);
-					sub_v3_v3v3(bezt[0].vec[0], bezt[0].vec[1], vec);
-				}
+	/* first and last handle need correction, instead of pointing to center of next/prev, 
+	 * we let it point to the closest handle */
+	if (cuma->totpoint > 2) {
+		float hlen, nlen, vec[3];
+		
+		if (bezt[0].h2 == HD_AUTO) {
+			
+			hlen = len_v3v3(bezt[0].vec[1], bezt[0].vec[2]); /* original handle length */
+			/* clip handle point */
+			copy_v3_v3(vec, bezt[1].vec[0]);
+			if (vec[0] < bezt[0].vec[1][0])
+				vec[0] = bezt[0].vec[1][0];
+			
+			sub_v3_v3(vec, bezt[0].vec[1]);
+			nlen = len_v3(vec);
+			if (nlen > FLT_EPSILON) {
+				mul_v3_fl(vec, hlen / nlen);
+				add_v3_v3v3(bezt[0].vec[2], vec, bezt[0].vec[1]);
+				sub_v3_v3v3(bezt[0].vec[0], bezt[0].vec[1], vec);
 			}
-			a = cuma->totpoint - 1;
-			if (bezt[a].h2 == HD_AUTO) {
-
-				hlen = len_v3v3(bezt[a].vec[1], bezt[a].vec[0]); /* original handle length */
-				/* clip handle point */
-				copy_v3_v3(vec, bezt[a - 1].vec[2]);
-				if (vec[0] > bezt[a].vec[1][0])
-					vec[0] = bezt[a].vec[1][0];
-
-				sub_v3_v3(vec, bezt[a].vec[1]);
-				nlen = len_v3(vec);
-				if (nlen > FLT_EPSILON) {
-					mul_v3_fl(vec, hlen / nlen);
-					add_v3_v3v3(bezt[a].vec[0], vec, bezt[a].vec[1]);
-					sub_v3_v3v3(bezt[a].vec[2], bezt[a].vec[1], vec);
-				}
+		}
+		a = cuma->totpoint - 1;
+		if (bezt[a].h2 == HD_AUTO) {
+			
+			hlen = len_v3v3(bezt[a].vec[1], bezt[a].vec[0]); /* original handle length */
+			/* clip handle point */
+			copy_v3_v3(vec, bezt[a - 1].vec[2]);
+			if (vec[0] > bezt[a].vec[1][0])
+				vec[0] = bezt[a].vec[1][0];
+			
+			sub_v3_v3(vec, bezt[a].vec[1]);
+			nlen = len_v3(vec);
+			if (nlen > FLT_EPSILON) {
+				mul_v3_fl(vec, hlen / nlen);
+				add_v3_v3v3(bezt[a].vec[0], vec, bezt[a].vec[1]);
+				sub_v3_v3v3(bezt[a].vec[2], bezt[a].vec[1], vec);
 			}
 		}
 	}
-
 	/* make the bezier curve */
 	if (cuma->table)
 		MEM_freeN(cuma->table);
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 48385b4f456..7c22a34c7d1 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -3137,7 +3137,7 @@ void BKE_curve_bevelList_make(Object *ob, ListBase *nurbs, bool for_render)
 
 static void calchandleNurb_intern(
         BezTriple *bezt, const BezTriple *prev, const BezTriple *next,
-        bool is_fcurve, bool skip_align, bool fcurve_smoothing)
+        bool is_fcurve, bool skip_align)
 {
 	/* defines to avoid confusion */
 #define p2_h1 ((p2) - 3)
@@ -3151,9 +3151,6 @@ static void calchandleNurb_intern(
 	float len_ratio;
 	const float eps = 1e-5;
 
-	/* assume normal handle until we check */
-	bezt->f5 = HD_AUTOTYPE_NORMAL;
-
 	if (bezt->h1 == 0 && bezt->h2 == 0) {
 		return;
 	}
@@ -3205,13 +3202,7 @@ static void calchandleNurb_intern(
 		tvec[2] = dvec_b[2] / len_b + dvec_a[2] / len_a;
 
 		if (is_fcurve) {
-			if (fcurve_smoothing) {
-				/* force the handlers transition to be 1/3 */
-				len = 6.0f/2.5614f;
-			}
-			else {
-				len = tvec[0];
-			}
+			len = tvec[0];
 		}
 		else {
 			len = len_v3(tvec);
@@ -3222,12 +3213,10 @@ static void calchandleNurb_intern(
 			/* only for fcurves */
 			bool leftviolate = false, rightviolate = false;
 
-			if (!is_fcurve || !fcurve_smoothing) {
-				if (len_a > 5.0f * len_b)
-					len_a = 5.0f * len_b;
-				if (len_b > 5.0f * len_a)
-					len_b = 5.0f * len_a;
-			}
+			if (len_a > 5.0f * len_b)
+				len_a = 5.0f * len_b;
+			if (len_b > 5.0f * len_a)
+				len_b = 5.0f * len_a;
 
 			if (ELEM(bezt->h1, HD_AUTO, HD_AUTO_ANIM)) {
 				len_a /= len;
@@ -3238,7 +3227,6 @@ static void calchandleNurb_intern(
 					float ydiff2 = next->vec[1][1] - bezt->vec[1][1];
 					if ((ydiff1 <= 0.0f && ydiff2 <= 0.0f) || (ydiff1 >= 0.0f && ydiff2 >= 0.0f)) {
 						bezt->vec[0][1] = bezt->vec[1][1];
-						bezt->f5 = HD_AUTOTYPE_SPECIAL;
 					}
 					else { /* handles should not be beyond y coord of two others */
 						if (ydiff1 <= 0.0f) {
@@ -3265,7 +3253,6 @@ static void calchandleNurb_intern(
 					float ydiff2 = next->vec[1][1] - bezt->vec[1][1];
 					if ( (ydiff1 <= 0.0f && ydiff2 <= 0.0f) || (ydiff1 >= 0.0f && ydiff2 >= 0.0f) ) {
 						bezt->vec[2][1] = bezt->vec[1][1];
-						bezt->f5 = HD_AUTOTYPE_SPECIAL;
 					}
 					else { /* handles should not be beyond y coord of two others */
 						if (ydiff1 <= 0.0f) {
@@ -3413,7 +3400,7 @@ static void calchandlesNurb_intern(Nurb *nu, bool skip_align)
 	next = bezt + 1;
 
 	while (a--) {
-		calchandleNurb_intern(bezt, prev, next, 0, skip_align, 0);
+		calchandleNurb_intern(bezt, prev, next, 0, skip_align);
 		prev = bezt;
 		if (a == 1) {
 			if (nu->flagu & CU_NURB_CYCLIC)
@@ -3428,1081 +3415,9 @@ static void calchandlesNurb_intern(Nurb *nu, bool skip_align)
 	}
 }
 
-typedef float vec4[4];
-
-static void *allocate_arrays(int count, vec4 ***vectors, float ***floats, char ***chars, const char *name)
-{
-	int num_vectors = 0, num_floats = 0, num_chars = 0;
-
-	while (vectors && vectors[num_vectors]) {
-		num_vectors++;
-	}
-
-	while (floats && floats[num_floats]) {
-		num_floats++;
-	}
-
-	while (chars && chars[num_chars]) {
-		num_chars++;
-	}
-
-	void *buffer = (float*)MEM_mallocN(count * (sizeof(vec4)*num_vectors + sizeof(float)*num_floats + num_chars), name);
-
-	if (!buffer)
-		return NULL;
-
-	vec4 *vptr = buffer;
-
-	for (int i = 0; i < num_vectors; i++, vptr += count)
-		*vectors[i] = vptr;
-
-	float *fptr = (float*)vptr;
-
-	for (int i = 0; i < num_floats; i++, fptr += count)
-		*floats[i] = fptr;
-
-	char *cptr = (char*)fptr;
-
-	for (int i = 0; i < num_chars; i++, cptr += count)
-		*chars[i] = cptr;
-
-	return buffer;
-}
-
-/* computes in which direction to change h[i] to satisfy conditions better */
-static float bezier_relax_direction(float *a, float *b, float *c, float *d, float *h, int i, int count)
-{
-	/* current deviation between sides of the equation */
-	float state = a[i] * h[(i+count-1)%count] + b[i] * h[i] + c[i] * h[(i+1)%count] - d[i];
-
-	/* only the sign is meaningful */
-	return -state * b[i];
-}
-
-static void bezier_lock_unknown(float *a, float *b, float *c, float *d, int i, float value)
-{
-	a[i] = c[i] = 0.0f;
-	b[i] = 1.0f;
-	d[i] = value;
-}
-
-static bool tridiagonal_solve_with_limits(float *a, float *b, float *c, float *d, float *h, float *hmin, float *hmax, int solve_count)
-{
-	float *a0, *b0, *c0, *d0;
-	float **arrays[] = { &a0, &b0, &

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list