diff options
Diffstat (limited to 'source/blender/src/editmesh_lib.c')
-rw-r--r-- | source/blender/src/editmesh_lib.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/src/editmesh_lib.c b/source/blender/src/editmesh_lib.c index 3234ddb7589..2f742d8e985 100644 --- a/source/blender/src/editmesh_lib.c +++ b/source/blender/src/editmesh_lib.c @@ -71,7 +71,7 @@ editmesh_lib: generic (no UI, no menus) operations/evaluators for editmesh data #include "editmesh.h" -/* ********* Selection ************ */ +/* ********* Selection History ************ */ static int EM_check_selection(void *data) { EditSelection *ese; @@ -105,6 +105,20 @@ void EM_store_selection(void *data, int type) } } +void EM_validate_selections(void) +{ + EditSelection *ese, *nextese; + EditMesh *em = G.editMesh; + ese = em->selected.first; + while(ese){ + nextese = ese->next; + if(ese->type == EDITVERT && !(((EditVert*)ese->data)->f & SELECT)) BLI_freelinkN(&(em->selected), ese); + else if(ese->type == EDITEDGE && !(((EditEdge*)ese->data)->f & SELECT)) BLI_freelinkN(&(em->selected), ese); + else if(ese->type == EDITFACE && !(((EditFace*)ese->data)->f & SELECT)) BLI_freelinkN(&(em->selected), ese); + ese = nextese; + } +} + static void EM_strip_selections(void) { EditSelection *ese, *nextese; |