[Bf-blender-cvs] [3091165] soc-2014-nurbs: Promoted curve.c to cpp (changed extension, added casts), moved gridmesh into blenkernel/intern, the location of the old tessellation code, and moved the GLUT debug tool into the tests folder which seems like the appropriate place for it.

Jonathan deWerd noreply at git.blender.org
Sat Jul 12 09:24:37 CEST 2014


Commit: 30911654722ecfd17204a5b4c8d5ad0ae5e3d348
Author: Jonathan deWerd
Date:   Thu Jul 10 01:55:53 2014 -0400
https://developer.blender.org/rB30911654722ecfd17204a5b4c8d5ad0ae5e3d348

Promoted curve.c to cpp (changed extension, added casts), moved gridmesh into blenkernel/intern, the location of the old tessellation code, and moved the GLUT debug tool into the tests folder which seems like the appropriate place for it.

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

M	source/blender/blenkernel/BKE_curve.h
A	source/blender/blenkernel/BKE_surf_trimtess.h
M	source/blender/blenkernel/CMakeLists.txt
D	source/blender/blenkernel/intern/curve.c
A	source/blender/blenkernel/intern/curve.cpp
M	source/blender/blenkernel/intern/displist.c
A	source/blender/blenkernel/intern/surf_gridmesh.cpp
A	source/blender/blenkernel/intern/surf_gridmesh.h
M	source/blender/editors/curve/CMakeLists.txt
D	source/blender/editors/curve/GridMesh.cpp
D	source/blender/editors/curve/GridMesh.h
D	source/blender/editors/curve/GridMesh_GLUT_debug_tool.cpp
D	source/blender/editors/curve/surf_tess.cpp
D	source/blender/editors/curve/surf_tess.h
A	tests/interactive/nurbs_trimtess.cpp

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

diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h
index 0f9f8cb..6dd1241 100644
--- a/source/blender/blenkernel/BKE_curve.h
+++ b/source/blender/blenkernel/BKE_curve.h
@@ -177,4 +177,9 @@ void BKE_nurb_handles_autocalc(struct Nurb *nu, int flag);
 void BKE_nurb_bezt_handle_test(struct BezTriple *bezt, const bool use_handle);
 void BKE_nurb_handles_test(struct Nurb *nu, const bool use_handles);
 
+/* Does not traverse nu's linked list. Fills dl with a mesh corresponding to
+ * the single surface nu, performing trim if necessary.
+ */
+void BKE_nurb_make_displist(struct Nurb *nu, struct DispList *dl);
+
 #endif  /* __BKE_CURVE_H__ */
diff --git a/source/blender/editors/curve/surf_tess.h b/source/blender/blenkernel/BKE_surf_trimtess.h
similarity index 100%
rename from source/blender/editors/curve/surf_tess.h
rename to source/blender/blenkernel/BKE_surf_trimtess.h
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 0caf7d1..d3810a5 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -79,7 +79,7 @@ set(SRC
 	intern/constraint.c
 	intern/context.c
         intern/crazyspace.c
-        intern/curve.c
+        intern/curve.cpp
 	intern/customdata.c
 	intern/customdata_file.c
 	intern/deform.c
@@ -154,6 +154,7 @@ set(SRC
 	intern/speaker.c
 	intern/subsurf_ccg.c
 	intern/suggestions.c
+	intern/surf_gridmesh.cpp
 	intern/text.c
 	intern/texture.c
 	intern/tracking.c
@@ -253,6 +254,7 @@ set(SRC
 	BKE_speaker.h
 	BKE_subsurf.h
 	BKE_suggestions.h
+	BKE_surf_trimtess.h
 	BKE_editmesh.h
 	BKE_editmesh_bvh.h
 	BKE_text.h
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.cpp
similarity index 94%
rename from source/blender/blenkernel/intern/curve.c
rename to source/blender/blenkernel/intern/curve.cpp
index 83ea31c..041f571 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.cpp
@@ -29,7 +29,7 @@
  *  \ingroup bke
  */
 
-
+extern "C" {
 #include <math.h>  // floor
 #include <string.h>
 #include <stdlib.h>
@@ -60,6 +60,11 @@
 #include "BKE_main.h"
 #include "BKE_object.h"
 #include "BKE_material.h"
+}
+
+#include <CoreServices/CoreServices.h>
+#include <mach/mach.h>
+#include <mach/mach_time.h>
 
 /* globals */
 
@@ -164,7 +169,7 @@ Curve *BKE_curve_add(Main *bmain, const char *name, int type)
 {
 	Curve *cu;
 
-	cu = BKE_libblock_alloc(bmain, ID_CU, name);
+	cu = (Curve*)BKE_libblock_alloc(bmain, ID_CU, name);
 	copy_v3_fl(cu->size, 1.0f);
 	cu->flag = CU_FRONT | CU_BACK | CU_DEFORM_BOUNDS_OFF | CU_PATH_RADIUS;
 	cu->pathlen = 100;
@@ -189,12 +194,12 @@ Curve *BKE_curve_add(Main *bmain, const char *name, int type)
 	if (type == OB_FONT) {
 		cu->vfont = cu->vfontb = cu->vfonti = cu->vfontbi = BKE_vfont_builtin_get();
 		cu->vfont->id.us += 4;
-		cu->str = MEM_mallocN(12, "str");
+		cu->str = (char*)MEM_mallocN(12, "str");
 		BLI_strncpy(cu->str, "Text", 12);
 		cu->len = cu->len_wchar = cu->pos = 4;
-		cu->strinfo = MEM_callocN(12 * sizeof(CharInfo), "strinfo new");
+		cu->strinfo = (struct CharInfo*)MEM_callocN(12 * sizeof(CharInfo), "strinfo new");
 		cu->totbox = cu->actbox = 1;
-		cu->tb = MEM_callocN(MAXTEXTBOX * sizeof(TextBox), "textbox");
+		cu->tb = (struct TextBox*)MEM_callocN(MAXTEXTBOX * sizeof(TextBox), "textbox");
 		cu->tb[0].w = cu->tb[0].h = 0.0;
 	}
 
@@ -206,19 +211,19 @@ Curve *BKE_curve_copy(Curve *cu)
 	Curve *cun;
 	int a;
 
-	cun = BKE_libblock_copy(&cu->id);
+	cun = (Curve*)BKE_libblock_copy(&cu->id);
 	BLI_listbase_clear(&cun->nurb);
 	BKE_nurbList_duplicate(&(cun->nurb), &(cu->nurb));
 
-	cun->mat = MEM_dupallocN(cu->mat);
+	cun->mat = (struct Material **)MEM_dupallocN(cu->mat);
 	for (a = 0; a < cun->totcol; a++) {
 		id_us_plus((ID *)cun->mat[a]);
 	}
 
-	cun->str = MEM_dupallocN(cu->str);
-	cun->strinfo = MEM_dupallocN(cu->strinfo);
-	cun->tb = MEM_dupallocN(cu->tb);
-	cun->bb = MEM_dupallocN(cu->bb);
+	cun->str = (char*)MEM_dupallocN(cu->str);
+	cun->strinfo = (struct CharInfo*)MEM_dupallocN(cu->strinfo);
+	cun->tb = (struct TextBox*)MEM_dupallocN(cu->tb);
+	cun->bb = (struct BoundBox*)MEM_dupallocN(cu->bb);
 
 	cun->key = BKE_key_copy(cu->key);
 	if (cun->key) cun->key->from = (ID *)cun;
@@ -271,7 +276,7 @@ void BKE_curve_make_local(Curve *cu)
 		return;
 	}
 
-	for (ob = bmain->object.first; ob && ELEM(0, is_lib, is_local); ob = ob->id.next) {
+	for (ob = (Object*)bmain->object.first; ob && ELEM(0, is_lib, is_local); ob = (Object*)ob->id.next) {
 		if (ob->data == cu) {
 			if (ob->id.lib) is_lib = true;
 			else is_local = true;
@@ -288,7 +293,7 @@ void BKE_curve_make_local(Curve *cu)
 
 		BKE_id_lib_local_paths(bmain, cu->id.lib, &cu_new->id);
 
-		for (ob = bmain->object.first; ob; ob = ob->id.next) {
+		for (ob = (Object*)bmain->object.first; ob; ob = (Object*)ob->id.next) {
 			if (ob->data == cu) {
 				if (ob->id.lib == NULL) {
 					ob->data = cu_new;
@@ -322,7 +327,7 @@ short BKE_curve_type_get(Curve *cu)
 	if (!cu->type) {
 		type = OB_CURVE;
 
-		for (nu = cu->nurb.first; nu; nu = nu->next) {
+		for (nu = (Nurb*)cu->nurb.first; nu; nu = (Nurb*)nu->next) {
 			if (nu->pntsv > 1) {
 				type = OB_SURF;
 			}
@@ -335,7 +340,7 @@ short BKE_curve_type_get(Curve *cu)
 void BKE_curve_curve_dimension_update(Curve *cu)
 {
 	ListBase *nurbs = BKE_curve_nurbs_get(cu);
-	Nurb *nu = nurbs->first;
+	Nurb *nu = (Nurb*)nurbs->first;
 
 	if (cu->flag & CU_3D) {
 		for (; nu; nu = nu->next) {
@@ -356,7 +361,7 @@ void BKE_curve_curve_dimension_update(Curve *cu)
 
 void BKE_curve_type_test(Object *ob)
 {
-	ob->type = BKE_curve_type_get(ob->data);
+	ob->type = BKE_curve_type_get((Curve*)ob->data);
 
 	if (ob->type == OB_CURVE)
 		BKE_curve_curve_dimension_update((Curve *)ob->data);
@@ -368,7 +373,7 @@ void BKE_curve_boundbox_calc(Curve *cu, float r_loc[3], float r_size[3])
 	float min[3], max[3];
 	float mloc[3], msize[3];
 
-	if (cu->bb == NULL) cu->bb = MEM_callocN(sizeof(BoundBox), "boundbox");
+	if (cu->bb == NULL) cu->bb = (struct BoundBox*)MEM_callocN(sizeof(BoundBox), "boundbox");
 	bb = cu->bb;
 
 	if (!r_loc) r_loc = mloc;
@@ -393,7 +398,7 @@ void BKE_curve_boundbox_calc(Curve *cu, float r_loc[3], float r_size[3])
 
 BoundBox *BKE_curve_boundbox_get(Object *ob)
 {
-	Curve *cu = ob->data;
+	Curve *cu = (Curve*)ob->data;
 
 	if (ob->bb)
 		return ob->bb;
@@ -441,7 +446,7 @@ bool BKE_nurbList_index_get_co(ListBase *nurb, const int index, float r_co[3])
 	Nurb *nu;
 	int tot = 0;
 
-	for (nu = nurb->first; nu; nu = nu->next) {
+	for (nu = (Nurb*)nurb->first; nu; nu = nu->next) {
 		int tot_nu;
 		if (nu->type == CU_BEZIER) {
 			tot_nu = nu->pntsu;
@@ -468,7 +473,7 @@ int BKE_nurbList_verts_count(ListBase *nurb)
 	Nurb *nu;
 	int tot = 0;
 
-	nu = nurb->first;
+	nu = (Nurb*)nurb->first;
 	while (nu) {
 		if (nu->bezt)
 			tot += 3 * nu->pntsu;
@@ -485,7 +490,7 @@ int BKE_nurbList_verts_count_without_handles(ListBase *nurb)
 	Nurb *nu;
 	int tot = 0;
 
-	nu = nurb->first;
+	nu = (Nurb*)nurb->first;
 	while (nu) {
 		if (nu->bezt)
 			tot += nu->pntsu;
@@ -529,7 +534,7 @@ void BKE_nurbList_free(ListBase *lb)
 
 	if (lb == NULL) return;
 
-	nu = lb->first;
+	nu = (Nurb*)lb->first;
 	while (nu) {
 		next = nu->next;
 		BKE_nurb_free(nu);
@@ -563,14 +568,14 @@ Nurb *BKE_nurb_duplicate(Nurb *nu)
 		if (nu->knotsu) {
 			len = KNOTSU(nu);
 			if (len) {
-				newnu->knotsu = MEM_mallocN(len * sizeof(float), "duplicateNurb4");
+				newnu->knotsu = (float*)MEM_mallocN(len * sizeof(float), "duplicateNurb4");
 				memcpy(newnu->knotsu, nu->knotsu, sizeof(float) * len);
 			}
 		}
 		if (nu->pntsv > 1 && nu->knotsv) {
 			len = KNOTSV(nu);
 			if (len) {
-				newnu->knotsv = MEM_mallocN(len * sizeof(float), "duplicateNurb5");
+				newnu->knotsv = (float*)MEM_mallocN(len * sizeof(float), "duplicateNurb5");
 				memcpy(newnu->knotsv, nu->knotsv, sizeof(float) * len);
 			}
 		}
@@ -604,7 +609,7 @@ void BKE_nurbList_duplicate(ListBase *lb1, ListBase *lb2)
 
 	BKE_nurbList_free(lb1);
 
-	nu = lb2->first;
+	nu = (Nurb*)lb2->first;
 	while (nu) {
 		nun = BKE_nurb_duplicate(nu);
 		BLI_addtail(lb1, nun);
@@ -703,7 +708,7 @@ void BKE_nurb_points_add(Nurb *nu, int number)
 	BPoint *bp;
 	int i;
 
-	nu->bp = MEM_recallocN(nu->bp, (nu->pntsu + number) * sizeof(BPoint));
+	nu->bp = (BPoint*)MEM_recallocN(nu->bp, (nu->pntsu + number) * sizeof(BPoint));
 
 	for (i = 0, bp = &nu->bp[nu->pntsu]; i < number; i++, bp++) {
 		bp->radius = 1.0f;
@@ -717,7 +722,7 @@ void BKE_nurb_bezierPoints_add(Nurb *nu, int number)
 	BezTriple *bezt;
 	int i;
 
-	nu->bezt = MEM_recallocN(nu->bezt, (nu->pntsu + number) * sizeof(BezTriple));
+	nu->bezt = (BezTriple*)MEM_recallocN(nu->bezt, (nu->pntsu + number) * sizeof(BezTriple));
 
 	for (i = 0, bezt = &nu->bezt[nu->pntsu]; i < number; i++, bezt++) {
 		bezt->radius = 1.0f;
@@ -950,7 +955,7 @@ static void makeknots(Nurb *nu, short uv)
 			if (nu->knotsu)
 				MEM_freeN(nu->knotsu);
 			if (BKE_nurb_check_valid_u(nu)) {
-				nu->knotsu = MEM_callocN(4 + sizeof(float) * KNOTSU(nu), "makeknots");
+				nu->knotsu = (float*)MEM_callocN(4 + sizeof(float) * KNOTSU(nu), "makeknots");
 				if (nu->flagu & CU_NURB_CYCLIC) {
 					calcknots(nu->knotsu, nu->pntsu, nu->orderu, 0);  /* cyclic should be uniform */
 					makecyclicknots(nu->knotsu, nu->pntsu, nu->orderu);
@@ -966,7 +971,7 @@ static void makeknots(Nurb *nu, short uv)
 			if (nu->knotsv)
 				MEM_freeN(nu->knotsv);
 			if (BKE_nurb_check_valid_v(nu)) {
-				nu->knotsv = MEM_callocN(4 + sizeof(float) * KNOTSV(nu), "makeknots");
+				nu->knotsv = (float*)MEM_callocN(4 + sizeof(float) * KNOTSV(nu), "makeknots");
 				if (nu->flagv & CU_NURB_CYCLIC) {
 					calcknots(nu->knotsv, nu->pntsv, nu->orderv, 0);  /* cyclic should be uniform */
 					makecyclicknots(nu->knotsv, nu->pntsv, nu->orderv);
@@ -1406,7 +1411,7 @@ float *BKE_curve_surf_make_orco(Object *ob)
 {
 	/* Note: this function is used in convertblender only atm, so
 	 * suppose nonzero curve's render resolution should always be used */
-	Curve *cu = ob->data;
+	Curve *cu = (Curve*)ob->data;
 	Nurb *nu;
 	int a, b, tot = 0;
 	int sizeu, sizev;
@@ -1414,7 +1419,7 @@ float *BKE_curve_surf_make_orc

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list