Revert "Spruce up formatting and error messages"

This reverts commit adc60ac5c1. We decided
that it would be better for me to request formatting changes one by one.
This commit is contained in:
Aaron Fenyes 2025-10-09 22:36:37 -07:00
parent adc60ac5c1
commit c081f1a809

View file

@ -308,11 +308,10 @@ impl Element for Point {
fn default_regulators(self: Rc<Self>) -> Vec<Rc<dyn Regulator>> { fn default_regulators(self: Rc<Self>) -> Vec<Rc<dyn Regulator>> {
all::<Axis>() all::<Axis>()
.map( .map(|axis| {
|axis| Rc::new( Rc::new(PointCoordinateRegulator::new(self.clone(), axis))
PointCoordinateRegulator::new(self.clone(), axis) as Rc::<dyn Regulator>
) as Rc::<dyn Regulator> })
)
.collect() .collect()
} }
@ -539,32 +538,19 @@ impl PointCoordinateRegulator {
let measurement = subject.representation().map( let measurement = subject.representation().map(
move |rep| rep[axis as usize] move |rep| rep[axis as usize]
); );
let set_point = create_signal(SpecifiedValue::from_empty_spec()); let set_point = create_signal(SpecifiedValue::from_empty_spec());
let serial = Self::next_serial(); Self { subject, axis, measurement, set_point, serial: Self::next_serial() }
Self { subject, axis, measurement, set_point, serial }
} }
} }
impl Serial for PointCoordinateRegulator { impl Serial for PointCoordinateRegulator {
fn serial(&self) -> u64 { fn serial(&self) -> u64 { self.serial }
self.serial
}
} }
impl Regulator for PointCoordinateRegulator { impl Regulator for PointCoordinateRegulator {
fn subjects(&self) -> Vec<Rc<dyn Element>> { fn subjects(&self) -> Vec<Rc<dyn Element>> { vec![self.subject.clone()] }
vec![self.subject.clone()] fn measurement(&self) -> ReadSignal<f64> { self.measurement }
} fn set_point(&self) -> Signal<SpecifiedValue> { self.set_point }
fn measurement(&self) -> ReadSignal<f64> {
self.measurement
}
fn set_point(&self) -> Signal<SpecifiedValue> {
self.set_point
}
} }
impl ProblemPoser for PointCoordinateRegulator { impl ProblemPoser for PointCoordinateRegulator {
@ -572,25 +558,22 @@ impl ProblemPoser for PointCoordinateRegulator {
self.set_point.with_untracked(|set_pt| { self.set_point.with_untracked(|set_pt| {
if let Some(val) = set_pt.value { if let Some(val) = set_pt.value {
let col = self.subject.column_index().expect( let col = self.subject.column_index().expect(
"Subject should be indexed before point coordinate regulator writes problem data" "Subject must be indexed before point-coordinate regulator poses.");
);
problem.frozen.push(self.axis as usize, col, val); problem.frozen.push(self.axis as usize, col, val);
// Check if all three spatial coordinates have been frozen, and if so,
// if all three of the subject's spatial coordinates have been // freeze the norm component as well
// frozen, then freeze its norm component too let mut coords = [0.0; Axis::CARDINALITY];
let mut coords_frozen = [0.0; Axis::CARDINALITY]; let mut nset: usize = 0;
let mut n_set: usize = 0; for &MatrixEntry {index, value} in &(problem.frozen) {
for &MatrixEntry { index, value } in &(problem.frozen) { if index.1 == col && index.0 < Axis::CARDINALITY {
let (row_frozen, col_frozen) = index; nset += 1;
if col_frozen == col && row_frozen < Axis::CARDINALITY { coords[index.0] = value
n_set += 1;
coords_frozen[row_frozen] = value
} }
} }
if n_set == Axis::CARDINALITY { if nset == Axis::CARDINALITY {
let [x, y, z] = coords_frozen; let [x, y, z] = coords;
let norm = point(x, y, z)[Point::NORM_COMPONENT]; problem.frozen.push(
problem.frozen.push(Point::NORM_COMPONENT, col, norm); Point::NORM_COMPONENT, col, point(x,y,z)[Point::NORM_COMPONENT]);
} }
} }
}); });