rectify 0.2.1 copy "rectify: ^0.2.1" to clipboard
rectify: ^0.2.1 copied to clipboard

Extension methods to make Rect pleasant and convenient to work with.

Rectify #

pub license: MIT build codecov

Dart extension methods to make the Rect class pleasant and convenient to work with.

Method Description
adjust Adjust by dx1, dy1, dx2 and dy2.
intersects Whether two rectangles intersect.
moveBottom Moves along the bottom edge.
moveBottomLeft Moves along the bottom left corner.
moveBottomRight Moves along the bottom right corner.
moveCenter Moves along the center.
moveLeft Moves along the left edge.
moveRight Moves along the right edge.
moveTop Moves along the top edge.
moveTopLeft Moves along the top left corner.
moveTopRight Moves along the top right corner.
normalize Ensures non-negative width and height.
setBottom Sets the bottom edge.
setBottomLeft Sets the bottom left corner.
setBottomRight Sets the bottom right corner.
setHeight Sets the height.
setLeft Sets the left edge.
setRight Sets the right edge.
setTop Sets the top edge.
setTopLeft Sets the top left corner.
setTopRight Sets the top right corner.
setWidth Sets the width.
normalize Exchanges width and height.
unite Bounding rectangle of two rectangles.

All above methods are extension methods and work on any object of type Rect.

Usage #

To use this package, add rectify as a dependency in your pubspec.yaml file

import 'package:rectify/rectify.dart';

void main() {
  const ltrb1234 = Rect.fromLTRB(1, 2, 3, 4);
  const ltrb2345 = Rect.fromLTRB(2, 3, 4, 5);
  const ltrb5678 = Rect.fromLTRB(5, 6, 7, 8);
  const ltwh1234 = Rect.fromLTWH(1, 2, 3, 4);

  // adjust
  print(ltrb1234.adjust(1, 2, 3, 4)); // Rect.fromLTRB(2, 4, 6, 8)

  // intersection
  print(ltrb1234.intersects(ltrb2345)); // true
  print(ltrb1234.intersects(ltrb5678)); // false

  // move edge
  print(ltrb1234.moveLeft(5)); // Rect.fromLTRB(5, 2, 7, 4)
  print(ltrb1234.moveTop(5)); // Rect.fromLTRB(1, 5, 3, 7)
  print(ltrb1234.moveRight(5)); // Rect.fromLTRB(3, 2, 5, 4)
  print(ltrb1234.moveBottom(5)); // Rect.fromLTRB(1, 3, 3, 5)

  // move corner
  print(ltrb1234.moveTopLeft(Offset(5, 6))); // Rect.fromLTRB(5, 6, 7, 8)
  print(ltrb1234.moveTopRight(Offset(5, 6))); // Rect.fromLTRB(3, 6, 5, 8)
  print(ltrb1234.moveBottomLeft(Offset(5, 6))); // Rect.fromLTRB(5, 4, 7, 6)
  print(ltrb1234.moveBottomRight(Offset(5, 6))); // Rect.fromLTRB(3, 4, 5, 6)

  // move center
  print(ltrb1234.moveCenter(Offset(5, 6))); // Rect.fromLTRB(4, 5, 6, 7)

  // normalize
  print(Rect.fromLTWH(1, 2, -3, -4).normalize()); // Rect.fromLTWH(1, 2, 3, 4)

  // set edge
  print(ltrb1234.setBottom(5)); // Rect.fromLTRB(1, 2, 3, 5)
  print(ltrb1234.setLeft(5)); // Rect.fromLTRB(5, 2, 3, 4)
  print(ltrb1234.setRight(5)); // Rect.fromLTRB(1, 2, 5, 4)
  print(ltrb1234.setTop(5)); // Rect.fromLTRB(1, 5, 3, 4)

  // set corner
  print(ltrb1234.setTopLeft(Offset(5, 6))); // Rect.fromLTRB(5, 6, 3, 4)
  print(ltrb1234.setTopRight(Offset(5, 6))); // Rect.fromLTRB(1, 6, 5, 4)
  print(ltrb1234.setBottomLeft(Offset(5, 6))); // Rect.fromLTRB(5, 2, 3, 6)
  print(ltrb1234.setBottomRight(Offset(5, 6))); // Rect.fromLTRB(1, 2, 5, 6)

  // size
  print(ltwh1234.setSize(Size(5, 6))); // Rect.fromLTWH(1, 2, 5, 6))
  print(ltwh1234.setWidth(5)); // Rect.fromLTWH(1, 2, 5, 4))
  print(ltwh1234.setHeight(5)); // Rect.fromLTWH(1, 2, 3, 5))

  // transpose
  print(ltwh1234.transpose()); //Rect.fromLTWH(1, 2, 4, 3))

  // unite
  print(ltrb1234.unite(ltrb5678)); // Rect.fromLTRB(1, 2, 7, 8)
}
2
likes
140
pub points
22%
popularity

Publisher

unverified uploader

Extension methods to make Rect pleasant and convenient to work with.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on rectify