struct Rect

type Rect* = struct {
	x, y, w, h: th::fu
}

A set of points representing a rectangle.

fn mk

fn mk*(x, y, w, h: th::fu): Rect {

fn mk

fn fromVf2*(p: th::Vf2, dm: th::Vf2): Rect {

Creates a rect from two Vf2s - the position and the dimensions.

fn Rect.getPos

fn (r: ^Rect) getPos*(): th::Vf2 {

fn Rect.getDims

fn (r: ^Rect) getDims*(): th::Vf2 {

fn Rect.getEnd

fn (r: ^Rect) getEnd*(): th::Vf2 {

returns where the second point of the rectangle lies.

fn Rect.transformed

fn (r: ^Rect) transformed*(t: th::Transform): th::Quad {

Transforms a rect into a quad. Order:

  1. scale
  2. rotation
  3. position

fn Rect.shrink

fn (r: ^Rect) shrink*(p: th::Vf2): Rect {

Shrink the rectangle by p pixels from all sides.

fn Rect.shift

fn (r: ^Rect) shift*(p: th::Vf2): Rect {

Shift the rectangle by p pixels.

fn Rect.scale

fn (r: ^Rect) scale*(p: th::Vf2): Rect {

Multiply the dimensions by p

fn Rect.center

fn (r: ^Rect) center*(): th::Vf2 {

Returns the position, which is the center of the rect.

fn Rect.centerWithinRect

fn (r: ^Rect) centerWithinRect*(child: Rect): Rect {

Centers child with the rect r.