bevy/crates/bevy_ui/src
Jerome Humbert 8b7b44d839 Move sprite::Rect into bevy_math (#5686)
# Objective

Promote the `Rect` utility of `sprite::Rect`, which defines a rectangle
by its minimum and maximum corners, to the `bevy_math` crate to make it
available as a general math type to all crates without the need to
depend on the `bevy_sprite` crate.

Fixes #5575

## Solution

Move `sprite::Rect` into `bevy_math` and fix all uses.

Implement `Reflect` for `Rect` directly into the `bevy_reflect` crate by
having `bevy_reflect` depend on `bevy_math`. This looks like a new
dependency, but the `bevy_reflect` was "cheating" for other math types
by directly depending on `glam` to reflect other math types, thereby
giving the illusion that there was no dependency on `bevy_math`. In
practice conceptually Bevy's math types are reflected into the
`bevy_reflect` crate to avoid a dependency of that crate to a "lower
level" utility crate like `bevy_math` (which in turn would make
`bevy_reflect` be a dependency of most other crates, and increase the
risk of circular dependencies). So this change simply formalizes that
dependency in `Cargo.toml`.

The `Rect` struct is also augmented in this change with a collection of
utility methods to improve its usability. A few uses cases are updated
to use those new methods, resulting is more clear and concise syntax.

---

## Changelog

### Changed

- Moved the `sprite::Rect` type into `bevy_math`.

### Added

- Added several utility methods to the `math::Rect` type.

## Migration Guide

The `bevy::sprite::Rect` type moved to the math utility crate as
`bevy::math::Rect`. You should change your imports from `use
bevy::sprite::Rect` to `use bevy::math::Rect`.
2022-09-02 12:35:23 +00:00
..
flex Add UI scaling (#5814) 2022-08-29 23:35:53 +00:00
render Move sprite::Rect into bevy_math (#5686) 2022-09-02 12:35:23 +00:00
widget Add UI scaling (#5814) 2022-08-29 23:35:53 +00:00
entity.rs Improve ergonomics and reduce boilerplate around creating text elements. (#5343) 2022-07-20 14:14:29 +00:00
focus.rs bevy_reflect: Update enum derives (#5473) 2022-08-02 22:40:29 +00:00
geometry.rs Add AUTO and UNDEFINED const constructors for Size (#5761) 2022-08-22 23:08:08 +00:00
lib.rs Add UI scaling (#5814) 2022-08-29 23:35:53 +00:00
ui_node.rs Move sprite::Rect into bevy_math (#5686) 2022-09-02 12:35:23 +00:00
update.rs Move sprite::Rect into bevy_math (#5686) 2022-09-02 12:35:23 +00:00