Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-04-18 21:09:56 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-04-18 21:09:56 +0400
commit5c72a19c09a8066b0cbe49730dc129bd93d5857a (patch)
tree0afce5d4f7636b17082ab830e5e49419b4af1fb8 /source/blender/blenkernel/intern/editmesh.c
parentfeeab1ad53f1b7cd4496fb8e7f173f21e460aac0 (diff)
add display mode for sharp edges.
Diffstat (limited to 'source/blender/blenkernel/intern/editmesh.c')
-rw-r--r--source/blender/blenkernel/intern/editmesh.c37
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);
+ }
+}