diff options
Diffstat (limited to 'source/blender/blenkernel/intern/DerivedMesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 62b74af1674..20dabbdc323 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -328,21 +328,17 @@ void DM_init( * Utility function to initialize a DerivedMesh for the desired number * of vertices, edges and faces, with a layer setup copied from source */ -void DM_from_template( +void DM_from_template_ex( DerivedMesh *dm, DerivedMesh *source, DerivedMeshType type, int numVerts, int numEdges, int numTessFaces, - int numLoops, int numPolys) + int numLoops, int numPolys, + CustomDataMask mask) { - CustomData_copy(&source->vertData, &dm->vertData, CD_MASK_DERIVEDMESH, - CD_CALLOC, numVerts); - CustomData_copy(&source->edgeData, &dm->edgeData, CD_MASK_DERIVEDMESH, - CD_CALLOC, numEdges); - CustomData_copy(&source->faceData, &dm->faceData, CD_MASK_DERIVEDMESH, - CD_CALLOC, numTessFaces); - CustomData_copy(&source->loopData, &dm->loopData, CD_MASK_DERIVEDMESH, - CD_CALLOC, numLoops); - CustomData_copy(&source->polyData, &dm->polyData, CD_MASK_DERIVEDMESH, - CD_CALLOC, numPolys); + CustomData_copy(&source->vertData, &dm->vertData, mask, CD_CALLOC, numVerts); + CustomData_copy(&source->edgeData, &dm->edgeData, mask, CD_CALLOC, numEdges); + CustomData_copy(&source->faceData, &dm->faceData, mask, CD_CALLOC, numTessFaces); + CustomData_copy(&source->loopData, &dm->loopData, mask, CD_CALLOC, numLoops); + CustomData_copy(&source->polyData, &dm->polyData, mask, CD_CALLOC, numPolys); dm->cd_flag = source->cd_flag; @@ -358,6 +354,17 @@ void DM_from_template( dm->needsFree = 1; dm->dirty = 0; } +void DM_from_template( + DerivedMesh *dm, DerivedMesh *source, DerivedMeshType type, + int numVerts, int numEdges, int numTessFaces, + int numLoops, int numPolys) +{ + DM_from_template_ex( + dm, source, type, + numVerts, numEdges, numTessFaces, + numLoops, numPolys, + CD_MASK_DERIVEDMESH); +} int DM_release(DerivedMesh *dm) { |