Trait substrate::geometry::align::AlignRectMut
source · pub trait AlignRectMut: TranslateMut {
// Provided method
fn align_mut(
&mut self,
mode: AlignMode,
srect: Rect,
orect: Rect,
offset: i64
) { ... }
}
Expand description
A geometric shape that can be aligned using the relationship between two Rect
s.
§Examples
let mut rect1 = Rect::from_sides(0, 0, 100, 200);
let rect2 = Rect::from_sides(500, 600, 700, 700);
rect1.align_mut(AlignMode::Left, rect1, rect2, 0);
assert_eq!(rect1.left(), rect2.left());
assert_eq!(rect1, Rect::from_sides(500, 0, 600, 200));
// Alternate rectangle to align `rect1` with.
// Conceptually, this represents that `rect1` has
// 5 units of hangover space on all sides that should
// not contribute to alignment.
let rect1_alt = rect1.shrink_all(5).unwrap();
rect1.align_mut(AlignMode::Left, rect1_alt, rect2, 0);
assert_eq!(rect1, Rect::from_sides(495, 0, 595, 200));
Provided Methods§
sourcefn align_mut(&mut self, mode: AlignMode, srect: Rect, orect: Rect, offset: i64)
fn align_mut(&mut self, mode: AlignMode, srect: Rect, orect: Rect, offset: i64)
Align self
based on the relationship between srect
and orect
.
offset
represents an offset from the base alignment in the positive direction
along the alignment axis.
For center alignments, if the centers are a non-integer number of units apart, the translation amount is rounded down to the nearest integer. This behavior is subject to change and should not be relied upon.