Coordinate class
class Coordinate { final num x, y; const Coordinate([this.x = 0, this.y = 0]); /** * Computes the distance to another [Coordinate]. **/ num getDistance (Coordinate other) => (this - other).length; bool get isValid => isValidNumber(x) && isValidNumber(y); /** * Subtract a [Coordinate] and returns the result as new [Vector]. **/ Vector operator -(Coordinate other) => difference(this, other); Coordinate operator +(Vector other) => new Coordinate(x + other.x, y + other.y); Vector toVector() => new Vector(x, y); Size toSize() => new Size(x, y); bool operator ==(Coordinate other) { return other != null && x == other.x && y == other.y; } static Vector difference(Coordinate a, Coordinate b) { return new Vector(a.x - b.x, a.y - b.y); } String toString() => '{x:${x}, y:${y}}'; Dynamic toJson() => { 'x' : x, 'y' : y }; }
Subclasses
Constructors
const Coordinate([num x = 0, num y = 0]) #
const Coordinate([this.x = 0, this.y = 0]);
Static Methods
Vector difference(Coordinate a, Coordinate b) #
static Vector difference(Coordinate a, Coordinate b) { return new Vector(a.x - b.x, a.y - b.y); }
Properties
final bool isValid #
bool get isValid => isValidNumber(x) && isValidNumber(y);
final Type runtimeType #
A representation of the runtime type of the object.
external Type get runtimeType;
final num x #
final num x, y;
final num y #
final num x, y;
Operators
Coordinate operator +(Vector other) #
Coordinate operator +(Vector other) => new Coordinate(x + other.x, y + other.y);
Vector operator -(Coordinate other) #
Subtract a Coordinate and returns the result as new Vector.
Vector operator -(Coordinate other) => difference(this, other);
bool operator ==(Coordinate 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 ==(Coordinate other) { return other != null && x == other.x && y == other.y; }
Methods
const Coordinate([num x = 0, num y = 0]) #
const Coordinate([this.x = 0, this.y = 0]);
num getDistance(Coordinate other) #
Computes the distance to another Coordinate.
num getDistance (Coordinate other) => (this - other).length;
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();
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();
toJson() #
Dynamic toJson() => { 'x' : x, 'y' : y };
String toString() #
Returns a string representation of this object.
String toString() => '{x:${x}, y:${y}}';