diff options
author | Joseph Eagar <joeedh@gmail.com> | 2009-05-18 12:46:04 +0400 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2009-05-18 12:46:04 +0400 |
commit | 0ba863de29ad6768260e1b4e67f3eec9c8ae4c81 (patch) | |
tree | b1c606be25678a749abcb46a5877d8ec262c15ba /source/blender/blenkernel | |
parent | 166c270f060e0ffadbc53c27afb112f294e7425e (diff) |
renamed BMTessMesh to BMEditMesh, did some more monkeywork, cleaned up the more serious warnings, and also non-backbuffered selection sortof works now, though it still needs plenty of work.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_DerivedMesh.h | 16 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_cdderivedmesh.h | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_mesh.h | 5 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_modifier.h | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_tessmesh.h | 14 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 26 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/anim.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/constraint.c | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/editderivedbmesh.c | 18 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/exotic.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/modifier.c | 68 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/shrinkwrap.c | 5 |
14 files changed, 92 insertions, 85 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 0365d2b5a94..8df30b1eaf5 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -52,12 +52,12 @@ struct MTFace; struct Object; struct Scene; struct Mesh; -struct BMTessMesh; +struct BMEditMesh; struct ModifierData; struct MCol; struct ColorBand; struct GPUVertexAttribs; -struct BMTessMesh; +struct BMEditMesh; /* number of sub-elements each mesh element has (for interpolation) */ #define SUB_ELEMS_VERT 0 @@ -433,7 +433,7 @@ DerivedMesh *mesh_create_derived_for_modifier(struct Scene *scene, struct Object DerivedMesh *mesh_create_derived_render(struct Scene *scene, struct Object *ob, CustomDataMask dataMask); -DerivedMesh *getEditDerivedBMesh(struct BMTessMesh *em, struct Object *ob, +DerivedMesh *getEditDerivedBMesh(struct BMEditMesh *em, struct Object *ob, float (*vertexCos)[3]); DerivedMesh *mesh_create_derived_index_render(struct Scene *scene, struct Object *ob, CustomDataMask dataMask, int index); @@ -448,17 +448,17 @@ DerivedMesh *mesh_create_derived_no_deform_render(struct Scene *scene, struct Ob float (*vertCos)[3], CustomDataMask dataMask); -DerivedMesh *editbmesh_get_derived_base(struct Object *, struct BMTessMesh *em); +DerivedMesh *editbmesh_get_derived_base(struct Object *, struct BMEditMesh *em); DerivedMesh *editbmesh_get_derived_cage(struct Scene *scene, struct Object *, - struct BMTessMesh *em, CustomDataMask dataMask); + struct BMEditMesh *em, CustomDataMask dataMask); DerivedMesh *editbmesh_get_derived_cage_and_final(struct Scene *scene, struct Object *, - struct BMTessMesh *em, DerivedMesh **final_r, + struct BMEditMesh *em, DerivedMesh **final_r, CustomDataMask dataMask); -void makeDerivedMesh(struct Scene *scene, struct Object *ob, struct BMTessMesh *em, CustomDataMask dataMask); +void makeDerivedMesh(struct Scene *scene, struct Object *ob, struct BMEditMesh *em, CustomDataMask dataMask); /* returns an array of deform matrices for crazyspace correction, and the number of modifiers left */ -int editbmesh_get_first_deform_matrices(struct Object *, struct BMTessMesh *em, float (**deformmats)[3][3], +int editbmesh_get_first_deform_matrices(struct Object *, struct BMEditMesh *em, float (**deformmats)[3][3], float (**deformcos)[3]); void weight_to_rgb(float input, float *fr, float *fg, float *fb); diff --git a/source/blender/blenkernel/BKE_cdderivedmesh.h b/source/blender/blenkernel/BKE_cdderivedmesh.h index f40d3dae087..d4fee61f9c6 100644 --- a/source/blender/blenkernel/BKE_cdderivedmesh.h +++ b/source/blender/blenkernel/BKE_cdderivedmesh.h @@ -38,7 +38,7 @@ #include "BKE_DerivedMesh.h" struct DerivedMesh; -struct BMTessMesh; +struct BMEditMesh; struct EditMesh; struct Mesh; struct Object; @@ -55,8 +55,8 @@ struct DerivedMesh *CDDM_from_mesh(struct Mesh *mesh, struct Object *ob); /* creates a CDDerivedMesh from the given EditMesh */ struct DerivedMesh *CDDM_from_editmesh(struct EditMesh *em, struct Mesh *me); -/* creates a CDDerivedMesh from the given BMTessMesh */ -DerivedMesh *CDDM_from_BMTessMesh(struct BMTessMesh *em, struct Mesh *me); +/* creates a CDDerivedMesh from the given BMEditMesh */ +DerivedMesh *CDDM_from_BMEditMesh(struct BMEditMesh *em, struct Mesh *me); /* Copies the given DerivedMesh with verts, faces & edges stored as * custom element data. diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index 042b3b3046c..b2f533649e3 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -131,7 +131,10 @@ int mesh_layers_menu_charlen(struct CustomData *data, int type); /* use this to void mesh_layers_menu_concat(struct CustomData *data, int type, char *str); int mesh_layers_menu(struct CustomData *data, int type); - +/*accessor functions for editmesh, all access to editmesh must + go through them!*/ +struct EditMesh *EM_GetEditMesh(struct Mesh *me); +void EM_EndEditMesh(struct Mesh *me, struct EditMesh *em); #ifdef __cplusplus } diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h index ce3b5c02873..9637b659ece 100644 --- a/source/blender/blenkernel/BKE_modifier.h +++ b/source/blender/blenkernel/BKE_modifier.h @@ -43,7 +43,7 @@ struct ListBase; struct LinkNode; struct bArmature; struct ModifierData; -struct BMTessMesh; +struct BMEditMesh; typedef enum { /* Should not be used, only for None modifier type */ @@ -131,13 +131,13 @@ typedef struct ModifierTypeInfo { */ void (*deformVertsEM)( struct ModifierData *md, struct Object *ob, - struct BMTessMesh *editData, struct DerivedMesh *derivedData, + struct BMEditMesh *editData, struct DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts); /* Set deform matrix per vertex for crazyspace correction */ void (*deformMatricesEM)( struct ModifierData *md, struct Object *ob, - struct BMTessMesh *editData, struct DerivedMesh *derivedData, + struct BMEditMesh *editData, struct DerivedMesh *derivedData, float (*vertexCos)[3], float (*defMats)[3][3], int numVerts); /********************* Non-deform modifier functions *********************/ @@ -175,7 +175,7 @@ typedef struct ModifierTypeInfo { */ struct DerivedMesh *(*applyModifierEM)( struct ModifierData *md, struct Object *ob, - struct BMTessMesh *editData, + struct BMEditMesh *editData, struct DerivedMesh *derivedData); diff --git a/source/blender/blenkernel/BKE_tessmesh.h b/source/blender/blenkernel/BKE_tessmesh.h index f8b1dfff222..4bffd37e24e 100644 --- a/source/blender/blenkernel/BKE_tessmesh.h +++ b/source/blender/blenkernel/BKE_tessmesh.h @@ -20,7 +20,7 @@ typedef struct BMEditSelection the entire derivedmesh and modifier system works with this structure, and not BMesh. Mesh->editbmesh will store a pointer to this structure.*/ -typedef struct BMTessMesh { +typedef struct BMEditMesh { struct BMesh *bm; /*we store tesselations as triplets of three loops, @@ -50,9 +50,11 @@ typedef struct BMTessMesh { /*selection mode*/ int selectmode, totfacesel, totvertsel, totedgesel; -} BMTessMesh; -void TM_RecalcTesselation(BMTessMesh *tm); -BMTessMesh *TM_Create(BMesh *bm); -BMTessMesh *TM_Copy(BMTessMesh *tm); -void TM_Free(BMTessMesh *em); + int mat_nr; +} BMEditMesh; + +void TM_RecalcTesselation(BMEditMesh *tm); +BMEditMesh *TM_Create(BMesh *bm); +BMEditMesh *TM_Copy(BMEditMesh *tm); +void TM_Free(BMEditMesh *em); diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 48e16639f45..f5eb628ffe6 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1413,7 +1413,7 @@ DerivedMesh *mesh_create_derived_for_modifier(Scene *scene, Object *ob, Modifier return dm; } -static float *get_editbmesh_orco_verts(BMTessMesh *em) +static float *get_editbmesh_orco_verts(BMEditMesh *em) { BMIter iter; BMVert *eve; @@ -1434,13 +1434,13 @@ static float *get_editbmesh_orco_verts(BMTessMesh *em) return orco; } -static DerivedMesh *create_orco_dm(Object *ob, Mesh *me, BMTessMesh *em) +static DerivedMesh *create_orco_dm(Object *ob, Mesh *me, BMEditMesh *em) { DerivedMesh *dm; float (*orco)[3]; if(em) { - dm= CDDM_from_BMTessMesh(em, me); + dm= CDDM_from_BMEditMesh(em, me); orco= (float(*)[3])get_editbmesh_orco_verts(em); } else { @@ -1455,7 +1455,7 @@ static DerivedMesh *create_orco_dm(Object *ob, Mesh *me, BMTessMesh *em) return dm; } -static void add_orco_dm(Object *ob, BMTessMesh *em, DerivedMesh *dm, DerivedMesh *orcodm) +static void add_orco_dm(Object *ob, BMEditMesh *em, DerivedMesh *dm, DerivedMesh *orcodm) { float (*orco)[3], (*layerorco)[3]; int totvert; @@ -1725,7 +1725,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos BLI_linklist_free(datamasks, NULL); } -static float (*editbmesh_getVertexCos(BMTessMesh *em, int *numVerts_r))[3] +static float (*editbmesh_getVertexCos(BMEditMesh *em, int *numVerts_r))[3] { int i, numVerts = *numVerts_r = em->bm->totvert; float (*cos)[3]; @@ -1759,7 +1759,7 @@ static int editbmesh_modifier_is_enabled(ModifierData *md, DerivedMesh *dm) return 1; } -static void editbmesh_calc_modifiers(Scene *scene, Object *ob, BMTessMesh *em, DerivedMesh **cage_r, +static void editbmesh_calc_modifiers(Scene *scene, Object *ob, BMEditMesh *em, DerivedMesh **cage_r, DerivedMesh **final_r, CustomDataMask dataMask) { @@ -1842,7 +1842,7 @@ static void editbmesh_calc_modifiers(Scene *scene, Object *ob, BMTessMesh *em, D } } else { - dm = CDDM_from_BMTessMesh(em, ob->data); + dm = CDDM_from_BMEditMesh(em, ob->data); if(deformedVerts) { CDDM_apply_vert_coords(dm, deformedVerts); @@ -2107,7 +2107,7 @@ static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask) } -static void editbmesh_build_data(Scene *scene, Object *obedit, BMTessMesh *em, CustomDataMask dataMask) +static void editbmesh_build_data(Scene *scene, Object *obedit, BMEditMesh *em, CustomDataMask dataMask) { float min[3], max[3]; @@ -2141,7 +2141,7 @@ static void editbmesh_build_data(Scene *scene, Object *obedit, BMTessMesh *em, C em->derivedCage->needsFree = 0; } -void makeDerivedMesh(Scene *scene, Object *ob, BMTessMesh *em, CustomDataMask dataMask) +void makeDerivedMesh(Scene *scene, Object *ob, BMEditMesh *em, CustomDataMask dataMask) { if (em) { editbmesh_build_data(scene, ob, em, dataMask); @@ -2224,7 +2224,7 @@ DerivedMesh *mesh_create_derived_no_deform_render(Scene *scene, Object *ob, /***/ -DerivedMesh *editbmesh_get_derived_cage_and_final(Scene *scene, Object *obedit, BMTessMesh *em, DerivedMesh **final_r, +DerivedMesh *editbmesh_get_derived_cage_and_final(Scene *scene, Object *obedit, BMEditMesh *em, DerivedMesh **final_r, CustomDataMask dataMask) { /* if there's no derived mesh or the last data mask used doesn't include @@ -2238,7 +2238,7 @@ DerivedMesh *editbmesh_get_derived_cage_and_final(Scene *scene, Object *obedit, return em->derivedCage; } -DerivedMesh *editbmesh_get_derived_cage(Scene *scene, Object *obedit, BMTessMesh *em, CustomDataMask dataMask) +DerivedMesh *editbmesh_get_derived_cage(Scene *scene, Object *obedit, BMEditMesh *em, CustomDataMask dataMask) { /* if there's no derived mesh or the last data mask used doesn't include * the data we need, rebuild the derived mesh @@ -2250,7 +2250,7 @@ DerivedMesh *editbmesh_get_derived_cage(Scene *scene, Object *obedit, BMTessMesh return em->derivedCage; } -DerivedMesh *editbmesh_get_derived_base(Object *obedit, BMTessMesh *em) +DerivedMesh *editbmesh_get_derived_base(Object *obedit, BMEditMesh *em) { return getEditDerivedBMesh(em, obedit, NULL); } @@ -2314,7 +2314,7 @@ float *mesh_get_mapped_verts_nors(Scene *scene, Object *ob) /* ********* crazyspace *************** */ -int editbmesh_get_first_deform_matrices(Object *ob, BMTessMesh *em, float (**deformmats)[3][3], float (**deformcos)[3]) +int editbmesh_get_first_deform_matrices(Object *ob, BMEditMesh *em, float (**deformmats)[3][3], float (**deformcos)[3]) { ModifierData *md; DerivedMesh *dm; diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 08fead3b23f..bd99893bc37 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -449,7 +449,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl Scene *sce = NULL; Group *group = NULL; GroupObject * go = NULL; - BMTessMesh *em; + BMEditMesh *em; float vec[3], no[3], pmat[4][4]; int lay, totvert, a, oblay; @@ -564,7 +564,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa Scene *sce = NULL; Group *group = NULL; GroupObject *go = NULL; - BMTessMesh *em; + BMEditMesh *em; float ob__obmat[4][4]; /* needed for groups where the object matrix needs to be modified */ /* simple preventing of too deep nested groups */ diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index e6e144acbe5..7476d2f5fda 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -1084,7 +1084,7 @@ static void loops_to_customdata_corners(BMesh *bm, CustomData *facedata, } } -DerivedMesh *CDDM_from_BMTessMesh(BMTessMesh *em, Mesh *me) +DerivedMesh *CDDM_from_BMEditMesh(BMEditMesh *em, Mesh *me) { DerivedMesh *dm = CDDM_new(em->bm->totvert, em->bm->totedge, em->tottri); CDDerivedMesh *cddm = (CDDerivedMesh*)dm; diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index b238116f0a1..5adbcadcf39 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -66,6 +66,7 @@ #include "BKE_global.h" #include "BKE_library.h" #include "BKE_idprop.h" +#include "BKE_mesh.h" #ifndef DISABLE_PYTHON #include "BPY_extern.h" diff --git a/source/blender/blenkernel/intern/editderivedbmesh.c b/source/blender/blenkernel/intern/editderivedbmesh.c index c0e5d51d8c7..b89fca5c4dc 100644 --- a/source/blender/blenkernel/intern/editderivedbmesh.c +++ b/source/blender/blenkernel/intern/editderivedbmesh.c @@ -89,9 +89,9 @@ #include "bmesh.h" -BMTessMesh *TM_Create(BMesh *bm) +BMEditMesh *TM_Create(BMesh *bm) { - BMTessMesh *tm = MEM_callocN(sizeof(BMTessMesh), "tm"); + BMEditMesh *tm = MEM_callocN(sizeof(BMEditMesh), "tm"); tm->bm = bm; @@ -100,9 +100,9 @@ BMTessMesh *TM_Create(BMesh *bm) return tm; } -BMTessMesh *TM_Copy(BMTessMesh *tm) +BMEditMesh *TM_Copy(BMEditMesh *tm) { - BMTessMesh *tm2 = MEM_mallocN(sizeof(BMTessMesh), "tm2"); + BMEditMesh *tm2 = MEM_mallocN(sizeof(BMEditMesh), "tm2"); *tm2 = *tm; tm2->bm = BM_Copy_Mesh(tm->bm); @@ -110,7 +110,7 @@ BMTessMesh *TM_Copy(BMTessMesh *tm) return tm2; } -void TM_RecalcTesselation(BMTessMesh *tm) +void TM_RecalcTesselation(BMEditMesh *tm) { BMesh *bm = tm->bm; BMLoop **looptris = NULL; @@ -147,8 +147,8 @@ void TM_RecalcTesselation(BMTessMesh *tm) tm->looptris = looptris; } -/*does not free the BMTessMesh struct itself*/ -void TM_Free(BMTessMesh *em) +/*does not free the BMEditMesh struct itself*/ +void TM_Free(BMEditMesh *em) { if(em->derivedFinal) { if (em->derivedFinal!=em->derivedCage) { @@ -188,7 +188,7 @@ typedef struct EditDerivedBMesh { DerivedMesh dm; Object *ob; - BMTessMesh *tc; + BMEditMesh *tc; float (*vertexCos)[3]; float (*vertexNos)[3]; @@ -1132,7 +1132,7 @@ static void bmDM_release(DerivedMesh *dm) } } -DerivedMesh *getEditDerivedBMesh(BMTessMesh *em, Object *ob, +DerivedMesh *getEditDerivedBMesh(BMEditMesh *em, Object *ob, float (*vertexCos)[3]) { EditDerivedBMesh *bmdm = MEM_callocN(sizeof(*bmdm), "bmdm"); diff --git a/source/blender/blenkernel/intern/exotic.c b/source/blender/blenkernel/intern/exotic.c index ae423cdd3aa..660a02bcb9e 100644 --- a/source/blender/blenkernel/intern/exotic.c +++ b/source/blender/blenkernel/intern/exotic.c @@ -2490,7 +2490,7 @@ static void write_videoscape_mesh(Scene *scene, Object *ob, char *str) fclose(fp); - if (em) EM_EndEditMesh(em); + if (em) EM_EndEditMesh(me, em); } diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 2296ec5ecf6..c96f0af0ffa 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -197,12 +197,12 @@ static void curveModifier_deformVerts( } static void curveModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm = derivedData; - if(!derivedData) dm = CDDM_from_BMTessMesh(editData, ob->data); + if(!derivedData) dm = CDDM_from_BMEditMesh(editData, ob->data); curveModifier_deformVerts(md, ob, dm, vertexCos, numVerts); @@ -289,12 +289,12 @@ static void latticeModifier_deformVerts( } static void latticeModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm = derivedData; - if(!derivedData) dm = CDDM_from_BMTessMesh(editData, ob->data); + if(!derivedData) dm = CDDM_from_BMEditMesh(editData, ob->data); latticeModifier_deformVerts(md, ob, dm, vertexCos, numVerts); @@ -350,7 +350,7 @@ static DerivedMesh *subsurfModifier_applyModifier( } static DerivedMesh *subsurfModifier_applyModifierEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData) { SubsurfModifierData *smd = (SubsurfModifierData*) md; @@ -1648,7 +1648,7 @@ static DerivedMesh *arrayModifier_applyModifier( } static DerivedMesh *arrayModifier_applyModifierEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData) { return arrayModifier_applyModifier(md, ob, derivedData, 0, 1); @@ -2071,7 +2071,7 @@ static DerivedMesh *mirrorModifier_applyModifier( } static DerivedMesh *mirrorModifier_applyModifierEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData) { return mirrorModifier_applyModifier(md, ob, derivedData, 0, 1); @@ -3294,7 +3294,7 @@ static DerivedMesh *edgesplitModifier_applyModifier( } static DerivedMesh *edgesplitModifier_applyModifierEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData) { return edgesplitModifier_applyModifier(md, ob, derivedData, 0, 1); @@ -3378,7 +3378,7 @@ static DerivedMesh *bevelModifier_applyModifier( } static DerivedMesh *bevelModifier_applyModifierEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData) { return bevelModifier_applyModifier(md, ob, derivedData, 0, 1); @@ -3705,13 +3705,13 @@ static void displaceModifier_deformVerts( } static void displaceModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm; if(derivedData) dm = CDDM_copy(derivedData); - else dm = CDDM_from_BMTessMesh(editData, ob->data); + else dm = CDDM_from_BMEditMesh(editData, ob->data); CDDM_apply_vert_coords(dm, vertexCos); CDDM_calc_normals(dm); @@ -4036,7 +4036,7 @@ static DerivedMesh *uvprojectModifier_applyModifier( } static DerivedMesh *uvprojectModifier_applyModifierEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData) { return uvprojectModifier_applyModifier(md, ob, derivedData, 0, 1); @@ -4386,13 +4386,13 @@ static void smoothModifier_deformVerts( } static void smoothModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm; if(derivedData) dm = CDDM_copy(derivedData); - else dm = CDDM_from_BMTessMesh(editData, ob->data); + else dm = CDDM_from_BMEditMesh(editData, ob->data); CDDM_apply_vert_coords(dm, vertexCos); CDDM_calc_normals(dm); @@ -4967,14 +4967,14 @@ static void castModifier_deformVerts( } static void castModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm = derivedData; CastModifierData *cmd = (CastModifierData *)md; if (!dm && ob->type == OB_MESH) - dm = CDDM_from_BMTessMesh(editData, ob->data); + dm = CDDM_from_BMEditMesh(editData, ob->data); if (cmd->type == MOD_CAST_TYPE_CUBOID) { castModifier_cuboid_do(cmd, ob, dm, vertexCos, numVerts); @@ -5374,7 +5374,7 @@ static void waveModifier_deformVerts( } static void waveModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm; @@ -5383,7 +5383,7 @@ static void waveModifier_deformVertsEM( if(!wmd->texture && !wmd->defgrp_name[0] && !(wmd->flag & MOD_WAVE_NORM)) dm = derivedData; else if(derivedData) dm = CDDM_copy(derivedData); - else dm = CDDM_from_BMTessMesh(editData, ob->data); + else dm = CDDM_from_BMEditMesh(editData, ob->data); if(wmd->flag & MOD_WAVE_NORM) { CDDM_apply_vert_coords(dm, vertexCos); @@ -5474,13 +5474,13 @@ static void armatureModifier_deformVerts( } static void armatureModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { ArmatureModifierData *amd = (ArmatureModifierData*) md; DerivedMesh *dm = derivedData; - if(!derivedData) dm = CDDM_from_BMTessMesh(editData, ob->data); + if(!derivedData) dm = CDDM_from_BMEditMesh(editData, ob->data); armature_deform_verts(amd->object, ob, dm, vertexCos, NULL, numVerts, amd->deformflag, NULL, amd->defgrp_name); @@ -5489,14 +5489,14 @@ static void armatureModifier_deformVertsEM( } static void armatureModifier_deformMatricesEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], float (*defMats)[3][3], int numVerts) { ArmatureModifierData *amd = (ArmatureModifierData*) md; DerivedMesh *dm = derivedData; - if(!derivedData) dm = CDDM_from_BMTessMesh(editData, ob->data); + if(!derivedData) dm = CDDM_from_BMEditMesh(editData, ob->data); armature_deform_verts(amd->object, ob, dm, vertexCos, defMats, numVerts, amd->deformflag, NULL, amd->defgrp_name); @@ -5692,12 +5692,12 @@ static void hookModifier_deformVerts( } static void hookModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm = derivedData; - if(!derivedData) dm = CDDM_from_BMTessMesh(editData, ob->data); + if(!derivedData) dm = CDDM_from_BMEditMesh(editData, ob->data); hookModifier_deformVerts(md, ob, derivedData, vertexCos, numVerts); @@ -6269,12 +6269,12 @@ static void particleSystemModifier_deformVerts( * updates is coded */ #if 0 static void particleSystemModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm = derivedData; - if(!derivedData) dm = CDDM_from_BMTessMesh(editData, ob->data); + if(!derivedData) dm = CDDM_from_BMEditMesh(editData, ob->data); particleSystemModifier_deformVerts(md, ob, dm, vertexCos, numVerts); @@ -6490,7 +6490,7 @@ static DerivedMesh * particleInstanceModifier_applyModifier( return result; } static DerivedMesh *particleInstanceModifier_applyModifierEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData) { return particleInstanceModifier_applyModifier(md, ob, derivedData, 0, 1); @@ -7539,7 +7539,7 @@ static void meshdeformModifier_do( { MeshDeformModifierData *mmd = (MeshDeformModifierData*) md; Mesh *me= ob->data; - BMTessMesh *bem = me->edit_btmesh; + BMEditMesh *bem = me->edit_btmesh; DerivedMesh *tmpdm, *cagedm; MDeformVert *dvert = NULL; MDeformWeight *dw; @@ -7707,13 +7707,13 @@ static void meshdeformModifier_deformVerts( } static void meshdeformModifier_deformVertsEM( - ModifierData *md, Object *ob, BMTessMesh *editData, + ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm; if(!derivedData && ob->type == OB_MESH) - dm = CDDM_from_BMTessMesh(editData, ob->data); + dm = CDDM_from_BMEditMesh(editData, ob->data); else dm = derivedData; @@ -7863,7 +7863,7 @@ static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, Derived dm->release(dm); } -static void shrinkwrapModifier_deformVertsEM(ModifierData *md, Object *ob, BMTessMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) +static void shrinkwrapModifier_deformVertsEM(ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm = NULL; CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(md); @@ -7871,7 +7871,7 @@ static void shrinkwrapModifier_deformVertsEM(ModifierData *md, Object *ob, BMTes if(dataMask) { if(derivedData) dm = CDDM_copy(derivedData); - else if(ob->type==OB_MESH) dm = CDDM_from_BMTessMesh(editData, ob->data); + else if(ob->type==OB_MESH) dm = CDDM_from_BMEditMesh(editData, ob->data); else if(ob->type==OB_LATTICE) dm = NULL; else return; @@ -7978,7 +7978,7 @@ static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, Deriv } -static void simpledeformModifier_deformVertsEM(ModifierData *md, Object *ob, BMTessMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) +static void simpledeformModifier_deformVertsEM(ModifierData *md, Object *ob, BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm = NULL; CustomDataMask dataMask = simpledeformModifier_requiredDataMask(md); @@ -7987,7 +7987,7 @@ static void simpledeformModifier_deformVertsEM(ModifierData *md, Object *ob, BMT if(dataMask) { if(derivedData) dm = CDDM_copy(derivedData); - else if(ob->type==OB_MESH) dm = CDDM_from_BMTessMesh(editData, ob->data); + else if(ob->type==OB_MESH) dm = CDDM_from_BMEditMesh(editData, ob->data); else if(ob->type==OB_LATTICE) dm = NULL; else return; diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index ccf7993796c..2c851a1115a 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2297,7 +2297,7 @@ void object_handle_update(Scene *scene, Object *ob) /* includes all keys and modifiers */ if(ob->type==OB_MESH) { - BMTessMesh *em = ((Mesh*)ob->data)->edit_btmesh; + BMEditMesh *em = ((Mesh*)ob->data)->edit_btmesh; // here was vieweditdatamask? XXX if(ob==scene->obedit) { diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c index 92d1f0d1a19..66cc92a19af 100644 --- a/source/blender/blenkernel/intern/shrinkwrap.c +++ b/source/blender/blenkernel/intern/shrinkwrap.c @@ -48,6 +48,8 @@ #include "BKE_displist.h" #include "BKE_global.h" #include "BKE_subsurf.h" +#include "BKE_mesh.h" +#include "BKE_tessmesh.h" #include "BLI_arithb.h" #include "BLI_kdtree.h" @@ -96,14 +98,13 @@ typedef void ( *Shrinkwrap_ForeachVertexCallback) (DerivedMesh *target, float *c static DerivedMesh *object_get_derived_final(struct Scene *scene, Object *ob, CustomDataMask dataMask) { Mesh *me= ob->data; - EditMesh *em = EM_GetEditMesh(me); + BMEditMesh *em = me->edit_btmesh; if (em) { DerivedMesh *final = NULL; editbmesh_get_derived_cage_and_final(scene, ob, em, &final, dataMask); - EM_EndEditMesh(me, em); return final; } else |