Stop Assembly::realize from reacting to itself

Previously, `realize` both tracked and updated the element vectors, so
calling it in a reactive context could start a feedback loop.
This commit is contained in:
Aaron Fenyes 2024-11-01 20:49:00 -07:00
parent 327a1267d5
commit 6e42681b71

View File

@ -151,7 +151,7 @@ impl Assembly {
for (_, elt) in elts { for (_, elt) in elts {
let index = elt.index; let index = elt.index;
gram_to_be.push_sym(index, index, 1.0); gram_to_be.push_sym(index, index, 1.0);
guess_to_be.set_column(index, &elt.rep.get_clone()); guess_to_be.set_column(index, &elt.rep.get_clone_untracked());
} }
(gram_to_be, guess_to_be) (gram_to_be, guess_to_be)
@ -193,7 +193,7 @@ impl Assembly {
if success { if success {
// read out the solution // read out the solution
for (_, elt) in self.elements.get_clone() { for (_, elt) in self.elements.get_clone_untracked() {
elt.rep.update( elt.rep.update(
|rep| rep.set_column(0, &config.column(elt.index)) |rep| rep.set_column(0, &config.column(elt.index))
); );