FreeImage

Struct FreeImage 

Source
pub struct FreeImage<IMG> {
    pub rect: Rect<i32>,
    pub pivot: Option<Point<i32>>,
    pub texture: IMG,
}
Expand description

Represents an image that is not in any Canvas, but floats freely on the screen until it is anchored back into the canvas. Typical uses of this are imported images and selections – they can be moved around and manipulated before being integrated into the canvas (by anchoring).

Fields§

§rect: Rect<i32>§pivot: Option<Point<i32>>§texture: IMG

Implementations§

Source§

impl<IMG: Bitmap> FreeImage<IMG>

Source

pub fn new(p: Position<i32>, img: IMG) -> Self

Creates a new free image at a specified position, with predefined inner image

Source

pub fn from_canvas_area( canvas: &Canvas<IMG>, area: Rect<i32>, pivot: Option<Point<i32>>, ) -> Self

Creates a free image from the contents of the canvas at a specified area. A pivot point might be provided in case the image is being dragged/moved, in which case it would be the mouse position (relative to the image, (0, 0) being the top left corner of the image)

Source

pub fn from_pixels( size: Size<i32>, pixels: Vec<Point<i32>>, color: Color, offset: Position<i32>, ) -> Self

Create a free image from a set of pixels with a certain color. All other pixels will be set to transparent. If the pixels provided are offset by a certain amount, an offset can be passed so that they are discounted from the original pixel positions. If there is no offset, it should be (0, 0).

Source

pub fn line_preview(p0: Point<i32>, p: Point<i32>, color: Color) -> Self

Creates a free image with a line between two points in a certain color.

Source

pub fn rect_preview(p0: Point<i32>, p: Point<i32>, color: Color) -> Self

Creates a free image with a rectangle between two points in a certain color.

Source

pub fn move_by_pivot(&mut self, p: Point<i32>)

Change the position of the free image considering that the passed point is the mouse position where it was released, and that the initial mouse position is defined by the pivot.

Source

pub fn flip_horizontally(&mut self)

Flips the free image horizontally

Source

pub fn flip_vertically(&mut self)

Flips the free image vertically

Trait Implementations§

Source§

impl<IMG: Debug> Debug for FreeImage<IMG>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de, IMG> Deserialize<'de> for FreeImage<IMG>
where IMG: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<IMG> Serialize for FreeImage<IMG>
where IMG: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<IMG> Freeze for FreeImage<IMG>
where IMG: Freeze,

§

impl<IMG> RefUnwindSafe for FreeImage<IMG>
where IMG: RefUnwindSafe,

§

impl<IMG> Send for FreeImage<IMG>
where IMG: Send,

§

impl<IMG> Sync for FreeImage<IMG>
where IMG: Sync,

§

impl<IMG> Unpin for FreeImage<IMG>
where IMG: Unpin,

§

impl<IMG> UnwindSafe for FreeImage<IMG>
where IMG: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,