From 572fbc7463c0a70eb8445984c744b9cd0c00f1b6 Mon Sep 17 00:00:00 2001 From: whitequark Date: Mon, 16 Jan 2017 13:02:56 +0000 Subject: [PATCH] Reapply "Simplify Group::IsVisible(), GroupsInOrder()." This reverts commit 1d1bdddef21baf1e312fcc65bb67e76c87b2b0fc, with a bugfix for pruning orphans when deleting a group in the middle of the sketch. --- src/generate.cpp | 13 ++++--------- src/group.cpp | 3 ++- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/generate.cpp b/src/generate.cpp index 41066c79..96030bc3 100644 --- a/src/generate.cpp +++ b/src/generate.cpp @@ -57,15 +57,10 @@ bool SolveSpaceUI::PruneOrphans() { bool SolveSpaceUI::GroupsInOrder(hGroup before, hGroup after) { if(before.v == 0) return true; if(after.v == 0) return true; - - int beforep = -1, afterp = -1; - int i; - for(i = 0; i < SK.groupOrder.n; i++) { - hGroup hg = SK.groupOrder.elem[i]; - if(hg.v == before.v) beforep = i; - if(hg.v == after.v) afterp = i; - } - if(beforep < 0 || afterp < 0) return false; + if(!GroupExists(before)) return false; + if(!GroupExists(after)) return false; + int beforep = SK.GetGroup(before)->order; + int afterp = SK.GetGroup(after)->order; if(beforep >= afterp) return false; return true; } diff --git a/src/group.cpp b/src/group.cpp index 2a04d686..c3da08a9 100644 --- a/src/group.cpp +++ b/src/group.cpp @@ -44,7 +44,8 @@ void Group::AddParam(IdList *param, hParam hp, double v) { bool Group::IsVisible() { if(!visible) return false; - if(SS.GroupsInOrder(SS.GW.activeGroup, h)) return false; + Group *active = SK.GetGroup(SS.GW.activeGroup); + if(order > active->order) return false; return true; }