Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-02-25 13:30:23 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-02-25 13:30:23 +0300
commite6be2af061ba154ec633fcaf3e4caecacec521c6 (patch)
treeb14b0c14b976f013b1551cb777b0f178b39c79cb /source/blender/blenkernel/intern/cdderivedmesh.c
parentbd03fe1ab0d09aa7bb29bdcd3d57db772b1dadbd (diff)
Cleanup: remove cddm_from_bmesh
Use BKE_mesh_from_bmesh_for_eval_nomain instead.
Diffstat (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c')
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c144
1 files changed, 0 insertions, 144 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index a55b5dc7817..5fc4e909fac 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -370,150 +370,6 @@ DerivedMesh *CDDM_from_mesh_ex(Mesh *mesh,
return dm;
}
-/* TODO(campbell): remove, use BKE_mesh_from_bmesh_for_eval_nomain instead. */
-
-/* used for both editbmesh and bmesh */
-static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, const bool use_mdisps)
-{
- DerivedMesh *dm = CDDM_new(bm->totvert, bm->totedge, 0, bm->totloop, bm->totface);
-
- CDDerivedMesh *cddm = (CDDerivedMesh *)dm;
- BMIter iter;
- BMVert *eve;
- BMEdge *eed;
- BMFace *efa;
- MVert *mvert = cddm->mvert;
- MEdge *medge = cddm->medge;
- MLoop *mloop = cddm->mloop;
- MPoly *mpoly = cddm->mpoly;
- int *index, add_orig;
- CustomData_MeshMasks mask = {0};
- unsigned int i, j;
-
- const int cd_vert_bweight_offset = CustomData_get_offset(&bm->vdata, CD_BWEIGHT);
- const int cd_edge_bweight_offset = CustomData_get_offset(&bm->edata, CD_BWEIGHT);
- const int cd_edge_crease_offset = CustomData_get_offset(&bm->edata, CD_CREASE);
-
- dm->deformedOnly = 1;
-
- /* don't add origindex layer if one already exists */
- add_orig = !CustomData_has_layer(&bm->pdata, CD_ORIGINDEX);
-
- mask = CD_MASK_DERIVEDMESH;
- if (use_mdisps) {
- mask.lmask |= CD_MASK_MDISPS;
- }
-
- /* don't process shapekeys, we only feed them through the modifier stack as needed,
- * e.g. for applying modifiers or the like*/
- mask.vmask &= ~CD_MASK_SHAPEKEY;
- CustomData_merge(&bm->vdata, &dm->vertData, mask.vmask, CD_CALLOC, dm->numVertData);
- CustomData_merge(&bm->edata, &dm->edgeData, mask.emask, CD_CALLOC, dm->numEdgeData);
- CustomData_merge(&bm->ldata, &dm->loopData, mask.lmask, CD_CALLOC, dm->numLoopData);
- CustomData_merge(&bm->pdata, &dm->polyData, mask.pmask, CD_CALLOC, dm->numPolyData);
-
- index = dm->getVertDataArray(dm, CD_ORIGINDEX);
-
- BM_ITER_MESH_INDEX (eve, &iter, bm, BM_VERTS_OF_MESH, i) {
- MVert *mv = &mvert[i];
-
- copy_v3_v3(mv->co, eve->co);
-
- BM_elem_index_set(eve, i); /* set_inline */
-
- normal_float_to_short_v3(mv->no, eve->no);
-
- mv->flag = BM_vert_flag_to_mflag(eve);
-
- if (cd_vert_bweight_offset != -1) {
- mv->bweight = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eve, cd_vert_bweight_offset);
- }
-
- if (add_orig) {
- *index++ = i;
- }
-
- CustomData_from_bmesh_block(&bm->vdata, &dm->vertData, eve->head.data, i);
- }
- bm->elem_index_dirty &= ~BM_VERT;
-
- index = dm->getEdgeDataArray(dm, CD_ORIGINDEX);
- BM_ITER_MESH_INDEX (eed, &iter, bm, BM_EDGES_OF_MESH, i) {
- MEdge *med = &medge[i];
-
- BM_elem_index_set(eed, i); /* set_inline */
-
- med->v1 = BM_elem_index_get(eed->v1);
- med->v2 = BM_elem_index_get(eed->v2);
-
- med->flag = BM_edge_flag_to_mflag(eed);
-
- /* handle this differently to editmode switching,
- * only enable draw for single user edges rather then calculating angle */
- if ((med->flag & ME_EDGEDRAW) == 0) {
- if (eed->l && eed->l == eed->l->radial_next) {
- med->flag |= ME_EDGEDRAW;
- }
- }
-
- if (cd_edge_crease_offset != -1) {
- med->crease = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eed, cd_edge_crease_offset);
- }
- if (cd_edge_bweight_offset != -1) {
- med->bweight = BM_ELEM_CD_GET_FLOAT_AS_UCHAR(eed, cd_edge_bweight_offset);
- }
-
- CustomData_from_bmesh_block(&bm->edata, &dm->edgeData, eed->head.data, i);
- if (add_orig) {
- *index++ = i;
- }
- }
- bm->elem_index_dirty &= ~BM_EDGE;
-
- index = CustomData_get_layer(&dm->polyData, CD_ORIGINDEX);
- j = 0;
- BM_ITER_MESH_INDEX (efa, &iter, bm, BM_FACES_OF_MESH, i) {
- BMLoop *l_iter;
- BMLoop *l_first;
- MPoly *mp = &mpoly[i];
-
- BM_elem_index_set(efa, i); /* set_inline */
-
- mp->totloop = efa->len;
- mp->flag = BM_face_flag_to_mflag(efa);
- mp->loopstart = j;
- mp->mat_nr = efa->mat_nr;
-
- l_iter = l_first = BM_FACE_FIRST_LOOP(efa);
- do {
- mloop->v = BM_elem_index_get(l_iter->v);
- mloop->e = BM_elem_index_get(l_iter->e);
- CustomData_from_bmesh_block(&bm->ldata, &dm->loopData, l_iter->head.data, j);
-
- BM_elem_index_set(l_iter, j); /* set_inline */
-
- j++;
- mloop++;
- } while ((l_iter = l_iter->next) != l_first);
-
- CustomData_from_bmesh_block(&bm->pdata, &dm->polyData, efa->head.data, i);
-
- if (add_orig) {
- *index++ = i;
- }
- }
- bm->elem_index_dirty &= ~(BM_FACE | BM_LOOP);
-
- dm->cd_flag = BM_mesh_cd_flag_from_bmesh(bm);
-
- return dm;
-}
-
-DerivedMesh *CDDM_from_editbmesh(BMEditMesh *em, const bool use_mdisps)
-{
- return cddm_from_bmesh_ex(em->bm, use_mdisps);
-}
-
DerivedMesh *CDDM_copy(DerivedMesh *source)
{
CDDerivedMesh *cddm = cdDM_create("CDDM_copy cddm");