From 59d45d0ea6f9449c212c9dcc59573ef0a646545f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Feb 2012 19:11:09 +0000 Subject: * remove the MFace parts of join (we only need polygon data) * other minor cleanups --- source/blender/blenkernel/BKE_mesh.h | 6 ++-- source/blender/blenkernel/intern/DerivedMesh.c | 2 +- source/blender/blenkernel/intern/cdderivedmesh.c | 2 +- source/blender/blenkernel/intern/mesh.c | 10 +++--- source/blender/blenloader/intern/readfile.c | 2 +- source/blender/bmesh/operators/bmo_mesh_conv.c | 2 +- source/blender/editors/mesh/mesh_data.c | 2 +- source/blender/editors/mesh/meshtools.c | 42 ++-------------------- source/blender/editors/sculpt_paint/paint_vertex.c | 6 ++-- source/blender/editors/sculpt_paint/sculpt.c | 2 +- .../blender/editors/space_view3d/view3d_buttons.c | 29 +++++++-------- 11 files changed, 34 insertions(+), 71 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index 08916b5a971..c9c37345fe6 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -268,9 +268,9 @@ void BKE_mesh_calc_edges(struct Mesh *mesh, int update); void BKE_mesh_ensure_navmesh(struct Mesh *me); -void BKE_mesh_calc_tessface(struct Mesh *mesh); -void BKE_mesh_ensure_tessface(struct Mesh *mesh); -void BKE_mesh_clear_tessface(struct Mesh *mesh); +void BKE_mesh_tessface_calc(struct Mesh *mesh); +void BKE_mesh_tessface_ensure(struct Mesh *mesh); +void BKE_mesh_tessface_clear(struct Mesh *mesh); /*convert a triangle of loop facedata to mface facedata*/ void mesh_loops_to_mface_corners(struct CustomData *fdata, struct CustomData *ldata, diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 0697951cc13..8f9964d0cc3 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -446,7 +446,7 @@ void DM_to_mesh(DerivedMesh *dm, Mesh *me, Object *ob) /* yes, must be before _and_ after tesselate */ mesh_update_customdata_pointers(&tmp, TRUE); - BKE_mesh_calc_tessface(&tmp); + BKE_mesh_tessface_calc(&tmp); CustomData_free(&me->vdata, me->totvert); CustomData_free(&me->edata, me->totedge); diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 97340ff8572..2be23e1f182 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -232,7 +232,7 @@ static ListBase *cdDM_getFaceMap(Object *ob, DerivedMesh *dm) Mesh *me= ob->data; create_vert_face_map(&cddm->fmap, &cddm->fmap_mem, me->mface, - me->totvert, me->totface); + me->totvert, me->totface); } return cddm->fmap; diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 4e0dc41e9a0..4a4f5fa700e 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -315,7 +315,7 @@ static void mesh_ensure_tesselation_customdata(Mesh *me) if (tottex_tessface != tottex_original || totcol_tessface != totcol_original ) { - BKE_mesh_clear_tessface(me); + BKE_mesh_tessface_clear(me); CustomData_from_bmeshpoly(&me->fdata, &me->pdata, &me->ldata, me->totface); @@ -2949,7 +2949,7 @@ void BKE_mesh_ensure_navmesh(Mesh *me) } } -void BKE_mesh_calc_tessface(Mesh *mesh) +void BKE_mesh_tessface_calc(Mesh *mesh) { mesh->totface = mesh_recalcTesselation(&mesh->fdata, &mesh->ldata, &mesh->pdata, mesh->mvert, @@ -2960,14 +2960,14 @@ void BKE_mesh_calc_tessface(Mesh *mesh) mesh_update_customdata_pointers(mesh, TRUE); } -void BKE_mesh_ensure_tessface(Mesh *mesh) +void BKE_mesh_tessface_ensure(Mesh *mesh) { if (mesh->totpoly && mesh->totface == 0) { - BKE_mesh_calc_tessface(mesh); + BKE_mesh_tessface_calc(mesh); } } -void BKE_mesh_clear_tessface(Mesh *mesh) +void BKE_mesh_tessface_clear(Mesh *mesh) { CustomData_free(&mesh->fdata, mesh->totface); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 5faa6a8776b..cee6e50ba5f 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3703,7 +3703,7 @@ static void lib_link_mesh(FileData *fd, Main *main) * waiting until edit mode has been entered/exited, making it easier * to recognize problems that would otherwise only show up after edits). */ - BKE_mesh_calc_tessface(me); + BKE_mesh_tessface_calc(me); me->id.flag -= LIB_NEEDLINK; } diff --git a/source/blender/bmesh/operators/bmo_mesh_conv.c b/source/blender/bmesh/operators/bmo_mesh_conv.c index ded3b698c77..782cbf66aa8 100644 --- a/source/blender/bmesh/operators/bmo_mesh_conv.c +++ b/source/blender/bmesh/operators/bmo_mesh_conv.c @@ -647,7 +647,7 @@ void bmesh_to_mesh_exec(BMesh *bm, BMOperator *op) } if (dotess) { - BKE_mesh_calc_tessface(me); + BKE_mesh_tessface_calc(me); } mesh_update_customdata_pointers(me, dotess); diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index e818f8aad93..f3a2f8641d6 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -759,7 +759,7 @@ void ED_mesh_update(Mesh *mesh, bContext *C, int calc_edges) BKE_mesh_calc_edges(mesh, calc_edges); /* TODO, make this optional, we dont always want this! */ - BKE_mesh_calc_tessface(mesh); + BKE_mesh_tessface_calc(mesh); polyindex = CustomData_get_layer(&mesh->fdata, CD_POLYINDEX); /* add a normals layer for tesselated faces, a tessface normal will diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index 2b3be42ac67..db4fa297eb6 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -98,15 +98,14 @@ int join_mesh_exec(bContext *C, wmOperator *op) Mesh *me; MVert *mvert, *mv; MEdge *medge = NULL; - MFace *mface = NULL; MPoly *mpoly = NULL; MLoop *mloop = NULL; Key *key, *nkey=NULL; KeyBlock *kb, *okb, *kbn; float imat[4][4], cmat[4][4], *fp1, *fp2, curpos; - int a, b, totcol, totmat=0, totedge=0, totvert=0, totface=0, ok=0; + int a, b, totcol, totmat=0, totedge=0, totvert=0, ok=0; int totloop=0, totpoly=0, vertofs, *matmap=NULL; - int i, j, index, haskey=0, edgeofs, faceofs, loopofs, polyofs; + int i, j, index, haskey=0, edgeofs, loopofs, polyofs; bDeformGroup *dg, *odg; MDeformVert *dvert; CustomData vdata, edata, fdata, ldata, pdata; @@ -129,7 +128,6 @@ int join_mesh_exec(bContext *C, wmOperator *op) totvert+= me->totvert; totedge+= me->totedge; - totface+= me->totface; totloop+= me->totloop; totpoly+= me->totpoly; totmat+= base->object->totcol; @@ -290,13 +288,11 @@ int join_mesh_exec(bContext *C, wmOperator *op) mvert= CustomData_add_layer(&vdata, CD_MVERT, CD_CALLOC, NULL, totvert); medge= CustomData_add_layer(&edata, CD_MEDGE, CD_CALLOC, NULL, totedge); - mface= CustomData_add_layer(&fdata, CD_MFACE, CD_CALLOC, NULL, totface); mloop= CustomData_add_layer(&ldata, CD_MLOOP, CD_CALLOC, NULL, totloop); mpoly= CustomData_add_layer(&pdata, CD_MPOLY, CD_CALLOC, NULL, totpoly); vertofs= 0; edgeofs= 0; - faceofs= 0; loopofs= 0; polyofs= 0; @@ -409,37 +405,6 @@ int join_mesh_exec(bContext *C, wmOperator *op) mvert+= me->totvert; } - if(me->totface) { - /* make mapping for materials */ - for(a=1; a<=base->object->totcol; a++) { - ma= give_current_material(base->object, a); - - for(b=0; bfdata, &fdata, CD_MASK_MESH, CD_DEFAULT, totface); - CustomData_copy_data(&me->fdata, &fdata, 0, faceofs, me->totface); - - for(a=0; atotface; a++, mface++) { - mface->v1+= vertofs; - mface->v2+= vertofs; - mface->v3+= vertofs; - if(mface->v4) mface->v4+= vertofs; - - if (matmap) - mface->mat_nr= matmap[(int)mface->mat_nr]; - else - mface->mat_nr= 0; - } - - faceofs += me->totface; - } - if(me->totedge) { CustomData_merge(&me->edata, &edata, CD_MASK_MESH, CD_DEFAULT, totedge); CustomData_copy_data(&me->edata, &edata, 0, edgeofs, me->totedge); @@ -506,19 +471,16 @@ int join_mesh_exec(bContext *C, wmOperator *op) CustomData_free(&me->vdata, me->totvert); CustomData_free(&me->edata, me->totedge); - CustomData_free(&me->fdata, me->totface); CustomData_free(&me->ldata, me->totloop); CustomData_free(&me->pdata, me->totpoly); me->totvert= totvert; me->totedge= totedge; - me->totface= totface; me->totloop= totloop; me->totpoly= totpoly; me->vdata= vdata; me->edata= edata; - me->fdata= fdata; me->ldata= ldata; me->pdata= pdata; diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index 112724ff80b..4ce304a62c4 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -375,13 +375,13 @@ static void make_vertexcol(Object *ob) /* single ob */ } /* create tessfaces because they will be used for drawing & fast updates*/ - BKE_mesh_calc_tessface(me); /* does own call to update pointers */ + BKE_mesh_tessface_calc(me); /* does own call to update pointers */ } } else { if (me->totface) { /* this wont be used, theres no need to keep it */ - BKE_mesh_clear_tessface(me); + BKE_mesh_tessface_clear(me); } } @@ -489,7 +489,7 @@ void vpaint_fill(Object *ob, unsigned int paintcol) } /* remove stale me->mcol, will be added later */ - BKE_mesh_clear_tessface(me); + BKE_mesh_tessface_clear(me); DAG_id_tag_update(&me->id, 0); } diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index b813f71d7b8..2bff8476ea9 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -2724,7 +2724,7 @@ void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_ } /* BMESH ONLY --- at some point we should move sculpt code to use polygons only - but for now it needs tessfaces */ - BKE_mesh_ensure_tessface(ob->data); + BKE_mesh_tessface_ensure(ob->data); ss->pbvh = dm->getPBVH(ob, dm); ss->pmap = (need_pmap && dm->getPolyMap)? dm->getPolyMap(ob, dm): NULL; diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index 44bc96cdb89..98301e63705 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -183,7 +183,7 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float /* check for defgroups */ if(evedef) - dvert= CustomData_bmesh_get(&em->bm->vdata, evedef->head.data, CD_MDEFORMVERT); + dvert= CustomData_bmesh_get(&bm->vdata, evedef->head.data, CD_MDEFORMVERT); if(tot==1 && dvert && dvert->totweight) { bDeformGroup *dg; int i, max=1, init=1; @@ -413,12 +413,13 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float if(ob->type==OB_MESH) { Mesh *me= ob->data; BMEditMesh *em = me->edit_btmesh; + BMesh *bm = em->bm; BMVert *eve; BMIter iter; if(len_v3(median) > 0.000001f) { - BM_ITER(eve, &iter, em->bm, BM_VERTS_OF_MESH, NULL) { + BM_ITER(eve, &iter, bm, BM_VERTS_OF_MESH, NULL) { if(BM_elem_flag_test(eve, BM_ELEM_SELECT)) { add_v3_v3(eve->co, median); } @@ -434,9 +435,9 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float if(fixed_crease != FLT_MAX) { /* simple case */ - BM_ITER(eed, &iter, em->bm, BM_EDGES_OF_MESH, NULL) { + BM_ITER(eed, &iter, bm, BM_EDGES_OF_MESH, NULL) { if(BM_elem_flag_test(eed, BM_ELEM_SELECT)) { - float *crease = (float *)CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_CREASE); + float *crease = (float *)CustomData_bmesh_get(&bm->edata, eed->head.data, CD_CREASE); if (!crease) break; *crease= fixed_crease; @@ -456,9 +457,9 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float /* scale down */ const float sca= median_new / median_orig; - BM_ITER(eed, &iter, em->bm, BM_EDGES_OF_MESH, NULL) { + BM_ITER(eed, &iter, bm, BM_EDGES_OF_MESH, NULL) { if(BM_elem_flag_test(eed, BM_ELEM_SELECT) && !BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) { - float *crease = (float *)CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_CREASE); + float *crease = (float *)CustomData_bmesh_get(&bm->edata, eed->head.data, CD_CREASE); if (!crease) break; @@ -471,9 +472,9 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float /* scale up */ const float sca= (1.0f - median_new) / (1.0f - median_orig); - BM_ITER(eed, &iter, em->bm, BM_EDGES_OF_MESH, NULL) { + BM_ITER(eed, &iter, bm, BM_EDGES_OF_MESH, NULL) { if(BM_elem_flag_test(eed, BM_ELEM_SELECT) && !BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) { - float *crease = (float *)CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_CREASE); + float *crease = (float *)CustomData_bmesh_get(&bm->edata, eed->head.data, CD_CREASE); if (!crease) break; *crease = 1.0f - ((1.0f - *crease) * sca); @@ -491,9 +492,9 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float if(fixed_bweight != FLT_MAX) { /* simple case */ - BM_ITER(eed, &iter, em->bm, BM_EDGES_OF_MESH, NULL) { + BM_ITER(eed, &iter, bm, BM_EDGES_OF_MESH, NULL) { if(BM_elem_flag_test(eed, BM_ELEM_SELECT)) { - float *bweight = (float *)CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_BWEIGHT); + float *bweight = (float *)CustomData_bmesh_get(&bm->edata, eed->head.data, CD_BWEIGHT); if(!bweight) break; *bweight = fixed_bweight; @@ -513,9 +514,9 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float /* scale down */ const float sca = median_new / median_orig; - BM_ITER(eed, &iter, em->bm, BM_EDGES_OF_MESH, NULL) { + BM_ITER(eed, &iter, bm, BM_EDGES_OF_MESH, NULL) { if(BM_elem_flag_test(eed, BM_ELEM_SELECT) && !BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) { - float *bweight = (float *)CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_BWEIGHT); + float *bweight = (float *)CustomData_bmesh_get(&bm->edata, eed->head.data, CD_BWEIGHT); if(!bweight) break; *bweight *= sca; @@ -527,9 +528,9 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float /* scale up */ const float sca = (1.0f - median_new) / (1.0f - median_orig); - BM_ITER(eed, &iter, em->bm, BM_EDGES_OF_MESH, NULL) { + BM_ITER(eed, &iter, bm, BM_EDGES_OF_MESH, NULL) { if(BM_elem_flag_test(eed, BM_ELEM_SELECT) && !BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) { - float *bweight = (float *)CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_BWEIGHT); + float *bweight = (float *)CustomData_bmesh_get(&bm->edata, eed->head.data, CD_BWEIGHT); if(!bweight) break; *bweight = 1.0f - ((1.0f - *bweight) * sca); -- cgit v1.2.3