In CTRL-E menu "Edgeloop Delete" with a valid "inner" edgeloop selected, this function calls other tools to delete that edgeloop by doing the following

Edgeslide to one side 100%
CTRL +  to select "more"
Remove Doubles

Leaves you with new faceloop selected.
This commit is contained in:
Johnny Matthews 2005-08-07 20:46:26 +00:00
parent f333f124ca
commit bfcc67267b
3 changed files with 14 additions and 1 deletions

@ -173,6 +173,7 @@ extern void fill_mesh(void);
extern void bevel_menu();
void edge_rotate_selected(int dir);
int EdgeSlide(short immediate, float imperc);
void EdgeLoopDelete(void);
#endif

@ -1783,7 +1783,7 @@ void editmesh_mark_seam(int clear)
void Edge_Menu() {
short ret;
ret= pupmenu("Edge Specials%t|Mark Seam %x1|Clear Seam %x2|Rotate Edge CW%x3|Rotate Edge CCW%x4|Loopcut%x6|Edge Slide%x5");
ret= pupmenu("Edge Specials%t|Mark Seam %x1|Clear Seam %x2|Rotate Edge CW%x3|Rotate Edge CCW%x4|Loopcut%x6|Edge Slide%x5|EdgeLoop Delete%x7");
switch(ret)
{
@ -1807,6 +1807,10 @@ void Edge_Menu() {
CutEdgeloop(1);
BIF_undo_push("Loopcut New");
break;
case 7:
EdgeLoopDelete();
BIF_undo_push("Edgeloop Remove");
break;
}
}

@ -4264,6 +4264,14 @@ static float Dist2s(short* d1,short* d2){
return sqrt(pow(d1[0]-d2[0],2)+pow(d1[1]-d2[1],2));
}
void EdgeLoopDelete(){
EdgeSlide(1, 1);
select_more();
removedoublesflag(1,0.001);
EM_select_flush();
DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
}
int EdgeSlide(short immediate, float imperc)
{
EditMesh *em = G.editMesh;