Make regulator naming more consistent

Although the inversive distance regulator mostly acts as a general
Lorentz product regulator, calling it `InversiveDistanceRegulator`
explains how we intend to use it and demonstrates our naming convention.
This commit is contained in:
Aaron Fenyes 2025-04-17 14:40:28 -07:00
parent 7f21e7e999
commit 620a6be918
3 changed files with 11 additions and 11 deletions

View file

@ -4,7 +4,7 @@ use web_sys::{console, wasm_bindgen::JsValue};
use crate::{ use crate::{
engine, engine,
AppState, AppState,
assembly::{Assembly, Element, ProductRegulator} assembly::{Assembly, Element, InversiveDistanceRegulator}
}; };
/* DEBUG */ /* DEBUG */
@ -190,7 +190,7 @@ pub fn AddRemove() -> View {
.unwrap() .unwrap()
); );
state.assembly.insert_regulator( state.assembly.insert_regulator(
ProductRegulator::new(subjects, &state.assembly) InversiveDistanceRegulator::new(subjects, &state.assembly)
); );
state.selection.update(|sel| sel.clear()); state.selection.update(|sel| sel.clear());
} }

View file

@ -151,14 +151,14 @@ pub trait Regulator: ProblemPoser + OutlineItem {
fn activate(&self, _assembly: &Assembly) {} fn activate(&self, _assembly: &Assembly) {}
} }
pub struct ProductRegulator { pub struct InversiveDistanceRegulator {
pub subjects: [ElementKey; 2], pub subjects: [ElementKey; 2],
pub measurement: ReadSignal<f64>, pub measurement: ReadSignal<f64>,
pub set_point: Signal<SpecifiedValue> pub set_point: Signal<SpecifiedValue>
} }
impl ProductRegulator { impl InversiveDistanceRegulator {
pub fn new(subjects: [ElementKey; 2], assembly: &Assembly) -> ProductRegulator { pub fn new(subjects: [ElementKey; 2], assembly: &Assembly) -> InversiveDistanceRegulator {
let measurement = assembly.elements.map( let measurement = assembly.elements.map(
move |elts| { move |elts| {
let representations = subjects.map(|subj| elts[subj].representation); let representations = subjects.map(|subj| elts[subj].representation);
@ -172,7 +172,7 @@ impl ProductRegulator {
let set_point = create_signal(SpecifiedValue::from_empty_spec()); let set_point = create_signal(SpecifiedValue::from_empty_spec());
ProductRegulator { InversiveDistanceRegulator {
subjects: subjects, subjects: subjects,
measurement: measurement, measurement: measurement,
set_point: set_point set_point: set_point
@ -180,7 +180,7 @@ impl ProductRegulator {
} }
} }
impl Regulator for ProductRegulator { impl Regulator for InversiveDistanceRegulator {
fn subjects(&self) -> Vec<ElementKey> { fn subjects(&self) -> Vec<ElementKey> {
self.subjects.into() self.subjects.into()
} }
@ -194,7 +194,7 @@ impl Regulator for ProductRegulator {
} }
} }
impl ProblemPoser for ProductRegulator { impl ProblemPoser for InversiveDistanceRegulator {
fn pose(&self, problem: &mut ConstraintProblem, elts: &Slab<Element>) { fn pose(&self, problem: &mut ConstraintProblem, elts: &Slab<Element>) {
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 {
@ -633,7 +633,7 @@ mod tests {
) )
}); });
elts[subjects[0]].column_index = Some(0); elts[subjects[0]].column_index = Some(0);
ProductRegulator { InversiveDistanceRegulator {
subjects: subjects, subjects: subjects,
measurement: create_memo(|| 0.0), measurement: create_memo(|| 0.0),
set_point: create_signal(SpecifiedValue::try_from("0.0".to_string()).unwrap()) set_point: create_signal(SpecifiedValue::try_from("0.0".to_string()).unwrap())

View file

@ -13,7 +13,7 @@ use crate::{
assembly::{ assembly::{
ElementKey, ElementKey,
HalfCurvatureRegulator, HalfCurvatureRegulator,
ProductRegulator, InversiveDistanceRegulator,
Regulator, Regulator,
RegulatorKey RegulatorKey
}, },
@ -94,7 +94,7 @@ pub trait OutlineItem {
fn outline_item(self: Rc<Self>, element_key: ElementKey) -> View; fn outline_item(self: Rc<Self>, element_key: ElementKey) -> View;
} }
impl OutlineItem for ProductRegulator { impl OutlineItem for InversiveDistanceRegulator {
fn outline_item(self: Rc<Self>, element_key: ElementKey) -> View { fn outline_item(self: Rc<Self>, element_key: ElementKey) -> View {
let state = use_context::<AppState>(); let state = use_context::<AppState>();
let other_subject = if self.subjects[0] == element_key { let other_subject = if self.subjects[0] == element_key {