diff --git a/draw.cpp b/draw.cpp index bebef54e..a2c9c15d 100644 --- a/draw.cpp +++ b/draw.cpp @@ -175,6 +175,7 @@ void GraphicsWindow::SelectByMarquee(void) { for(e = SK.entity.First(); e; e = SK.entity.NextAfter(e)) { if(e->group.v != SS.GW.activeGroup.v) continue; if(e->IsFace() || e->IsDistance()) continue; + if(!e->IsVisible()) continue; if(e->IsPoint() || e->IsNormal()) { Vector p = e->IsPoint() ? e->PointGetNum() : @@ -193,7 +194,7 @@ void GraphicsWindow::SelectByMarquee(void) { ptMax = Vector::From(xmax, ymax, 1); SEdgeList sel; ZERO(&sel); - e->GenerateEdges(&sel); + e->GenerateEdges(&sel, true); SEdge *se; for(se = sel.l.First(); se; se = sel.l.NextAfter(se)) { Point2d ppa = ProjectPoint(se->a), diff --git a/graphicswin.cpp b/graphicswin.cpp index e34ae9b0..94b8820b 100644 --- a/graphicswin.cpp +++ b/graphicswin.cpp @@ -629,6 +629,7 @@ void GraphicsWindow::MenuEdit(int id) { for(e = SK.entity.First(); e; e = SK.entity.NextAfter(e)) { if(e->group.v != SS.GW.activeGroup.v) continue; if(e->IsFace() || e->IsDistance()) continue; + if(!e->IsVisible()) continue; SS.GW.ToggleSelectionStateOf(e->h); } @@ -646,6 +647,7 @@ void GraphicsWindow::MenuEdit(int id) { for(e = SK.entity.First(); e; e = SK.entity.NextAfter(e)) { if(e->group.v != SS.GW.activeGroup.v) continue; if(!e->HasEndpoints()) continue; + if(!e->IsVisible()) continue; Vector st = e->EndpointStart(), fi = e->EndpointFinish(); @@ -861,6 +863,7 @@ c: break; case MNU_CONSTRUCTION: { + SS.UndoRemember(); SS.GW.GroupSelection(); int i; for(i = 0; i < SS.GW.gs.entities; i++) {