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.
pull/168/head
whitequark 2017-01-16 13:02:56 +00:00
parent 04e86d9b36
commit 572fbc7463
2 changed files with 6 additions and 10 deletions

View File

@ -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;
}

View File

@ -44,7 +44,8 @@ void Group::AddParam(IdList<Param,hParam> *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;
}