diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2006-12-31 13:51:21 +0300 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2006-12-31 13:51:21 +0300 |
commit | 9903c78c12d20825d86e54e4cda18104596a0fa3 (patch) | |
tree | 73438a412d412432925ef7933c6562e2a67f9fc9 /source/blender | |
parent | c101ee5d22e38f505535b12484e8c5e8f22e4bd2 (diff) |
Prevent user from applying editmode operations that will be ignored by multires.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/include/editmesh.h | 1 | ||||
-rw-r--r-- | source/blender/src/editdeform.c | 6 | ||||
-rw-r--r-- | source/blender/src/editmesh_mods.c | 2 | ||||
-rw-r--r-- | source/blender/src/multires.c | 12 |
4 files changed, 19 insertions, 2 deletions
diff --git a/source/blender/include/editmesh.h b/source/blender/include/editmesh.h index 0dde2b2f695..36007252a26 100644 --- a/source/blender/include/editmesh.h +++ b/source/blender/include/editmesh.h @@ -106,6 +106,7 @@ extern EditVert *findnearestvert(int *dist, short sel, short strict); /* multires.c */ int multires_test(); +int multires_level1_test(); #endif diff --git a/source/blender/src/editdeform.c b/source/blender/src/editdeform.c index 007dd52df8b..bca2fc60ef1 100644 --- a/source/blender/src/editdeform.c +++ b/source/blender/src/editdeform.c @@ -61,6 +61,8 @@ #include "BSE_edit.h" +#include "multires.h" + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -493,6 +495,8 @@ void assign_verts_defgroup (void) MDeformWeight *newdw; MDeformVert *dvert; int i, done; + + if(multires_level1_test()) return; ob= G.obedit; @@ -604,6 +608,8 @@ void remove_verts_defgroup (int allverts) MDeformWeight *newdw; bDeformGroup *dg, *eg; int i; + + if(multires_level1_test()) return; ob= G.obedit; diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c index 1102c69113c..c7b34068b3e 100644 --- a/source/blender/src/editmesh_mods.c +++ b/source/blender/src/editmesh_mods.c @@ -2576,6 +2576,8 @@ void editmesh_mark_seam(int clear) { EditMesh *em= G.editMesh; EditEdge *eed; + + if(multires_level1_test()) return; /* auto-enable seams drawing */ if(clear==0) { diff --git a/source/blender/src/multires.c b/source/blender/src/multires.c index e15556c8794..f5690f4eba4 100644 --- a/source/blender/src/multires.c +++ b/source/blender/src/multires.c @@ -82,14 +82,22 @@ CustomDataMask vdata_mask= CD_MASK_MDEFORMVERT; /* editmesh.h */ int multires_test() { - Mesh *me= get_mesh( - OBACT); + Mesh *me= get_mesh(OBACT); if(me && me->mr) { error("Unable to complete action with multires enabled."); return 1; } return 0; } +int multires_level1_test() +{ + Mesh *me= get_mesh(OBACT); + if(me && me->mr && me->mr->current != 1) { + error("Operation only available for multires level 1."); + return 1; + } + return 0; +} /* Sculptmode */ |