1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
use super::Offset;
pub struct Rect {
// The offset of the bottom edge of this rectangle from the y axis.
// bottom: f32
// The offset to the center of the bottom edge of this rectangle.
// bottomCenter: Offset
// The offset to the intersection of the bottom and left edges of this rectangle.
// bottomLeft: Offset
// The offset to the intersection of the bottom and right edges of this rectangle.
// bottomRight: Offset
// The offset to the point halfway between the left and right and the top and bottom edges of this rectangle.
// center: Offset
// The offset to the center of the left edge of this rectangle.
// centerLeft: Offset
// The offset to the center of the right edge of this rectangle.
// centerRight: Offset
// Whether any of the dimensions are NaN.
// hasNaN: bool
// The distance between the top and bottom edges of this rectangle.
// height: f32
// Whether this rectangle encloses a non-zero area. Negative areas are considered empty.
// isEmpty: bool
// Whether all coordinates of this rectangle are finite.
// isFinite: bool
// Whether any of the coordinates of this rectangle are equal to positive infinity.
// isInfinite: bool
// The offset of the left edge of this rectangle from the x axis.
// left: f32
// The greater of the magnitudes of the width and the height of this rectangle.
// longestSide: f32
// The offset of the right edge of this rectangle from the x axis.
// right: f32
// The lesser of the magnitudes of the width and the height of this rectangle.
// shortestSide: f32
// The distance between the upper-left corner and the lower-right corner of this rectangle.
// size: Size
// The offset of the top edge of this rectangle from the y axis.
// top: f32
// The offset to the center of the top edge of this rectangle.
// topCenter: Offset
// The offset to the intersection of the top and left edges of this rectangle.
// topLeft: Offset
// The offset to the intersection of the top and right edges of this rectangle.
// topRight: Offset
// The distance between the left and right edges of this rectangle.
// width: f32
}
impl Rect {
// constructors {
// Constructs a rectangle from its center point, width, and height.
pub fn from_center(center: Offset, width: f32, height: f32) -> Self {
todo!()
}
// Construct a rectangle that bounds the given circle.
pub fn from_circle(center: Offset, radius: f32) -> Self {
todo!()
}
// Construct a rectangle from its left, top, right, and bottom edges.
pub fn from_ltrb(left: f32, top: f32, right: f32, bottom: f32) -> Self {
todo!()
}
// Construct a rectangle from its left and top edges, its width, and its height.
pub fn from_ltwh(left: f32, top: f32, width: f32, height: f32) -> Self {
todo!()
}
// Construct the smallest rectangle that encloses the given offsets, treating them as vectors from the origin.
pub fn from_points(a: Offset, b: Offset) -> Self {
todo!()
}
// }
// Whether the point specified by the given offset (which is assumed to be relative to the origin)
// lies between the left and right and the top and bottom edges of this rectangle.
// contains(Offset offset) -> bool
// Returns a new rectangle with edges moved inwards by the given delta.
// deflate(double delta) -> Rect
// Returns a new rectangle which is the bounding box containing this rectangle and the given rectangle.
// expandToInclude(Rect other) -> Rect
// Returns a new rectangle with edges moved outwards by the given delta.
// inflate(double delta) -> Rect
// Returns a new rectangle that is the intersection of the given rectangle and this rectangle.
// The two rectangles must overlap for this to be meaningful.
// If the two rectangles do not overlap, then the resulting Rect will have a negative width or height.
// intersect(Rect other) -> Rect
// Whether other has a nonzero area of overlap with this rectangle.
// overlaps(Rect other) -> bool
// Returns a new rectangle translated by the given offset.
// shift(Offset offset) -> Rect
// Returns a new rectangle with translateX added to the x components and translateY added to the y components.
// translate(double translateX, double translateY) -> Rect
}