diff --git a/app-proto/src/assembly.rs b/app-proto/src/assembly.rs index d571d0e..5ba75ff 100644 --- a/app-proto/src/assembly.rs +++ b/app-proto/src/assembly.rs @@ -312,13 +312,14 @@ impl Element for Point { point(0.0, 0.0, 0.0), ) } - + fn default_regulators(self: Rc) -> Vec> { all::() - .map(|axis| { - Rc::new(PointCoordinateRegulator::new(self.clone(), axis)) - as Rc:: - }) + .map( + |axis| Rc::new( + PointCoordinateRegulator::new(self.clone(), axis) + ) as Rc:: + ) .collect() } @@ -543,19 +544,32 @@ impl PointCoordinateRegulator { let measurement = subject.representation().map( move |rep| rep[axis as usize] ); + let set_point = create_signal(SpecifiedValue::from_empty_spec()); - Self { subject, axis, measurement, set_point, serial: Self::next_serial() } + let serial = Self::next_serial(); + + Self { subject, axis, measurement, set_point, serial } } } impl Serial for PointCoordinateRegulator { - fn serial(&self) -> u64 { self.serial } + fn serial(&self) -> u64 { + self.serial + } } impl Regulator for PointCoordinateRegulator { - fn subjects(&self) -> Vec> { vec![self.subject.clone()] } - fn measurement(&self) -> ReadSignal { self.measurement } - fn set_point(&self) -> Signal { self.set_point } + fn subjects(&self) -> Vec> { + vec![self.subject.clone()] + } + + fn measurement(&self) -> ReadSignal { + self.measurement + } + + fn set_point(&self) -> Signal { + self.set_point + } } impl ProblemPoser for PointCoordinateRegulator { @@ -576,10 +590,10 @@ impl ProblemPoser for PointCoordinateRegulator { coords[index.0] = value } } - if nset == Axis::CARDINALITY { - let [x, y, z] = coords; - problem.frozen.push( - Point::NORM_COMPONENT, col, point(x,y,z)[Point::NORM_COMPONENT]); + if n_set == Axis::CARDINALITY { + let [x, y, z] = coords_frozen; + let norm = point(x, y, z)[Point::NORM_COMPONENT]; + problem.frozen.push(Point::NORM_COMPONENT, col, norm); } } });