d3_geo_rs/projection/builder_identity/
reflect_set.rs

1use geo::CoordFloat;
2use num_traits::FloatConst;
3
4use crate::projection::{Reflect, ReflectSet};
5
6use super::Builder;
7
8impl<PCNU, T> ReflectSet for Builder<PCNU, T>
9where
10    T: CoordFloat + FloatConst,
11{
12    type T = T;
13
14    /// Set the projection builder to invert the x-coordinate.
15    fn reflect_x_set(&mut self, reflect: Reflect) -> &mut Self {
16        self.sx = match reflect {
17            Reflect::Flipped => T::from(-1.0_f64).unwrap(),
18            Reflect::Unflipped => T::one(),
19        };
20        self.reset()
21    }
22
23    /// Set the projection builder to invert the y-coordinate.
24    #[inline]
25    fn reflect_y_set(&mut self, reflect: Reflect) -> &mut Self {
26        self.sy = match reflect {
27            Reflect::Flipped => T::from(-1.0_f64).unwrap(),
28            Reflect::Unflipped => T::one(),
29        };
30        self.reset()
31    }
32}