From 25fa108e9b2cfba27918c98fc1d89042fdcf85eb Mon Sep 17 00:00:00 2001
From: Aaron Fenyes <aaron.fenyes@fareycircles.ooo>
Date: Sat, 28 Sep 2024 19:37:43 -0700
Subject: [PATCH] AddRemove: add low-curvature test assembly from
 `inversive-display`

---
 app-proto/full-interface/src/add_remove.rs | 79 +++++++++++++++++++++-
 1 file changed, 78 insertions(+), 1 deletion(-)

diff --git a/app-proto/full-interface/src/add_remove.rs b/app-proto/full-interface/src/add_remove.rs
index aaab8d0..40b0e98 100644
--- a/app-proto/full-interface/src/add_remove.rs
+++ b/app-proto/full-interface/src/add_remove.rs
@@ -71,6 +71,83 @@ fn load_gen_assemb(assembly: &Assembly) {
     );
 }
 
+/* DEBUG */
+fn load_low_curv_assemb(assembly: &Assembly) {
+    let a = 0.75_f64.sqrt();
+    let _ = assembly.try_insert_element(
+        Element {
+            id: "central".to_string(),
+            label: "Central".to_string(),
+            color: [0.75_f32, 0.75_f32, 0.75_f32],
+            rep: engine::sphere(0.0, 0.0, 0.0, 1.0),
+            constraints: BTreeSet::default()
+        }
+    );
+    let _ = assembly.try_insert_element(
+        Element {
+            id: "assemb_plane".to_string(),
+            label: "Assembly plane".to_string(),
+            color: [0.75_f32, 0.75_f32, 0.75_f32],
+            rep: engine::sphere_with_offset(0.0, 0.0, 1.0, 0.0, 0.0),
+            constraints: BTreeSet::default()
+        }
+    );
+    let _ = assembly.try_insert_element(
+        Element {
+            id: "side1".to_string(),
+            label: "Side 1".to_string(),
+            color: [1.00_f32, 0.00_f32, 0.25_f32],
+            rep: engine::sphere_with_offset(1.0, 0.0, 0.0, 1.0, 0.0),
+            constraints: BTreeSet::default()
+        }
+    );
+    let _ = assembly.try_insert_element(
+        Element {
+            id: "side2".to_string(),
+            label: "Side 2".to_string(),
+            color: [0.25_f32, 1.00_f32, 0.00_f32],
+            rep: engine::sphere_with_offset(-0.5, a, 0.0, 1.0, 0.0),
+            constraints: BTreeSet::default()
+        }
+    );
+    let _ = assembly.try_insert_element(
+        Element {
+            id: "side3".to_string(),
+            label: "Side 3".to_string(),
+            color: [0.00_f32, 0.25_f32, 1.00_f32],
+            rep: engine::sphere_with_offset(-0.5, -a, 0.0, 1.0, 0.0),
+            constraints: BTreeSet::default()
+        }
+    );
+    let _ = assembly.try_insert_element(
+        Element {
+            id: "corner1".to_string(),
+            label: "Corner 1".to_string(),
+            color: [0.75_f32, 0.75_f32, 0.75_f32],
+            rep: engine::sphere(-4.0/3.0, 0.0, 0.0, 1.0/3.0),
+            constraints: BTreeSet::default()
+        }
+    );
+    let _ = assembly.try_insert_element(
+        Element {
+            id: "corner2".to_string(),
+            label: "Corner 2".to_string(),
+            color: [0.75_f32, 0.75_f32, 0.75_f32],
+            rep: engine::sphere(2.0/3.0, -4.0/3.0 * a, 0.0, 1.0/3.0),
+            constraints: BTreeSet::default()
+        }
+    );
+    let _ = assembly.try_insert_element(
+        Element {
+            id: String::from("corner3"),
+            label: String::from("Corner 3"),
+            color: [0.75_f32, 0.75_f32, 0.75_f32],
+            rep: engine::sphere(2.0/3.0, 4.0/3.0 * a, 0.0, 1.0/3.0),
+            constraints: BTreeSet::default()
+        }
+    );
+}
+
 #[component]
 pub fn AddRemove() -> View {
     /* DEBUG */
@@ -94,7 +171,7 @@ pub fn AddRemove() -> View {
             // load assembly
             match name.as_str() {
                 "general" => load_gen_assemb(assembly),
-                "low-curv" => /*load_low_curv_assemb(state)*/(),
+                "low-curv" => load_low_curv_assemb(assembly),
                 _ => ()
             };
         });