This commit adds rotate edges Clockwise and CounterClockwise to the Edge Specials Menu (and of course the code to back them up)
This commit is contained in:
@@ -2434,7 +2434,7 @@ void edge_flip(void)
|
||||
|
||||
}
|
||||
|
||||
static void edge_rotate(EditEdge *eed)
|
||||
static void edge_rotate(EditEdge *eed,int dir)
|
||||
{
|
||||
EditMesh *em = G.editMesh;
|
||||
EditFace *face[2], *efa, *newFace[2];
|
||||
@@ -2564,95 +2564,176 @@ static void edge_rotate(EditEdge *eed)
|
||||
|
||||
/* create the 2 new faces */
|
||||
if(fac1 == 3 && fac2 == 3){
|
||||
newFace[0] = addfacelist(faces[0][(p1+1)%3],faces[0][(p1+2)%3],faces[1][(p3+1)%3],NULL,NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1)%3],faces[1][(p3+2)%3],faces[0][(p1+1)%3],NULL,NULL,NULL);
|
||||
/*No need of reverse setup*/
|
||||
newFace[0] = addfacelist(faces[0][(p1+1 )%3],faces[0][(p1+2 )%3],faces[1][(p3+1 )%3],NULL,NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1 )%3],faces[1][(p3+2 )%3],faces[0][(p1+1 )%3],NULL,NULL,NULL);
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+1)%3];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+2)%3];
|
||||
newFace[0]->tf.col[2] = face[1]->tf.col[(p3+1)%3];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1)%3];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2)%3];
|
||||
newFace[1]->tf.col[2] = face[0]->tf.col[(p1+1)%3];
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+1 )%3];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+2 )%3];
|
||||
newFace[0]->tf.col[2] = face[1]->tf.col[(p3+1 )%3];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1 )%3];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2 )%3];
|
||||
newFace[1]->tf.col[2] = face[0]->tf.col[(p1+1 )%3];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+1)%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+2)%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[1]->tf.uv[(p3+1)%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1)%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2)%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[0]->tf.uv[(p1+1)%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+1 )%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+2 )%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[1]->tf.uv[(p3+1 )%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1 )%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2 )%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[0]->tf.uv[(p1+1 )%3]);
|
||||
}
|
||||
else if(fac1 == 4 && fac2 == 3){
|
||||
newFace[0] = addfacelist(faces[0][(p1+1)%4],faces[0][(p1+2)%4],faces[0][(p1+3)%4],faces[1][(p3+1)%3],NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1)%3],faces[1][(p3+2)%3],faces[0][(p1+1)%4],NULL,NULL,NULL);
|
||||
if(dir == 1){
|
||||
newFace[0] = addfacelist(faces[0][(p1+1 )%4],faces[0][(p1+2 )%4],faces[0][(p1+3 )%4],faces[1][(p3+1 )%3],NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1 )%3],faces[1][(p3+2 )%3],faces[0][(p1+1 )%4],NULL,NULL,NULL);
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+1 )%4];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+2 )%4];
|
||||
newFace[0]->tf.col[2] = face[0]->tf.col[(p1+3 )%4];
|
||||
newFace[0]->tf.col[3] = face[1]->tf.col[(p3+1 )%3];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1 )%3];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2 )%3];
|
||||
newFace[1]->tf.col[2] = face[0]->tf.col[(p1+1 )%4];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+1 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+2 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[0]->tf.uv[(p1+3 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[3],face[1]->tf.uv[(p3+1 )%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1 )%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2 )%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[0]->tf.uv[(p1+1 )%4]);
|
||||
} else if (dir == 2){
|
||||
newFace[0] = addfacelist(faces[0][(p1+2 )%4],faces[1][(p3+1)%3],faces[0][(p1)%4],faces[0][(p1+1 )%4],NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[0][(p1+2 )%4],faces[1][(p3)%3],faces[1][(p3+1 )%3],NULL,NULL,NULL);
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+1)%4];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+2)%4];
|
||||
newFace[0]->tf.col[2] = face[0]->tf.col[(p1+3)%4];
|
||||
newFace[0]->tf.col[3] = face[1]->tf.col[(p3+1)%3];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1)%3];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2)%3];
|
||||
newFace[1]->tf.col[2] = face[0]->tf.col[(p1+1)%4];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+1)%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+2)%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[0]->tf.uv[(p1+3)%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[3],face[1]->tf.uv[(p3+1)%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1)%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2)%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[0]->tf.uv[(p1+1)%4]);
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+2)%4];
|
||||
newFace[0]->tf.col[1] = face[1]->tf.col[(p3+1)%3];
|
||||
newFace[0]->tf.col[2] = face[0]->tf.col[(p1 )%4];
|
||||
newFace[0]->tf.col[3] = face[0]->tf.col[(p1+1)%4];
|
||||
newFace[1]->tf.col[0] = face[0]->tf.col[(p1+2)%4];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3 )%3];
|
||||
newFace[1]->tf.col[2] = face[1]->tf.col[(p3+1)%3];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+2)%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[1]->tf.uv[(p3+1)%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[0]->tf.uv[(p1 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[3],face[0]->tf.uv[(p1+1)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[0]->tf.uv[(p1+2)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3 )%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[1]->tf.uv[(p3+1)%3]);
|
||||
|
||||
faces[0][(p1+2)%fac1]->f |= SELECT;
|
||||
faces[1][(p3+1)%fac2]->f |= SELECT;
|
||||
}
|
||||
}
|
||||
|
||||
else if(fac1 == 3 && fac2 == 4){
|
||||
newFace[0] = addfacelist(faces[0][(p1+1)%3],faces[0][(p1+2)%3],faces[1][(p3+1)%4],NULL,NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1)%4],faces[1][(p3+2)%4],faces[1][(p3+3)%4],faces[0][(p1+1)%3],NULL,NULL);
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+1)%3];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+2)%3];
|
||||
newFace[0]->tf.col[2] = face[1]->tf.col[(p3+1)%4];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1)%4];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2)%4];
|
||||
newFace[1]->tf.col[2] = face[1]->tf.col[(p3+3)%4];
|
||||
newFace[1]->tf.col[3] = face[0]->tf.col[(p1+1)%3];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+1)%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+2)%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[1]->tf.uv[(p3+1)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[1]->tf.uv[(p3+3)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[3],face[0]->tf.uv[(p1+1)%3]);
|
||||
if(dir == 1){
|
||||
newFace[0] = addfacelist(faces[0][(p1+1 )%3],faces[0][(p1+2 )%3],faces[1][(p3+1 )%4],NULL,NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1 )%4],faces[1][(p3+2 )%4],faces[1][(p3+3 )%4],faces[0][(p1+1 )%3],NULL,NULL);
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+1 )%3];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+2 )%3];
|
||||
newFace[0]->tf.col[2] = face[1]->tf.col[(p3+1 )%4];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1 )%4];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2 )%4];
|
||||
newFace[1]->tf.col[2] = face[1]->tf.col[(p3+3 )%4];
|
||||
newFace[1]->tf.col[3] = face[0]->tf.col[(p1+1 )%3];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+1 )%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+2 )%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[1]->tf.uv[(p3+1 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[1]->tf.uv[(p3+3 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[3],face[0]->tf.uv[(p1+1 )%3]);
|
||||
} else if (dir == 2){
|
||||
newFace[0] = addfacelist(faces[0][(p1)%3],faces[0][(p1+1 )%3],faces[1][(p3+2 )%4],NULL,NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1 )%4],faces[1][(p3+2 )%4],faces[0][(p1+1 )%3],faces[0][(p1+2 )%3],NULL,NULL);
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1 )%3];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+1 )%3];
|
||||
newFace[0]->tf.col[2] = face[1]->tf.col[(p3+2 )%4];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1 )%4];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2 )%4];
|
||||
newFace[1]->tf.col[2] = face[0]->tf.col[(p1+1 )%3];
|
||||
newFace[1]->tf.col[3] = face[0]->tf.col[(p1+2 )%3];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1 )%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+1 )%3]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[1]->tf.uv[(p3+2 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[0]->tf.uv[(p1+1 )%3]);
|
||||
UVCOPY(newFace[1]->tf.uv[3],face[0]->tf.uv[(p1+2 )%3]);
|
||||
|
||||
faces[0][(p1+1)%fac1]->f |= SELECT;
|
||||
faces[1][(p3+2)%fac2]->f |= SELECT;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if(fac1 == 4 && fac2 == 4){
|
||||
newFace[0] = addfacelist(faces[0][(p1+1)%4],faces[0][(p1+2)%4],faces[0][(p1+3)%4],faces[1][(p3+1)%4],NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1)%4],faces[1][(p3+2)%4],faces[1][(p3+3)%4],faces[0][(p1+1)%4],NULL,NULL);
|
||||
if(dir == 1){
|
||||
newFace[0] = addfacelist(faces[0][(p1+1 )%4],faces[0][(p1+2 )%4],faces[0][(p1+3 )%4],faces[1][(p3+1 )%4],NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+1 )%4],faces[1][(p3+2 )%4],faces[1][(p3+3 )%4],faces[0][(p1+1 )%4],NULL,NULL);
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+1 )%4];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+2 )%4];
|
||||
newFace[0]->tf.col[2] = face[0]->tf.col[(p1+3 )%4];
|
||||
newFace[0]->tf.col[3] = face[1]->tf.col[(p3+1 )%4];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1 )%4];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2 )%4];
|
||||
newFace[1]->tf.col[2] = face[1]->tf.col[(p3+3 )%4];
|
||||
newFace[1]->tf.col[3] = face[0]->tf.col[(p1+1 )%4];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+1 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+2 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[0]->tf.uv[(p1+3 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[3],face[1]->tf.uv[(p3+1 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[1]->tf.uv[(p3+3 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[3],face[0]->tf.uv[(p1+1 )%4]);
|
||||
} else if (dir == 2){
|
||||
newFace[0] = addfacelist(faces[0][(p1+2 )%4],faces[0][(p1+3 )%4],faces[1][(p3+1 )%4],faces[1][(p3+2 )%4],NULL,NULL);
|
||||
newFace[1] = addfacelist(faces[1][(p3+2 )%4],faces[1][(p3+3 )%4],faces[0][(p1+1 )%4],faces[0][(p1+2 )%4],NULL,NULL);
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+2 )%4];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+3 )%4];
|
||||
newFace[0]->tf.col[2] = face[1]->tf.col[(p3+1 )%4];
|
||||
newFace[0]->tf.col[3] = face[1]->tf.col[(p3+2 )%4];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+2 )%4];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+3 )%4];
|
||||
newFace[1]->tf.col[2] = face[0]->tf.col[(p1+1 )%4];
|
||||
newFace[1]->tf.col[3] = face[0]->tf.col[(p1+2 )%4];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+2 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+3 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[1]->tf.uv[(p3+1 )%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[3],face[1]->tf.uv[(p3+2 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+2 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+3 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[0]->tf.uv[(p1+1 )%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[3],face[0]->tf.uv[(p1+2 )%4]);
|
||||
|
||||
faces[0][(p1+2)%fac1]->f |= SELECT;
|
||||
faces[1][(p3+2)%fac2]->f |= SELECT;
|
||||
}
|
||||
|
||||
|
||||
newFace[0]->tf.col[0] = face[0]->tf.col[(p1+1)%4];
|
||||
newFace[0]->tf.col[1] = face[0]->tf.col[(p1+2)%4];
|
||||
newFace[0]->tf.col[2] = face[0]->tf.col[(p1+3)%4];
|
||||
newFace[0]->tf.col[3] = face[1]->tf.col[(p3+1)%4];
|
||||
newFace[1]->tf.col[0] = face[1]->tf.col[(p3+1)%4];
|
||||
newFace[1]->tf.col[1] = face[1]->tf.col[(p3+2)%4];
|
||||
newFace[1]->tf.col[2] = face[1]->tf.col[(p3+3)%4];
|
||||
newFace[1]->tf.col[3] = face[0]->tf.col[(p1+1)%4];
|
||||
|
||||
UVCOPY(newFace[0]->tf.uv[0],face[0]->tf.uv[(p1+1)%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[1],face[0]->tf.uv[(p1+2)%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[2],face[0]->tf.uv[(p1+3)%4]);
|
||||
UVCOPY(newFace[0]->tf.uv[3],face[1]->tf.uv[(p3+1)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[0],face[1]->tf.uv[(p3+1)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[1],face[1]->tf.uv[(p3+2)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[2],face[1]->tf.uv[(p3+3)%4]);
|
||||
UVCOPY(newFace[1]->tf.uv[3],face[0]->tf.uv[(p1+1)%4]);
|
||||
}
|
||||
else{
|
||||
/*This should never happen*/
|
||||
return;
|
||||
}
|
||||
|
||||
if(dir == 1){
|
||||
faces[0][(p1+1)%fac1]->f |= SELECT;
|
||||
faces[1][(p3+1)%fac2]->f |= SELECT;
|
||||
}
|
||||
|
||||
/* copy flags and material */
|
||||
|
||||
newFace[0]->mat_nr = face[0]->mat_nr;
|
||||
newFace[0]->tf.flag = face[0]->tf.flag;
|
||||
newFace[0]->tf.transp = face[0]->tf.transp;
|
||||
@@ -2670,22 +2751,21 @@ static void edge_rotate(EditEdge *eed)
|
||||
newFace[1]->tf.tpage = face[1]->tf.tpage;
|
||||
|
||||
/* redo the vertex selection */
|
||||
faces[0][(p1+1)%fac1]->f |= SELECT;
|
||||
faces[1][(p3+1)%fac2]->f |= SELECT;
|
||||
|
||||
|
||||
|
||||
/* get rid of the old edge and faces*/
|
||||
remedge(eed);
|
||||
free_editedge(eed);
|
||||
BLI_remlink(&em->faces, face[0]);
|
||||
free_editface(face[0]);
|
||||
BLI_remlink(&em->faces, face[1]);
|
||||
free_editface(face[1]);
|
||||
|
||||
free_editface(face[1]);
|
||||
return;
|
||||
}
|
||||
|
||||
/* only accepts 1 selected edge, or 2 selected faces */
|
||||
void edge_rotate_selected()
|
||||
void edge_rotate_selected(int dir)
|
||||
{
|
||||
EditEdge *eed;
|
||||
EditFace *efa;
|
||||
@@ -2715,7 +2795,7 @@ void edge_rotate_selected()
|
||||
if(edgeCount==1) {
|
||||
for(eed= G.editMesh->edges.first; eed; eed= eed->next) {
|
||||
if(eed->f1==2) {
|
||||
edge_rotate(eed);
|
||||
edge_rotate(eed,dir);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2726,7 +2806,7 @@ void edge_rotate_selected()
|
||||
for(eed= G.editMesh->edges.first; eed; eed= eed->next) {
|
||||
if(eed->f & SELECT) {
|
||||
EM_select_edge(eed, 0);
|
||||
edge_rotate(eed);
|
||||
edge_rotate(eed,dir);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user