src/sets.rs

branch
dev
changeset 133
2b13f8a0c8ba
parent 124
6aa955ad8122
child 137
d5dfcb6abcf5
child 155
45d03cf92c23
equal deleted inserted replaced
132:89371dc4d637 133:2b13f8a0c8ba
34 impl<U, const N: usize> Set<Loc<N, U>> for Cube<N, U> 34 impl<U, const N: usize> Set<Loc<N, U>> for Cube<N, U>
35 where 35 where
36 U: Num + PartialOrd + Sized, 36 U: Num + PartialOrd + Sized,
37 { 37 {
38 fn contains<I: Instance<Loc<N, U>>>(&self, item: I) -> bool { 38 fn contains<I: Instance<Loc<N, U>>>(&self, item: I) -> bool {
39 self.0 39 item.eval_ref_decompose(|r| self.0.iter().zip(r.iter()).all(|(s, x)| s.contains(x)))
40 .iter()
41 .zip(item.ref_instance().iter())
42 .all(|(s, x)| s.contains(x))
43 } 40 }
44 } 41 }
45 42
46 impl<U: Space> Set<U> for RangeFull { 43 impl<U: Space> Set<U> for RangeFull {
47 fn contains<I: Instance<U>>(&self, _item: I) -> bool { 44 fn contains<I: Instance<U>>(&self, _item: I) -> bool {
149 where 146 where
150 A: Euclidean<F>, 147 A: Euclidean<F>,
151 F: Float, 148 F: Float,
152 { 149 {
153 fn contains<I: Instance<A>>(&self, item: I) -> bool { 150 fn contains<I: Instance<A>>(&self, item: I) -> bool {
154 let r = item.ref_instance(); 151 item.eval_ref_decompose(|r| self.0.iter().all(|halfspace| halfspace.contains(r)))
155 self.0.iter().all(|halfspace| halfspace.contains(r))
156 } 152 }
157 } 153 }

mercurial