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 b94280c456
commit d223df869c

View File

@ -161,7 +161,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.representation.get_clone()); guess_to_be.set_column(index, &elt.representation.get_clone_untracked());
} }
(gram_to_be, guess_to_be) (gram_to_be, guess_to_be)
@ -203,7 +203,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.representation.update( elt.representation.update(
|rep| rep.set_column(0, &config.column(elt.index)) |rep| rep.set_column(0, &config.column(elt.index))
); );