diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-09-23 15:57:00 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-09-23 15:57:00 +0300 |
commit | f964334b88a83c150fad6f0ac6a72dd2b108bbc2 (patch) | |
tree | db0df81961ba0ac59e447a3896bd21134bf5df36 /source/blender/blenkernel/intern/cdderivedmesh.c | |
parent | abfc9e59e251e77533569135a14d72465b2ba468 (diff) |
Fix T46215: Explode modifier looses textures
Diffstat (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 8b020226bca..fa0e6121093 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -2423,10 +2423,11 @@ DerivedMesh *CDDM_copy_from_tessface(DerivedMesh *source) /* note, the CD_ORIGINDEX layers are all 0, so if there is a direct * relationship between mesh data this needs to be set by the caller. */ -DerivedMesh *CDDM_from_template( +DerivedMesh *CDDM_from_template_ex( DerivedMesh *source, int numVerts, int numEdges, int numTessFaces, - int numLoops, int numPolys) + int numLoops, int numPolys, + CustomDataMask mask) { CDDerivedMesh *cddm = cdDM_create("CDDM_from_template dest"); DerivedMesh *dm = &cddm->dm; @@ -2438,7 +2439,11 @@ DerivedMesh *CDDM_from_template( source->getPolyDataArray(source, CD_ORIGINDEX); /* this does a copy of all non mvert/medge/mface layers */ - DM_from_template(dm, source, DM_TYPE_CDDM, numVerts, numEdges, numTessFaces, numLoops, numPolys); + DM_from_template_ex( + dm, source, DM_TYPE_CDDM, + numVerts, numEdges, numTessFaces, + numLoops, numPolys, + mask); /* now add mvert/medge/mface layers */ CustomData_add_layer(&dm->vertData, CD_MVERT, CD_CALLOC, NULL, numVerts); @@ -2462,6 +2467,16 @@ DerivedMesh *CDDM_from_template( return dm; } +DerivedMesh *CDDM_from_template( + DerivedMesh *source, + int numVerts, int numEdges, int numTessFaces, + int numLoops, int numPolys) +{ + return CDDM_from_template_ex( + source, numVerts, numEdges, numTessFaces, + numLoops, numPolys, + CD_MASK_DERIVEDMESH); +} void CDDM_apply_vert_coords(DerivedMesh *dm, float (*vertCoords)[3]) { |