diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-04-18 21:09:56 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-04-18 21:09:56 +0400 |
commit | 5c72a19c09a8066b0cbe49730dc129bd93d5857a (patch) | |
tree | 0afce5d4f7636b17082ab830e5e49419b4af1fb8 /source/blender/blenkernel/intern/editmesh.c | |
parent | feeab1ad53f1b7cd4496fb8e7f173f21e460aac0 (diff) |
add display mode for sharp edges.
Diffstat (limited to 'source/blender/blenkernel/intern/editmesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/editmesh.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/editmesh.c b/source/blender/blenkernel/intern/editmesh.c index 6ddc7c07d0a..7c6a5643c8d 100644 --- a/source/blender/blenkernel/intern/editmesh.c +++ b/source/blender/blenkernel/intern/editmesh.c @@ -327,8 +327,7 @@ void BKE_editmesh_free(BMEditMesh *em) em->derivedCage = NULL; } - if (em->derivedVertColor) MEM_freeN(em->derivedVertColor); - if (em->derivedFaceColor) MEM_freeN(em->derivedFaceColor); + BKE_editmesh_color_free(em); if (em->looptris) MEM_freeN(em->looptris); @@ -339,3 +338,37 @@ void BKE_editmesh_free(BMEditMesh *em) if (em->bm) BM_mesh_free(em->bm); } + +void BKE_editmesh_color_free(BMEditMesh *em) +{ + if (em->derivedVertColor) MEM_freeN(em->derivedVertColor); + if (em->derivedFaceColor) MEM_freeN(em->derivedFaceColor); + em->derivedVertColor = NULL; + em->derivedFaceColor = NULL; + + em->derivedVertColorLen = 0; + em->derivedFaceColorLen = 0; + +} + +void BKE_editmesh_color_ensure(BMEditMesh *em, const char htype) +{ + switch (htype) { + case BM_VERT: + if (em->derivedVertColorLen != em->bm->totvert) { + BKE_editmesh_color_free(em); + em->derivedVertColor = MEM_mallocN(sizeof(*em->derivedVertColor) * em->bm->totvert, __func__); + em->derivedVertColorLen = em->bm->totvert; + } + break; + case BM_FACE: + if (em->derivedFaceColorLen != em->bm->totface) { + BKE_editmesh_color_free(em); + em->derivedFaceColor = MEM_mallocN(sizeof(*em->derivedFaceColor) * em->bm->totface, __func__); + em->derivedFaceColorLen = em->bm->totface; + } + break; + default: + BLI_assert(0); + } +} |