Write params if system is solved as REDUNDANT_OKAY.
A system solved as REDUNDANT_OKAY is still solved correctly,
even if the UI would consider this an error, in case that
g->allowRedundant==false. So there's no reason to discard this
solution; we might find it useful if a system loses a degree of
freedom while dragging, or to avoid regeneration after redundant
constraints are allowed.
This commit also reverts commit 3ff236c
, as that is not necessary
anymore.
pull/97/head
parent
8e329ca2b3
commit
b2092eaea9
|
@ -463,10 +463,8 @@ SolveResult System::Solve(Group *g, int *dof, List<hConstraint> *bad,
|
|||
if(!rankOk) {
|
||||
if(!g->allowRedundant) {
|
||||
if(andFindBad) FindWhichToRemoveToFixJacobian(g, bad);
|
||||
return SolveResult::REDUNDANT_OKAY;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
// This is not the full Jacobian, but any substitutions or single-eq
|
||||
// solves removed one equation and one unknown, therefore no effect
|
||||
// on the number of DOF.
|
||||
|
@ -492,7 +490,7 @@ SolveResult System::Solve(Group *g, int *dof, List<hConstraint> *bad,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// System solved correctly, so write the new values back in to the
|
||||
// main parameter table.
|
||||
for(i = 0; i < param.n; i++) {
|
||||
|
|
|
@ -467,7 +467,6 @@ void TextWindow::ScreenAllowRedundant(int link, uint32_t v) {
|
|||
|
||||
Group *g = SK.GetGroup(SS.TW.shown.group);
|
||||
g->allowRedundant = true;
|
||||
SS.MarkGroupDirty(g->h);
|
||||
SS.GenerateAll();
|
||||
|
||||
SS.TW.shown.screen = Screen::GROUP_INFO;
|
||||
|
|
Loading…
Reference in New Issue