use bevy_ecs::prelude::Bundle;
use bevy_transform::prelude::{GlobalTransform, Transform};
use crate::view::{ComputedVisibility, Visibility};
#[derive(Bundle, Debug, Default)]
pub struct SpatialBundle {
pub visibility: Visibility,
pub computed: ComputedVisibility,
pub transform: Transform,
pub global_transform: GlobalTransform,
}
impl SpatialBundle {
#[inline]
pub const fn from_transform(transform: Transform) -> Self {
SpatialBundle {
transform,
..Self::visible_identity()
}
}
#[inline]
pub const fn visible_identity() -> Self {
SpatialBundle {
transform: Transform::identity(),
global_transform: GlobalTransform::identity(),
visibility: Visibility::visible(),
computed: ComputedVisibility::not_visible(),
}
}
}
impl From<Transform> for SpatialBundle {
#[inline]
fn from(transform: Transform) -> Self {
Self::from_transform(transform)
}
}