Struct bevy_ascii_terminal::TiledCamera
source · pub struct TiledCamera {
pub pixels_per_tile: UVec2,
pub tile_count: UVec2,
/* private fields */
}
Expand description
A camera with a virtual grid for displaying low resolution pixel art.
Contains various functions for translating points between world space and the camera’s virtual grid tiles.
Fields§
§pixels_per_tile: UVec2
Pixels per tile determines the size of your tiles/art, depending on
the camera’s WorldSpace
.
tile_count: UVec2
The number of virtual grid tiles in the camera’s viewport.
Implementations§
source§impl TiledCamera
impl TiledCamera
sourcepub fn unit_cam(
tile_count: impl Size2d,
pixels_per_tile: impl Size2d
) -> TiledCamera
pub fn unit_cam( tile_count: impl Size2d, pixels_per_tile: impl Size2d ) -> TiledCamera
Creates a camera set to WorldSpace::Units
.
sourcepub fn pixel_cam(
tile_count: impl Size2d,
pixels_per_tile: impl Size2d
) -> TiledCamera
pub fn pixel_cam( tile_count: impl Size2d, pixels_per_tile: impl Size2d ) -> TiledCamera
Creates a camera set to WorldSpace::Pixels
.
sourcepub fn target_resolution(&self) -> UVec2
pub fn target_resolution(&self) -> UVec2
Retrieve the target resolution (in pixels) of the camera.
pub fn viewport_size(&self) -> UVec2
pub fn viewport_pos(&self) -> UVec2
sourcepub fn window_resolution(&self) -> UVec2
pub fn window_resolution(&self) -> UVec2
Window resolution from the last viewport update
sourcepub fn orthographic_size(&self) -> f32
pub fn orthographic_size(&self) -> f32
The orthographic size of the camera from the last viewport update
sourcepub fn tile_center_iter(
&self,
transform: &GlobalTransform
) -> impl Iterator<Item = Vec2>
pub fn tile_center_iter( &self, transform: &GlobalTransform ) -> impl Iterator<Item = Vec2>
Returns an iterator that yields the center of the camera’s virtual grid tiles in world space.
sourcepub fn tile_pos_iter(
&self,
cam_transform: &GlobalTransform
) -> impl Iterator<Item = Vec2>
pub fn tile_pos_iter( &self, cam_transform: &GlobalTransform ) -> impl Iterator<Item = Vec2>
Returns an iterator that yields the position of the camera’s virtual grid tiles in world space.
A tile’s “position” refers to the bottom left corner of the tile.
sourcepub fn world_to_local(
&self,
cam_transform: &GlobalTransform,
world_pos: impl Point2d
) -> Vec2
pub fn world_to_local( &self, cam_transform: &GlobalTransform, world_pos: impl Point2d ) -> Vec2
Transform from world space to camera-local space.
sourcepub fn local_to_world(
&self,
cam_transform: &GlobalTransform,
local_pos: impl Point2d
) -> Vec2
pub fn local_to_world( &self, cam_transform: &GlobalTransform, local_pos: impl Point2d ) -> Vec2
Transform from camera-local space to world space.
sourcepub fn world_to_index(
&self,
cam_transform: &GlobalTransform,
world_pos: impl Point2d
) -> IVec2
pub fn world_to_index( &self, cam_transform: &GlobalTransform, world_pos: impl Point2d ) -> IVec2
Convert a world position to it’s virtual tile index.
Tile indices are relative to the camera center.
sourcepub fn world_to_tile(
&self,
cam_transform: &GlobalTransform,
world_pos: impl Point2d
) -> Vec2
pub fn world_to_tile( &self, cam_transform: &GlobalTransform, world_pos: impl Point2d ) -> Vec2
Convert a world position to it’s virtual tile position.
A tile’s “position” refers to the bottom left point of the tile.
sourcepub fn index_to_tile_pos(
&self,
cam_transform: &GlobalTransform,
pos: impl GridPoint
) -> Vec2
pub fn index_to_tile_pos( &self, cam_transform: &GlobalTransform, pos: impl GridPoint ) -> Vec2
Convert a tile index to it’s virtual tile position in world space.
Tiles indices are relative to the camera center.
A tile’s “position” refers to the bottom left point of the tile.
sourcepub fn index_to_tile_center(
&self,
cam_transform: &GlobalTransform,
index: impl GridPoint
) -> Vec2
pub fn index_to_tile_center( &self, cam_transform: &GlobalTransform, index: impl GridPoint ) -> Vec2
Return the world center of the virtual tile at the given tile index.
Tile indices are relative to the camera center.
sourcepub fn set_world_space(&mut self, world_space: WorldSpace)
pub fn set_world_space(&mut self, world_space: WorldSpace)
Change the camera’s WorldSpace
.
sourcepub fn world_space(&self) -> WorldSpace
pub fn world_space(&self) -> WorldSpace
Get the camera’s WorldSpace
.
sourcepub fn unit_size(&self) -> Option<Vec2>
pub fn unit_size(&self) -> Option<Vec2>
Get unit size or None
, depending on the camera’s WorldSpace
.
This can be used for sizing spawned sprites. If the camera’s WorldSpace
is WorldSpace::Units
then a unit sized sprite should be the size of
a tile.
Otherwise it should use the default sprite size, which is the pixel dimensions
of the sprite’s texture.
sourcepub fn zoom(&self) -> u32
pub fn zoom(&self) -> u32
How much the camera view is scaled up, based on target resolution and window size.
sourcepub fn screen_to_world(
&self,
screen_pos: Vec2,
camera: &Camera,
camera_transform: &GlobalTransform
) -> Option<Vec2>
pub fn screen_to_world( &self, screen_pos: Vec2, camera: &Camera, camera_transform: &GlobalTransform ) -> Option<Vec2>
Convert a screen position (IE: The mouse cursor position) to it’s corresponding world position.
sourcepub fn world_to_screen(
&self,
world_pos: impl Point2d,
camera: &Camera,
camera_transform: &GlobalTransform
) -> Option<Vec2>
pub fn world_to_screen( &self, world_pos: impl Point2d, camera: &Camera, camera_transform: &GlobalTransform ) -> Option<Vec2>
Converts a world position to a screen position (0..resolution)
sourcepub fn world_grid(&self) -> &WorldGrid
pub fn world_grid(&self) -> &WorldGrid
Retrieve the camera’s WorldGrid
.
Trait Implementations§
source§impl Component for TiledCamerawhere
TiledCamera: Send + Sync + 'static,
impl Component for TiledCamerawhere TiledCamera: Send + Sync + 'static,
source§impl Default for TiledCamera
impl Default for TiledCamera
source§fn default() -> TiledCamera
fn default() -> TiledCamera
Auto Trait Implementations§
impl RefUnwindSafe for TiledCamera
impl Send for TiledCamera
impl Sync for TiledCamera
impl Unpin for TiledCamera
impl UnwindSafe for TiledCamera
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist.§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere C: Component,
fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId) )
unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> Cwhere F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a, Aligned>,
fn get_components( self, func: &mut impl FnMut(StorageType, OwningPtr<'_, Aligned>) )
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere T: Default,
§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given [World]