Size class
class Size { final num width, height; const Size(this.width, this.height); bool operator ==(Size other) { return other != null && width == other.width && height == other.height; } /** * Returns the area of the size (width * height). */ num get area => width * height; /** * Returns the ratio of the size's width to its height. */ num get aspectRatio => width / height; /** * Returns true if this Size is the same size or smaller than the * [target] size in both dimensions. */ bool fitsInside(Size target) { return width <= target.width && height <= target.height; } /** * Returns true if the size has zero area, false if both dimensions * are non-zero numbers. */ bool isEmpty() => area == 0; /** * Returns the perimeter of the size (width + height) * 2. */ num get perimeter => (width + height) * 2; bool get isValid => isValidNumber(width) && isValidNumber(height) && width >= 0 && height >= 0; /** * Multiplies each dimensions by the provided magnitude and returns a new [Size]. **/ Size scale(num magnitude) => new Size(width * magnitude, height * magnitude); /** * Multiplies each dimensions by the provided magnitude and returns a new [Size]. **/ Size operator *(num magnitude) => this.scale(magnitude); Vector toVector() => new Vector(width, height); /** * Returns a nice string representing size. * Returns in the form (50 x 73). */ String toString() => "(${width} x ${height})"; }
Constructors
const Size(num width, num height) #
const Size(this.width, this.height);
Properties
final num area #
Returns the area of the size (width * height).
num get area => width * height;
final num aspectRatio #
Returns the ratio of the size's width to its height.
num get aspectRatio => width / height;
final num height #
final num width, height;
final bool isValid #
bool get isValid => isValidNumber(width) && isValidNumber(height) && width >= 0 && height >= 0;
final num perimeter #
Returns the perimeter of the size (width + height) * 2.
num get perimeter => (width + height) * 2;
final Type runtimeType #
A representation of the runtime type of the object.
external Type get runtimeType;
final num width #
final num width, height;
Operators
Size operator *(num magnitude) #
Multiplies each dimensions by the provided magnitude and returns a new Size.
Size operator *(num magnitude) => this.scale(magnitude);
bool operator ==(Size other) #
The equality operator.
The default behavior for all Object
s 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.
bool operator ==(Size other) { return other != null && width == other.width && height == other.height; }
Methods
bool fitsInside(Size target) #
Returns true if this Size is the same size or smaller than the target size in both dimensions.
bool fitsInside(Size target) { return width <= target.width && height <= target.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.
external int hashCode();
bool isEmpty() #
Returns true if the size has zero area, false if both dimensions
are non-zero numbers.
bool isEmpty() => area == 0;
noSuchMethod(String name, List args) #
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() #
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();
Size scale(num magnitude) #
Multiplies each dimensions by the provided magnitude and returns a new Size.
Size scale(num magnitude) => new Size(width * magnitude, height * magnitude);
const Size(num width, num height) #
const Size(this.width, this.height);
String toString() #
Returns a nice string representing size. Returns in the form (50 x 73).
String toString() => "(${width} x ${height})";