Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Matthews <johnny.matthews@gmail.com>2005-11-08 17:52:35 +0300
committerJohnny Matthews <johnny.matthews@gmail.com>2005-11-08 17:52:35 +0300
commitea1d6d54d04b7749d88bbc7f8d3ff932424aa3f9 (patch)
treea3291224a6031e4827dec09741ad3b6c50c6610c /source/blender/src/editmesh_loop.c
parentece7963545db10e8ea627f2e6fd75801d49067f1 (diff)
#3375
CutEdgeLoop now ignores hidden edges
Diffstat (limited to 'source/blender/src/editmesh_loop.c')
-rw-r--r--source/blender/src/editmesh_loop.c12
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 {