src/cube.rs

changeset 12
3b05a8b45b95
parent 11
933242e0f3b8
child 13
f67949050a32
--- a/src/cube.rs	Mon Oct 21 23:07:01 2024 -0500
+++ b/src/cube.rs	Tue Oct 22 08:27:45 2024 -0500
@@ -1,19 +1,20 @@
 
-use core::f64;
-
+use serde_repr::*;
+use serde::Serialize;
 use alg_tools::loc::Loc;
 use alg_tools::norms::{Norm, L2};
 use crate::manifold::{ManifoldPoint, EmbeddedManifoldPoint};
 
-#[derive(Copy, Clone, Debug, Eq, PartialEq)]
-pub enum Face {F1, F2, F3, F4, F5, F6}
+#[derive(Copy, Clone, Debug, Eq, PartialEq, Serialize_repr, Deserialize_repr)]
+#[repr(u8)]
+pub enum Face {F1 = 1, F2 = 2, F3 = 3, F4 = 4, F5 = 5, F6 = 6}
 use Face::*;
 
 pub type Point = Loc<f64, 2>;
 
 pub type AdjacentFaces = [Face; 4];
 
-#[derive(Clone, Debug)]
+#[derive(Clone, Debug, Serialize)]
 pub enum Path {
     Direct { destination : Face },
     Indirect { destination : Face, intermediate : Face },
@@ -216,7 +217,7 @@
     }
 }
 
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, PartialEq, Serialize)]
 pub struct OnCube {
     face : Face,
     point : Point,
@@ -244,6 +245,10 @@
         }
         (best_tan, best_len)
     }
+
+    pub fn face(&self) -> Face {
+        self.face
+    }
 }
 
 

mercurial