re_types/components/
scale3d_ext.rs

1use crate::datatypes::Vec3D;
2
3use super::Scale3D;
4
5impl Scale3D {
6    /// Scale the same amount along all axis.
7    #[inline]
8    pub fn uniform(value: f32) -> Self {
9        Self(Vec3D([value, value, value]))
10    }
11
12    /// Scale the same amount along all axis.
13    ///
14    /// Deprecated method to mimic previous enum variant.
15    #[allow(non_snake_case)]
16    #[deprecated(since = "0.18.0", note = "Use `Scale3D::uniform` instead.")]
17    pub fn Uniform(value: f32) -> Self {
18        Self::uniform(value)
19    }
20
21    /// Scale individually along each axis.
22    ///
23    /// Deprecated method to mimic previous enum variant.
24    #[allow(non_snake_case)]
25    #[deprecated(since = "0.18.0", note = "Use `Scale3D::from` instead.")]
26    pub fn ThreeD(value: impl Into<Vec3D>) -> Self {
27        Self::from(value.into())
28    }
29}
30
31impl From<f32> for Scale3D {
32    #[inline]
33    fn from(value: f32) -> Self {
34        Self(crate::datatypes::Vec3D([value, value, value]))
35    }
36}
37
38#[cfg(feature = "glam")]
39impl From<Scale3D> for glam::Affine3A {
40    #[inline]
41    fn from(v: Scale3D) -> Self {
42        Self {
43            matrix3: glam::Mat3A::from_diagonal(v.0.into()),
44            translation: glam::Vec3A::ZERO,
45        }
46    }
47}
48
49impl Default for Scale3D {
50    #[inline]
51    fn default() -> Self {
52        Self(crate::datatypes::Vec3D([1.0, 1.0, 1.0]))
53    }
54}