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: usizeThe number of columns in the grid.
rows: usizeThe 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 duplicate 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 Freeze for DeformGrid
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