use bevy::prelude::*;
use crate::transform2d::Transform2d;
#[derive(Bundle, Clone, Copy, Debug, Default, Reflect)]
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 inherited_visibility: InheritedVisibility,
pub view_visibility: ViewVisibility,
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::INHERITED_IDENTITY
}
}
pub const INHERITED_IDENTITY: Self = Spatial2dBundle {
visibility: Visibility::Inherited,
inherited_visibility: InheritedVisibility::HIDDEN,
view_visibility: ViewVisibility::HIDDEN,
transform: Transform2d::IDENTITY,
transform_3d: Transform::IDENTITY,
global_transform: GlobalTransform::IDENTITY,
};
pub const HIDDEN_IDENTITY: Self = Spatial2dBundle {
visibility: Visibility::Inherited,
..Self::INHERITED_IDENTITY
};
}
#[cfg(feature = "bevy_render")]
impl From<Transform2d> for Spatial2dBundle {
#[inline]
fn from(transform: Transform2d) -> Self {
Spatial2dBundle::from_transform(transform)
}
}