use bevy::prelude::*;
use crate::transform2d::Transform2d;
#[derive(Bundle, Clone, Copy, Debug, Default, Reflect, FromReflect)]
pub struct Transform2dBundle {
pub transform: Transform2d,
pub transform_3d: Transform,
pub global_transform: GlobalTransform,
}
impl Transform2dBundle {
pub const IDENTITY: Self = Transform2dBundle {
transform: Transform2d::IDENTITY,
transform_3d: Transform::IDENTITY,
global_transform: GlobalTransform::IDENTITY,
};
pub const fn from_transform(transform: Transform2d) -> Self {
Transform2dBundle {
transform,
..Transform2dBundle::IDENTITY
}
}
}
impl From<Transform2d> for Transform2dBundle {
#[inline]
fn from(transform: Transform2d) -> Self {
Transform2dBundle::from_transform(transform)
}
}
#[derive(Bundle, Debug, Default)]
#[cfg(feature = "bevy_render")]
pub struct Spatial2dBundle {
pub visibility: Visibility,
pub computed: ComputedVisibility,
pub transform: Transform2d,
pub transform_3d: Transform,
pub global_transform: GlobalTransform,
}
#[cfg(feature = "bevy_render")]
impl Spatial2dBundle {
#[inline]
pub const fn from_transform(transform: Transform2d) -> Self {
Spatial2dBundle {
transform,
..Self::VISIBLE_IDENTITY
}
}
pub const VISIBLE_IDENTITY: Self = Spatial2dBundle {
visibility: Visibility::VISIBLE,
computed: ComputedVisibility::INVISIBLE,
transform: Transform2d::IDENTITY,
transform_3d: Transform::IDENTITY,
global_transform: GlobalTransform::IDENTITY,
};
pub const INVISIBLE_IDENTITY: Self = Spatial2dBundle {
visibility: Visibility::INVISIBLE,
..Self::VISIBLE_IDENTITY
};
}
#[cfg(feature = "bevy_render")]
impl From<Transform2d> for Spatial2dBundle {
#[inline]
fn from(transform: Transform2d) -> Self {
Spatial2dBundle::from_transform(transform)
}
}