Expand description
Store all samples in a single array.
All samples will be converted to the type T.
This supports all the sample types, f16, f32, and u32.
The flattened vector contains all rows one after another. In each row, for each pixel, its red, green, blue, and then alpha samples are stored one after another.
Use PixelVec.compute_pixel_index(position)
to compute the flat index of a specific pixel.
Fields
resolution: Vec2<usize>The resolution of this layer.
pixels: Vec<T>The flattened vector contains all rows one after another. In each row, for each pixel, its red, green, blue, and then alpha samples are stored one after another.
Use Flattened::compute_pixel_index(image, position)
to compute the flat index of a specific pixel.
Implementations
sourceimpl<Pixel> PixelVec<Pixel>
impl<Pixel> PixelVec<Pixel>
sourcepub fn constructor<Channels>(resolution: Vec2<usize>, _: &Channels) -> Self where
Pixel: Default + Clone,
pub fn constructor<Channels>(resolution: Vec2<usize>, _: &Channels) -> Self where
Pixel: Default + Clone,
Create a new flattened pixel storage, filled with default pixels.
Accepts a Channels parameter, which is not used, so that it can be passed as a function pointer instead of calling it.
sourcepub fn get_pixel(&self, position: Vec2<usize>) -> &Pixel where
Pixel: Sync,
pub fn get_pixel(&self, position: Vec2<usize>) -> &Pixel where
Pixel: Sync,
Examine a pixel of a PixelVec<T> image.
Can usually be used as a function reference instead of calling it directly.
sourcepub fn set_pixel(&mut self, position: Vec2<usize>, pixel: Pixel)
pub fn set_pixel(&mut self, position: Vec2<usize>, pixel: Pixel)
Update a pixel of a PixelVec<T> image.
Can usually be used as a function reference instead of calling it directly.
sourcepub fn new(resolution: impl Into<Vec2<usize>>, pixels: Vec<Pixel>) -> Self
pub fn new(resolution: impl Into<Vec2<usize>>, pixels: Vec<Pixel>) -> Self
Create a new flattened pixel storage, checking the length of the provided pixels vector.
sourcepub fn compute_pixel_index(&self, position: Vec2<usize>) -> usize
pub fn compute_pixel_index(&self, position: Vec2<usize>) -> usize
Compute the flat index of a specific pixel. Returns a range of either 3 or 4 samples.
The computed index can be used with PixelVec.samples[index].
Panics for invalid sample coordinates.
Trait Implementations
sourceimpl<Px> GetPixel for PixelVec<Px> where
Px: Clone + Sync,
impl<Px> GetPixel for PixelVec<Px> where
Px: Clone + Sync,
sourceimpl<Px> ValidateResult for PixelVec<Px> where
Px: ValidateResult,
impl<Px> ValidateResult for PixelVec<Px> where
Px: ValidateResult,
sourcefn validate_result(
&self,
other: &Self,
options: ValidationOptions,
location: String
) -> ValidationResult
fn validate_result(
&self,
other: &Self,
options: ValidationOptions,
location: String
) -> ValidationResult
Compare self with the other. Exceptional behaviour: Read more
sourcefn assert_equals_result(&self, result: &Self)
fn assert_equals_result(&self, result: &Self)
Compare self with the other. Panics if not equal. Read more
impl<T: Eq> Eq for PixelVec<T>
impl<T> StructuralEq for PixelVec<T>
impl<T> StructuralPartialEq for PixelVec<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for PixelVec<T> where
T: RefUnwindSafe,
impl<T> Send for PixelVec<T> where
T: Send,
impl<T> Sync for PixelVec<T> where
T: Sync,
impl<T> Unpin for PixelVec<T> where
T: Unpin,
impl<T> UnwindSafe for PixelVec<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more