add display mode for sharp edges.

This commit is contained in:
2013-04-18 17:09:56 +00:00
parent feeab1ad53
commit 5c72a19c09
10 changed files with 161 additions and 51 deletions

View File

@@ -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);
}
}