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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs