src/fe_model/p2_local_model.rs

branch
dev
changeset 63
f7b87d84864d
parent 5
59dc4c5883f4
child 86
d5b0e496b72f
--- a/src/fe_model/p2_local_model.rs	Sat Dec 21 23:32:20 2024 -0500
+++ b/src/fe_model/p2_local_model.rs	Sun Dec 22 14:54:46 2024 -0500
@@ -6,7 +6,8 @@
 use crate::loc::Loc;
 use crate::sets::{Set,NPolygon,SpannedHalfspace};
 use crate::linsolve::*;
-use crate::euclidean::Dot;
+use crate::euclidean::Euclidean;
+use crate::instance::Instance;
 use super::base::{LocalModel,RealLocalModel};
 use crate::sets::Cube;
 use numeric_literals::replace_float_literals;
@@ -30,7 +31,8 @@
 
 impl<'a, F : Float> Set<Loc<F,1>> for RealInterval<F> {
     #[inline]
-    fn contains(&self, &Loc([x]) : &Loc<F,1>) -> bool {
+    fn contains<I : Instance<Loc<F, 1>>>(&self, z : I) -> bool {
+        let &Loc([x]) = z.ref_instance();
         let &[Loc([x0]), Loc([x1])] = &self.0;
         (x0 < x && x < x1) || (x1 < x && x < x0)
     }
@@ -38,11 +40,11 @@
 
 impl<'a, F : Float> Set<Loc<F,2>> for PlanarSimplex<F> {
     #[inline]
-    fn contains(&self, x : &Loc<F,2>) -> bool {
+    fn contains<I : Instance<Loc<F, 2>>>(&self, z : I) -> bool {
         let &[x0, x1, x2] = &self.0;
         NPolygon([[x0, x1].spanned_halfspace(),
                   [x1, x2].spanned_halfspace(),
-                  [x2, x0].spanned_halfspace()]).contains(x)
+                  [x2, x0].spanned_halfspace()]).contains(z)
     }
 }
 

mercurial