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:
authorTon Roosendaal <ton@blender.org>2004-09-28 17:58:23 +0400
committerTon Roosendaal <ton@blender.org>2004-09-28 17:58:23 +0400
commitff5e65bdbbda9425c6e1f81590ee894d3b787235 (patch)
tree15b73b3ae4e6a8c74114678ffed578604efd87e0 /source/blender/src/editmesh_mods.c
parente6cc3c1ee189579cba2b686ec6265c04f233ec2a (diff)
Crash fix;
- wireframe view - editmode cube - subsurf + optimal on - set new selectmode 'face' thanks sirdude & sgefant!
Diffstat (limited to 'source/blender/src/editmesh_mods.c')
-rw-r--r--source/blender/src/editmesh_mods.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c
index f842bacca54..97cdf131dc9 100644
--- a/source/blender/src/editmesh_mods.c
+++ b/source/blender/src/editmesh_mods.c
@@ -861,6 +861,7 @@ static void faceloop_select(EditEdge *startedge, int select)
}
}
+
/* helper for edgeloop_select, checks for eed->f2 tag in faces */
static int edge_not_in_tagged_face(EditEdge *eed)
{
@@ -869,8 +870,10 @@ static int edge_not_in_tagged_face(EditEdge *eed)
for(efa= em->faces.first; efa; efa= efa->next) {
if(efa->h==0) {
- if(efa->e1==eed || efa->e2==eed || efa->e3==eed || efa->e4==eed) {
- if(efa->e1->f2 || efa->e2->f2 || efa->e3->f2 || (efa->e4 && efa->e4->f2)) return 0;
+ if(efa->e1==eed || efa->e2==eed || efa->e3==eed || efa->e4==eed) { // edge is in face
+ if(efa->e1->f2 || efa->e2->f2 || efa->e3->f2 || (efa->e4 && efa->e4->f2)) { // face is tagged
+ return 0;
+ }
}
}
}
@@ -897,7 +900,7 @@ static void edgeloop_select(EditEdge *starteed, int select)
int looking= 1;
/* in f1 we put the valence (amount of edges in a vertex, or faces in edge) */
- /* in f2 we put tagged flag as correct loop */
+ /* in eed->f2 and efa->f1 we put tagged flag as correct loop */
for(eve= em->verts.first; eve; eve= eve->next) {
eve->f1= 0;
eve->f2= 0;
@@ -910,6 +913,7 @@ static void edgeloop_select(EditEdge *starteed, int select)
}
}
for(efa= em->faces.first; efa; efa= efa->next) {
+ efa->f1= 0;
if(efa->h==0) {
efa->e1->f1++;
efa->e2->f1++;