Struct deform_grid::DeformGrid
source · pub struct DeformGrid {
pub cols: usize,
pub rows: usize,
pub rect: [Scalar; 4],
pub vertices: Vec<Vec2d>,
pub indices: Vec<usize>,
pub texture_coords: Vec<[f32; 2]>,
pub ps: Vec<[Scalar; 2]>,
pub qs: Vec<[Scalar; 2]>,
pub wis: Vec<Scalar>,
}
Expand description
Represents a deformed grid.
Fields§
§cols: usize
The number of columns in the grid.
rows: usize
The number of rows in the grid.
rect: [Scalar; 4]
The grid undeformed, which is a plain rectangle.
vertices: Vec<Vec2d>
The vertices, deformed.
indices: Vec<usize>
The triangle indices.
texture_coords: Vec<[f32; 2]>
The texture coordinates.
ps: Vec<[Scalar; 2]>
Initial position of control points.
qs: Vec<[Scalar; 2]>
The current position of control points.
wis: Vec<Scalar>
A weight computation buffer, one for each control point.
Implementations§
source§impl DeformGrid
impl DeformGrid
sourcepub fn set_current(&mut self, i: usize, pos: Vec2d)
pub fn set_current(&mut self, i: usize, pos: Vec2d)
Sets current control position.
sourcepub fn set_original(&mut self, i: usize, pos: Vec2d)
pub fn set_original(&mut self, i: usize, pos: Vec2d)
Sets original control position.
sourcepub fn reset_control_points(&mut self)
pub fn reset_control_points(&mut self)
Removes all control points.
sourcepub fn reset_vertices_and_texture_coords(&mut self)
pub fn reset_vertices_and_texture_coords(&mut self)
Sets vertices and texture coords back to default.
sourcepub fn hit(&self, pos: Vec2d) -> Option<Vec2d>
pub fn hit(&self, pos: Vec2d) -> Option<Vec2d>
Finds original coordinate. If the deformed grid is overlapping itself, multiple hits might occur. Returns the first hit it finds.
sourcepub fn draw_image<G>(
&self,
texture: &<G as Graphics>::Texture,
draw_state: &DrawState,
transform: Matrix2d,
g: &mut G
)where
G: Graphics,
pub fn draw_image<G>( &self, texture: &<G as Graphics>::Texture, draw_state: &DrawState, transform: Matrix2d, g: &mut G )where G: Graphics,
Draws deformed image using default triangulation.
sourcepub fn add_control_point(&mut self, pos: Vec2d)
pub fn add_control_point(&mut self, pos: Vec2d)
Adds a control point, in original coordinates.
sourcepub fn draw_vertical_lines<G>(
&self,
line: &Line,
draw_state: &DrawState,
transform: Matrix2d,
g: &mut G
)where
G: Graphics,
pub fn draw_vertical_lines<G>( &self, line: &Line, draw_state: &DrawState, transform: Matrix2d, g: &mut G )where G: Graphics,
Draw vertical grid lines.
Trait Implementations§
source§impl Clone for DeformGrid
impl Clone for DeformGrid
source§fn clone(&self) -> DeformGrid
fn clone(&self) -> DeformGrid
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl RefUnwindSafe for DeformGrid
impl Send for DeformGrid
impl Sync for DeformGrid
impl Unpin for DeformGrid
impl UnwindSafe for DeformGrid
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more