diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-11-04 16:01:46 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-11-04 16:01:46 +0400 |
commit | d07f3f793b8c7596e36249d589aafcf63611cc1d (patch) | |
tree | 2d726c90316c2a0582cdebdde69f0627ecdd3457 /source | |
parent | 3b91a77c7de1e93ce14ab5c8ea45729102985a98 (diff) |
add CDDM_lower_num_loops(), for completeness (currently unused).
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_cdderivedmesh.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_cdderivedmesh.h b/source/blender/blenkernel/BKE_cdderivedmesh.h index ddb36df74ca..560617db474 100644 --- a/source/blender/blenkernel/BKE_cdderivedmesh.h +++ b/source/blender/blenkernel/BKE_cdderivedmesh.h @@ -122,6 +122,7 @@ void CDDM_recalc_tessellation_ex(struct DerivedMesh *dm, const int do_face_nor_c */ void CDDM_lower_num_verts(struct DerivedMesh *dm, int numVerts); void CDDM_lower_num_edges(struct DerivedMesh *dm, int numEdges); +void CDDM_lower_num_loops(struct DerivedMesh *dm, int numLoops); void CDDM_lower_num_polys(struct DerivedMesh *dm, int numPolys); void CDDM_lower_num_tessfaces(DerivedMesh *dm, int numTessFaces); diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 4846199b9d9..d57d9180697 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -2786,6 +2786,7 @@ void CDDM_calc_edges(DerivedMesh *dm) void CDDM_lower_num_verts(DerivedMesh *dm, int numVerts) { + BLI_assert(numVerts >= 0); if (numVerts < dm->numVertData) CustomData_free_elem(&dm->vertData, numVerts, dm->numVertData - numVerts); @@ -2794,6 +2795,7 @@ void CDDM_lower_num_verts(DerivedMesh *dm, int numVerts) void CDDM_lower_num_edges(DerivedMesh *dm, int numEdges) { + BLI_assert(numEdges >= 0); if (numEdges < dm->numEdgeData) CustomData_free_elem(&dm->edgeData, numEdges, dm->numEdgeData - numEdges); @@ -2802,14 +2804,25 @@ void CDDM_lower_num_edges(DerivedMesh *dm, int numEdges) void CDDM_lower_num_tessfaces(DerivedMesh *dm, int numTessFaces) { + BLI_assert(numTessFaces >= 0); if (numTessFaces < dm->numTessFaceData) CustomData_free_elem(&dm->faceData, numTessFaces, dm->numTessFaceData - numTessFaces); dm->numTessFaceData = numTessFaces; } +void CDDM_lower_num_loops(DerivedMesh *dm, int numLoops) +{ + BLI_assert(numLoops >= 0); + if (numLoops < dm->numLoopData) + CustomData_free_elem(&dm->loopData, numLoops, dm->numLoopData - numLoops); + + dm->numLoopData = numLoops; +} + void CDDM_lower_num_polys(DerivedMesh *dm, int numPolys) { + BLI_assert(numPolys >= 0); if (numPolys < dm->numPolyData) CustomData_free_elem(&dm->polyData, numPolys, dm->numPolyData - numPolys); |