murrelet_draw/
livecodetypes.rs

1// place to put newtypes for livecode
2
3pub mod anglepi {
4    use lerpable::Lerpable;
5    use murrelet_common::{Angle, AnglePi, IsAngle};
6    use murrelet_livecode_derive::Livecode;
7
8    #[derive(Clone, Copy, Debug, Livecode, Lerpable, Default)]
9    pub struct LivecodeAnglePi(f32);
10    impl LivecodeAnglePi {
11        pub const ZERO: Self = LivecodeAnglePi(0.0);
12
13        fn _to_angle_pi(&self) -> AnglePi {
14            AnglePi::new(self.0)
15        }
16
17        pub fn new<A: IsAngle>(f: A) -> Self {
18            Self(f.angle_pi())
19        }
20
21        pub fn from_angle_pi(angle_pi: f32) -> Self {
22            Self(angle_pi)
23        }
24    }
25
26    impl From<LivecodeAnglePi> for Angle {
27        fn from(value: LivecodeAnglePi) -> Self {
28            value._to_angle_pi().as_angle()
29        }
30    }
31}