[−][src]Enum ytesrev::drawable::Position
Where to draw a specific object.
Variants
TopLeftCorner(Point)
Place the top left corner at a specific position, ignoring size. Only used in the most primitive situations
Center(Point)
Center the object at this position
Rect(Rect)
Draw the object in a specific rectangle
Methods
impl Position
[src]
pub fn into_rect_with_size(self, width: u32, height: u32) -> Rect
[src]
Convert a Position
into a Rect with the specified size. The size is not gauranteed to be
(width, height) such as when the Position
is a Position::Rect
with a smaller size
For Position::Rect
the center is preserved, but the size is changed.
use ytesrev::{Point, Rect}; use ytesrev::drawable::Position; let tlc = Position::TopLeftCorner(Point::new(10, 20)); assert_eq!(tlc.into_rect_with_size(5, 8), Rect::new(10, 20, 5, 8)); let center = Position::Center(Point::new(20, 30)); assert_eq!(center.into_rect_with_size(4, 10), Rect::new(18, 25, 4, 10)); let rect = Position::Rect(Rect::new(10, 40, 20, 20)); assert_eq!(rect.into_rect_with_size(6, 4), Rect::new(17, 48, 6, 4)); let rect_too_short = Position::Rect(Rect::new(10, 20, 30, 8)); assert_eq!(rect_too_short.into_rect_with_size(20, 69), Rect::new(15, 20, 20, 8));
pub fn into_rect_with_size_unbounded(self, width: u32, height: u32) -> Rect
[src]
Convert a Position into a Rect, like Position::into_rect_with_size
, but this doesn't
check if the Position::Rect
is too small.
use ytesrev::{Point, Rect}; use ytesrev::drawable::Position; let tlc = Position::TopLeftCorner(Point::new(20, 50)); assert_eq!(tlc.into_rect_with_size(2, 7), Rect::new(20, 50, 2, 7)); let center = Position::Center(Point::new(50, 10)); assert_eq!(center.into_rect_with_size(2, 8), Rect::new(49, 6, 2, 8)); let rect = Position::Rect(Rect::new(10, 40, 20, 20)); assert_eq!(rect.into_rect_with_size(6, 4), Rect::new(17, 48, 6, 4));
Trait Implementations
impl PartialEq<Position> for Position
[src]
impl Copy for Position
[src]
impl Clone for Position
[src]
fn clone(&self) -> Position
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for Position
[src]
Auto Trait Implementations
impl Send for Position
impl Unpin for Position
impl Sync for Position
impl UnwindSafe for Position
impl RefUnwindSafe for Position
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,