diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-10-08 09:29:59 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-10-08 09:31:32 +0300 |
commit | 772c4d6313ad842bbdfe101267f0bd34186e8a6f (patch) | |
tree | 10dc427c3368d0152c9fd7fea30e463665387cd6 /source/blender/blenkernel/intern/cdderivedmesh.c | |
parent | 215c23590aa7ea0cbb113d75c32ccf57ffee3fd3 (diff) |
Edit Mesh: basic show in edit mode support
Note this is just using the derived-mesh data at the moment,
to support this properly we'll need to remove derived-mesh.
Diffstat (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 9043460562d..83424da3a3d 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -2258,3 +2258,29 @@ void CDDM_set_mpoly(DerivedMesh *dm, MPoly *mpoly) cddm->mpoly = mpoly; } + +/** Hack to fill in an empty (non library mesh struct) with CDDM values. */ +void CDDM_to_mesh__fast_borrow(DerivedMesh *dm, Mesh *me, const Mesh *me_reference) +{ + CDDerivedMesh *cddm = (CDDerivedMesh *)dm; + me->totvert = cddm->dm.numVertData; + me->totedge = cddm->dm.numEdgeData; + me->totloop = cddm->dm.numLoopData; + me->totpoly = cddm->dm.numPolyData; + + me->mvert = cddm->mvert; + me->medge = cddm->medge; + me->mface = cddm->mface; + me->mloop = cddm->mloop; + me->mpoly = cddm->mpoly; + + me->vdata = dm->vertData; + me->edata = dm->edgeData; + me->ldata = dm->loopData; + me->pdata = dm->polyData; + + if (me_reference) { + me->mat = me_reference->mat; + me->totcol = me_reference->totcol; + } +} |