Crate bevy_retrograde_epaint::emath[]

Expand description

Opinionated 2D math library for building GUIs.

Includes vectors, positions, rectangles etc.

Conventions (unless otherwise specified):

  • All angles are in radians
  • X+ is right and Y+ is down.
  • (0,0) is left top.
  • Dimension order is always x y

Modules

One- and two-dimensional alignment (Align::Center, Align2::LEFT_TOP etc).

Find “simple” numbers is some range. Used by sliders.

Macros

An assert that is only active when egui is compiled with the egui_assert feature or with the debug_egui_assert feature in debug builds.

Structs

Two-dimension alignment, e.g. Align2::LEFT_TOP.

A position on screen.

A rectangular region of space.

Linearly transforms positions from one Rect to another.

Represents a rotation in the 2D plane. A rotation of 𝞃/4 = 90° rotates the X axis to the Y axis. Normally a Rot2 is normalized (unit-length). If not, it will also scale vectors.

A vector has a direction and length. A Vec2 is often used to represent a size.

Enums

left/center/right or top/center/bottom alignment for e.g. anchors and layouts.

Traits

Extends f32, Vec2 etc with at_least and at_most as aliases for max and min.

Implemented for all builtin numeric types

Helper trait to implement lerp and remap.

Helper trait to implement lerp and remap.

Functions

Return true when arguments are the same within some rounding error.

clampDeprecated

Returns range.start() if x <= range.start(), returns range.end() if x >= range.end() and returns x elsewhen.

Linear interpolation.

Wrap angle to [-PI, PI] range.

pos2(x,y) == Pos2::new(x, y)

Linearly remap a value from one range to another, so that when x == from.start() returns to.start() and when x == from.end() returns to.end().

Like remap, but also clamps the value so that the returned value is always in the to range.

Round a value to the given number of decimal places.

vec2(x,y) == Vec2::new(x, y)