Dart DocumentationbotBox

Box class

class Box implements Hashable{
  final num left, top, width, height;

  const Box(this.left, this.top, this.width, this.height);

  factory Box.fromCoordSize(Coordinate topLeft, Size size) {
    return new Box(topLeft.x, topLeft.y, size.width, size.height);
  }

  Coordinate get topLeft => new Coordinate(left, top);

  Size get size => new Size(width, height);

  bool get isValid => topLeft.isValid && size.isValid;

  num get right => left + width;

  num get bottom => top + height;

  bool contains(Coordinate point){
    return point.x >= left &&
        point.x <= left + width &&
        point.y >= top &&
        point.y <= top + height;
  }

  // TODO: test!!
  Coordinate constrain(Coordinate value) {
    requireArgumentNotNull(value, 'value');
    requireArgument(value.isValid, 'value');
    assert(isValid);

    final x = math.min(right, math.max(left, value.x));
    final y = math.min(bottom, math.max(top, value.y));

    return new Coordinate(x, y);
  }

  List<Coordinate> getCorners() {
    return [
      new Coordinate(left, top),
      new Coordinate(left + width, top),
      new Coordinate(left + width, top + height),
      new Coordinate(left, top + height)
    ];
  }

  bool operator ==(Box other) {
    return other != null && other.left == left && other.top == top &&
        other.width == width && other.height == height;
  }

  String toString() => "Location: $topLeft, Size: $size";

  int hashCode() => Util.getHashCode([left, top, width, height]);
}

Implements

Hashable

Constructors

const Box(num left, num top, num width, num height) #

const Box(this.left, this.top, this.width, this.height);

factory Box.fromCoordSize(Coordinate topLeft, Size size) #

factory Box.fromCoordSize(Coordinate topLeft, Size size) {
  return new Box(topLeft.x, topLeft.y, size.width, size.height);
}

Properties

final num bottom #

num get bottom => top + height;

final num height #

final num left, top, width, height;

final bool isValid #

bool get isValid => topLeft.isValid && size.isValid;

final num left #

final num left, top, width, height;
num get right => left + width;

final Type runtimeType #

inherited from Object

A representation of the runtime type of the object.

external Type get runtimeType;

final Size size #

Size get size => new Size(width, height);

final num top #

final num left, top, width, height;

final Coordinate topLeft #

Coordinate get topLeft => new Coordinate(left, top);

final num width #

final num left, top, width, height;

Operators

bool operator ==(Box other) #

The equality operator.

The default behavior for all Objects is to return true if and only if this and other are the same object.

If a subclass overrides the equality operator it should override the hashCode method as well to maintain consistency.

docs inherited from Object
bool operator ==(Box other) {
  return other != null && other.left == left && other.top == top &&
      other.width == width && other.height == height;
}

Methods

const Box(num left, num top, num width, num height) #

const Box(this.left, this.top, this.width, this.height);

factory Box.fromCoordSize(Coordinate topLeft, Size size) #

factory Box.fromCoordSize(Coordinate topLeft, Size size) {
  return new Box(topLeft.x, topLeft.y, size.width, size.height);
}

Coordinate constrain(Coordinate value) #

Coordinate constrain(Coordinate value) {
  requireArgumentNotNull(value, 'value');
  requireArgument(value.isValid, 'value');
  assert(isValid);

  final x = math.min(right, math.max(left, value.x));
  final y = math.min(bottom, math.max(top, value.y));

  return new Coordinate(x, y);
}

bool contains(Coordinate point) #

bool contains(Coordinate point){
  return point.x >= left &&
      point.x <= left + width &&
      point.y >= top &&
      point.y <= top + height;
}

List<Coordinate> getCorners() #

List<Coordinate> getCorners() {
  return [
    new Coordinate(left, top),
    new Coordinate(left + width, top),
    new Coordinate(left + width, top + height),
    new Coordinate(left, top + height)
  ];
}

int hashCode() #

Get a hash code for this object.

All objects have hash codes. Hash codes are guaranteed to be the same for objects that are equal when compared using the equality operator ==. Other than that there are no guarantees about the hash codes. They will not be consistent between runs and there are no distribution guarantees.

If a subclass overrides hashCode it should override the equality operator as well to maintain consistency.

docs inherited from Object
int hashCode() => Util.getHashCode([left, top, width, height]);

noSuchMethod(String name, List args) #

inherited from Object

noSuchMethod is invoked when users invoke a non-existant method on an object. The name of the method and the arguments of the invocation are passed to noSuchMethod. If noSuchMethod returns a value, that value becomes the result of the original invocation.

The default behavior of noSuchMethod is to throw a noSuchMethodError.

external Dynamic noSuchMethod(String name, List args);

const Object() #

inherited from Object

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

const Object();

String toString() #

Returns a string representation of this object.

docs inherited from Object
String toString() => "Location: $topLeft, Size: $size";