fix [#28635] Mirror Modifier - Clipping still active when modifier is disabled
authorCampbell Barton <ideasman42@gmail.com>
Tue, 13 Sep 2011 05:00:54 +0000 (05:00 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 13 Sep 2011 05:00:54 +0000 (05:00 +0000)
source/blender/editors/mesh/editmesh_lib.c
source/blender/editors/mesh/editmesh_mods.c
source/blender/editors/mesh/editmesh_tools.c
source/blender/editors/transform/transform_generics.c

index 79e0ffc..02b5250 100644 (file)
@@ -1310,7 +1310,7 @@ static short extrudeflag_edge(Object *obedit, EditMesh *em, short UNUSED(flag),
         * of the cases above to handle edges on the line of symmetry.
         */
        for (; md; md=md->next) {
-               if (md->type==eModifierType_Mirror) {
+               if ((md->type==eModifierType_Mirror) && (md->mode & eModifierMode_Realtime)) {
                        MirrorModifierData *mmd = (MirrorModifierData*) md;     
                
                        if(mmd->flag & MOD_MIR_CLIPPING) {
@@ -1597,7 +1597,7 @@ short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor, int
         * of the cases above to handle edges on the line of symmetry.
         */
        for (; md; md=md->next) {
-               if (md->type==eModifierType_Mirror) {
+               if ((md->type==eModifierType_Mirror) && (md->mode & eModifierMode_Realtime)) {
                        MirrorModifierData *mmd = (MirrorModifierData*) md;     
                
                        if(mmd->flag & MOD_MIR_CLIPPING) {
index 57b31b1..7af4ebe 100644 (file)
@@ -4148,7 +4148,7 @@ static int smooth_vertex(bContext *C, wmOperator *op)
         * are within tolerance of the plane(s) of reflection 
         */
        for(md=obedit->modifiers.first; md; md=md->next) {
-               if(md->type==eModifierType_Mirror) {
+               if((md->type==eModifierType_Mirror) && (md->mode & eModifierMode_Realtime)) {
                        MirrorModifierData *mmd = (MirrorModifierData*) md;     
                
                        if(mmd->flag & MOD_MIR_CLIPPING) {
index 23bea75..2dc82ae 100644 (file)
@@ -2675,7 +2675,7 @@ void esubdivideflag(Object *obedit, EditMesh *em, int flag, float smooth, float
        }
 
        for (; md; md=md->next) {
-               if (md->type==eModifierType_Mirror) {
+               if ((md->type==eModifierType_Mirror) && (md->mode & eModifierMode_Realtime)) {
                        MirrorModifierData *mmd = (MirrorModifierData*) md;
 
                        if(mmd->flag & MOD_MIR_CLIPPING) {
index 19e794b..76c8166 100644 (file)
@@ -144,7 +144,7 @@ static void clipMirrorModifier(TransInfo *t, Object *ob)
        int axis = 0;
        
        for (; md; md=md->next) {
-               if (md->type==eModifierType_Mirror) {
+               if ((md->type==eModifierType_Mirror) && (md->mode & eModifierMode_Realtime)) {
                        MirrorModifierData *mmd = (MirrorModifierData*) md;
                        
                        if(mmd->flag & MOD_MIR_CLIPPING) {