diff options
author | Johnny Matthews <johnny.matthews@gmail.com> | 2005-11-08 17:52:35 +0300 |
---|---|---|
committer | Johnny Matthews <johnny.matthews@gmail.com> | 2005-11-08 17:52:35 +0300 |
commit | ea1d6d54d04b7749d88bbc7f8d3ff932424aa3f9 (patch) | |
tree | a3291224a6031e4827dec09741ad3b6c50c6610c /source/blender/src/editmesh_loop.c | |
parent | ece7963545db10e8ea627f2e6fd75801d49067f1 (diff) |
#3375
CutEdgeLoop now ignores hidden edges
Diffstat (limited to 'source/blender/src/editmesh_loop.c')
-rw-r--r-- | source/blender/src/editmesh_loop.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/src/editmesh_loop.c b/source/blender/src/editmesh_loop.c index 01ac141f7ef..719d09287f8 100644 --- a/source/blender/src/editmesh_loop.c +++ b/source/blender/src/editmesh_loop.c @@ -210,6 +210,7 @@ void CutEdgeloop(int numcuts) short mvalo[2] = {0,0}, mval[2]; short event,val,choosing=1,cancel=0,dist,cuthalf = 0,smooth=0; char msg[128]; + short hasHidden = 0; selectmode = G.scene->selectmode; @@ -366,6 +367,15 @@ void CutEdgeloop(int numcuts) /* select edge ring */ edgering_sel(nearest, 1, 0); + /* Deselect Hidden Edges */ + for(eed=em->edges.first; eed; eed = eed->next){ + if(eed->h == 1 || (eed->v1->h == 1 || eed->v2->h == 1)){ + EM_select_edge(eed,0); + hasHidden = 1; + } + } + + /* now cut the loops */ if(smooth){ esubdivideflag(SELECT,0,B_SMOOTH,numcuts,SUBDIV_SELECT_INNER_SEL); @@ -373,7 +383,7 @@ void CutEdgeloop(int numcuts) esubdivideflag(SELECT,0,0,numcuts,SUBDIV_SELECT_INNER_SEL); } /* if this was a single cut, enter edgeslide mode */ - if(numcuts == 1){ + if(numcuts == 1 && hasHidden == 0){ if(cuthalf) EdgeSlide(1,0.0); else { |