[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60152] trunk/blender/source/blender: move editcurve add functions into their own source file editcurve_add.c

Campbell Barton ideasman42 at gmail.com
Mon Sep 16 02:03:34 CEST 2013


Revision: 60152
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60152
Author:   campbellbarton
Date:     2013-09-16 00:03:33 +0000 (Mon, 16 Sep 2013)
Log Message:
-----------
move editcurve add functions into their own source file editcurve_add.c

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_curve.h
    trunk/blender/source/blender/blenkernel/intern/curve.c
    trunk/blender/source/blender/editors/curve/CMakeLists.txt
    trunk/blender/source/blender/editors/curve/curve_intern.h
    trunk/blender/source/blender/editors/curve/editcurve.c
    trunk/blender/source/blender/editors/curve/lorem.c

Added Paths:
-----------
    trunk/blender/source/blender/editors/curve/editcurve_add.c

Modified: trunk/blender/source/blender/blenkernel/BKE_curve.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_curve.h	2013-09-15 23:58:00 UTC (rev 60151)
+++ trunk/blender/source/blender/blenkernel/BKE_curve.h	2013-09-16 00:03:33 UTC (rev 60152)
@@ -115,6 +115,7 @@
 void BKE_nurbList_handles_set(struct ListBase *editnurb, short code);
 
 void BKE_nurbList_handles_autocalc(ListBase *editnurb, int flag);
+void BKE_nurbList_flag_set(ListBase *editnurb, short flag);
 
 void BKE_nurb_free(struct Nurb *nu);
 struct Nurb *BKE_nurb_duplicate(struct Nurb *nu);

Modified: trunk/blender/source/blender/blenkernel/intern/curve.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/curve.c	2013-09-15 23:58:00 UTC (rev 60151)
+++ trunk/blender/source/blender/blenkernel/intern/curve.c	2013-09-16 00:03:33 UTC (rev 60152)
@@ -3308,6 +3308,33 @@
 	}
 }
 
+void BKE_nurbList_flag_set(ListBase *editnurb, short flag)
+{
+	Nurb *nu;
+	BezTriple *bezt;
+	BPoint *bp;
+	int a;
+
+	for (nu = editnurb->first; nu; nu = nu->next) {
+		if (nu->type == CU_BEZIER) {
+			a = nu->pntsu;
+			bezt = nu->bezt;
+			while (a--) {
+				bezt->f1 = bezt->f2 = bezt->f3 = flag;
+				bezt++;
+			}
+		}
+		else {
+			a = nu->pntsu * nu->pntsv;
+			bp = nu->bp;
+			while (a--) {
+				bp->f1 = flag;
+				bp++;
+			}
+		}
+	}
+}
+
 void BKE_nurb_direction_switch(Nurb *nu)
 {
 	BezTriple *bezt1, *bezt2;

Modified: trunk/blender/source/blender/editors/curve/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/editors/curve/CMakeLists.txt	2013-09-15 23:58:00 UTC (rev 60151)
+++ trunk/blender/source/blender/editors/curve/CMakeLists.txt	2013-09-16 00:03:33 UTC (rev 60152)
@@ -36,6 +36,7 @@
 set(SRC
 	curve_ops.c
 	editcurve.c
+	editcurve_add.c
 	editfont.c
 	lorem.c
 

Modified: trunk/blender/source/blender/editors/curve/curve_intern.h
===================================================================
--- trunk/blender/source/blender/editors/curve/curve_intern.h	2013-09-15 23:58:00 UTC (rev 60151)
+++ trunk/blender/source/blender/editors/curve/curve_intern.h	2013-09-16 00:03:33 UTC (rev 60152)
@@ -33,6 +33,9 @@
 #define __CURVE_INTERN_H__
 
 /* internal exports only */
+struct ListBase;
+struct EditNurb;
+struct Object;
 struct wmOperatorType;
 
 /* lorem.c */
@@ -71,6 +74,7 @@
 void FONT_OT_textbox_add(struct wmOperatorType *ot);
 void FONT_OT_textbox_remove(struct wmOperatorType *ot);
 
+
 /* editcurve.c */
 void CURVE_OT_hide(struct wmOperatorType *ot);
 void CURVE_OT_reveal(struct wmOperatorType *ot);
@@ -93,19 +97,6 @@
 void CURVE_OT_smooth_radius(struct wmOperatorType *ot);
 void CURVE_OT_smooth_tilt(struct wmOperatorType *ot);
 
-void CURVE_OT_primitive_bezier_curve_add(struct wmOperatorType *ot);
-void CURVE_OT_primitive_bezier_circle_add(struct wmOperatorType *ot);
-void CURVE_OT_primitive_nurbs_curve_add(struct wmOperatorType *ot);
-void CURVE_OT_primitive_nurbs_circle_add(struct wmOperatorType *ot);
-void CURVE_OT_primitive_nurbs_path_add(struct wmOperatorType *ot);
-
-void SURFACE_OT_primitive_nurbs_surface_curve_add(struct wmOperatorType *ot);
-void SURFACE_OT_primitive_nurbs_surface_circle_add(struct wmOperatorType *ot);
-void SURFACE_OT_primitive_nurbs_surface_surface_add(struct wmOperatorType *ot);
-void SURFACE_OT_primitive_nurbs_surface_cylinder_add(struct wmOperatorType *ot);
-void SURFACE_OT_primitive_nurbs_surface_sphere_add(struct wmOperatorType *ot);
-void SURFACE_OT_primitive_nurbs_surface_torus_add(struct wmOperatorType *ot);
-
 void CURVE_OT_de_select_first(struct wmOperatorType *ot);
 void CURVE_OT_de_select_last(struct wmOperatorType *ot);
 void CURVE_OT_select_all(struct wmOperatorType *ot);
@@ -127,5 +118,24 @@
 void CURVE_OT_extrude(struct wmOperatorType *ot);
 void CURVE_OT_cyclic_toggle(struct wmOperatorType *ot);
 
-#endif /* ED_UTIL_INTERN_H */
+/* helper functions */
+void ed_editnurb_translate_flag(struct ListBase *editnurb, short flag, const float vec[3]);
+bool ed_editnurb_extrude_flag(struct EditNurb *editnurb, short flag);
+bool ed_editnurb_spin(float viewmat[4][4], struct Object *obedit, const float axis[3], const float cent[3]);
 
+
+/* editcurve_add.c */
+void CURVE_OT_primitive_bezier_curve_add(struct wmOperatorType *ot);
+void CURVE_OT_primitive_bezier_circle_add(struct wmOperatorType *ot);
+void CURVE_OT_primitive_nurbs_curve_add(struct wmOperatorType *ot);
+void CURVE_OT_primitive_nurbs_circle_add(struct wmOperatorType *ot);
+void CURVE_OT_primitive_nurbs_path_add(struct wmOperatorType *ot);
+
+void SURFACE_OT_primitive_nurbs_surface_curve_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_circle_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_surface_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_cylinder_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_sphere_add(struct wmOperatorType *ot);
+void SURFACE_OT_primitive_nurbs_surface_torus_add(struct wmOperatorType *ot);
+
+#endif /* __CURVE_INTERN_H__ */

Modified: trunk/blender/source/blender/editors/curve/editcurve.c
===================================================================
--- trunk/blender/source/blender/editors/curve/editcurve.c	2013-09-15 23:58:00 UTC (rev 60151)
+++ trunk/blender/source/blender/editors/curve/editcurve.c	2013-09-16 00:03:33 UTC (rev 60152)
@@ -29,16 +29,6 @@
  *  \ingroup edcurve
  */
 
-#include <math.h>
-#include <string.h>
-
-#ifndef WIN32
-#include <unistd.h>
-#else
-#include <io.h>
-#endif
-#include <stdlib.h>
-
 #include "DNA_key_types.h"
 #include "DNA_object_types.h"
 #include "DNA_scene_types.h"
@@ -49,9 +39,7 @@
 #include "BLI_blenlib.h"
 #include "BLI_bitmap.h"
 #include "BLI_math.h"
-#include "BLI_dynstr.h"
 #include "BLI_rand.h"
-#include "BLI_utildefines.h"
 #include "BLI_ghash.h"
 
 #include "BLF_translation.h"
@@ -62,7 +50,6 @@
 #include "BKE_fcurve.h"
 #include "BKE_global.h"
 #include "BKE_key.h"
-#include "BKE_library.h"
 #include "BKE_main.h"
 #include "BKE_report.h"
 #include "BKE_animsys.h"
@@ -126,11 +113,6 @@
 static void adduplicateflagNurb(Object *obedit, ListBase *newnurb, const short flag, const bool split);
 static int curve_delete_selected(Object *obedit, const eCurveElem_Types type, const bool split);
 
-static float nurbcircle[8][2] = {
-	{0.0, -1.0}, {-1.0, -1.0}, {-1.0, 0.0}, {-1.0,  1.0},
-	{0.0,  1.0}, { 1.0,  1.0}, { 1.0, 0.0}, { 1.0, -1.0}
-};
-
 ListBase *object_editcurve_get(Object *ob)
 {
 	if (ob && ELEM(ob->type, OB_CURVE, OB_SURF)) {
@@ -1557,35 +1539,8 @@
 	return 0;
 }
 
-static void setflagsNurb(ListBase *editnurb, short flag)
+static void rotateflagNurb(ListBase *editnurb, short flag, const float cent[3], float rotmat[3][3])
 {
-	Nurb *nu;
-	BezTriple *bezt;
-	BPoint *bp;
-	int a;
-
-	for (nu = editnurb->first; nu; nu = nu->next) {
-		if (nu->type == CU_BEZIER) {
-			a = nu->pntsu;
-			bezt = nu->bezt;
-			while (a--) {
-				bezt->f1 = bezt->f2 = bezt->f3 = flag;
-				bezt++;
-			}
-		}
-		else {
-			a = nu->pntsu * nu->pntsv;
-			bp = nu->bp;
-			while (a--) {
-				bp->f1 = flag;
-				bp++;
-			}
-		}
-	}
-}
-
-static void rotateflagNurb(ListBase *editnurb, short flag, float *cent, float rotmat[3][3])
-{
 	/* all verts with (flag & 'flag') rotate */
 	Nurb *nu;
 	BPoint *bp;
@@ -1608,7 +1563,7 @@
 	}
 }
 
-static void translateflagNurb(ListBase *editnurb, short flag, const float vec[3])
+void ed_editnurb_translate_flag(ListBase *editnurb, short flag, const float vec[3])
 {
 	/* all verts with ('flag' & flag) translate */
 	Nurb *nu;
@@ -1794,11 +1749,12 @@
 }
 
 /* only for OB_SURF */
-static short extrudeflagNurb(EditNurb *editnurb, int flag)
+bool ed_editnurb_extrude_flag(EditNurb *editnurb, short flag)
 {
 	Nurb *nu;
 	BPoint *bp, *bpn, *newbp;
-	int ok = 0, a, u, v, len;
+	int a, u, v, len;
+	bool ok = false;
 
 	nu = editnurb->nurbs.first;
 	while (nu) {
@@ -1817,7 +1773,7 @@
 				a--;
 			}
 			if (a == 0) {
-				ok = 1;
+				ok = true;
 				newbp = (BPoint *)MEM_mallocN(2 * nu->pntsu * sizeof(BPoint), "extrudeNurb1");
 				ED_curve_bpcpy(editnurb, newbp, nu->bp, nu->pntsu);
 				bp = newbp + nu->pntsu;
@@ -1851,7 +1807,7 @@
 				}
 
 				if (u == 0 || u == nu->pntsv - 1) {      /* row in u-direction selected */
-					ok = 1;
+					ok = true;
 					newbp = (BPoint *)MEM_mallocN(nu->pntsu * (nu->pntsv + 1) *
 					                              sizeof(BPoint), "extrudeNurb1");
 					if (u == 0) {
@@ -1879,7 +1835,7 @@
 					BKE_nurb_knot_calc_v(nu);
 				}
 				else if (v == 0 || v == nu->pntsu - 1) {     /* column in v-direction selected */
-					ok = 1;
+					ok = true;
 					bpn = newbp = (BPoint *)MEM_mallocN((nu->pntsu + 1) * nu->pntsv * sizeof(BPoint), "extrudeNurb1");
 					bp = nu->bp;
 
@@ -4296,7 +4252,7 @@
 			}
 		}
 		else {
-			setflagsNurb(editnurb, 0);
+			BKE_nurbList_flag_set(editnurb, 0);
 
 			if (bezt) {
 
@@ -4332,7 +4288,7 @@
 
 /* 'cent' is in object space and 'dvec' in worldspace.
  */
-static int spin_nurb(float viewmat[4][4], Object *obedit, float *axis, float *cent)
+bool ed_editnurb_spin(float viewmat[4][4], Object *obedit, const float axis[3], const float cent[3])
 {
 	Curve *cu = (Curve *)obedit->data;
 	ListBase *editnurb = object_editcurve_get(obedit);
@@ -4340,7 +4296,8 @@
 	float si, phi, n[3], q[4], cmat[3][3], tmat[3][3], imat[3][3];
 	float bmat[3][3], rotmat[3][3], scalemat1[3][3], scalemat2[3][3];
 	float persmat[3][3], persinv[3][3];
-	short a, ok, changed = 0;
+	bool ok, changed = false;
+	int a;
 
 	copy_m3_m4(persmat, viewmat);
 	invert_m3_m3(persinv, persmat);
@@ -4379,19 +4336,19 @@
 	mul_m3_m3m3(tmat, persinv, cmat);
 	mul_m3_m3m3(scalemat2, imat, tmat);
 
-	ok = 1;
+	ok = true;
 
 	for (a = 0; a < 7; a++) {
-		ok = extrudeflagNurb(cu->editnurb, 1);
+		ok = ed_editnurb_extrude_flag(cu->editnurb, 1);
 
-		if (ok == 0)
+		if (ok == false)
 			return changed;
 
-		changed = 1;
+		changed = true;
 
 		rotateflagNurb(editnurb, SELECT, cent, rotmat);
 
-		if ((a & SELECT) == 0) {
+		if ((a & 1) == 0) {
 			rotateflagNurb(editnurb, SELECT, cent, scalemat1);
 			weightflagNurb(editnurb, SELECT, 0.25 * M_SQRT2);
 		}
@@ -4431,7 +4388,7 @@
 	else
 		unit_m4(viewmat);
 	
-	if (!spin_nurb(viewmat, obedit, axis, cent)) {
+	if (!ed_editnurb_spin(viewmat, obedit, axis, cent)) {
 		BKE_report(op->reports, RPT_ERROR, "Cannot spin");
 		return OPERATOR_CANCELLED;
 	}
@@ -4846,7 +4803,7 @@
 		addvert_Nurb(C, 'e', NULL);
 	}

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list