BungeeNum class
class BungeeNum { num _target; num _current; num _velocity; BungeeNum(num target, [num current]) { this.target = target; if(current == null) { current = target; } this.current = current; } num get target => _target; void set target(num value) { requireArgument(isValidNumber(value), 'value'); _target = value; } num get current => _current; void set current(num value) { requireArgument(isValidNumber(value), 'value'); _current = value; } bool update() { assert(isValidNumber(_target)); assert(isValidNumber(_current)); if(_velocity == null) { _velocity = 0; } else { _velocity *= 0.8; } assert(isValidNumber(_velocity)); final force = _target - _current; _velocity += (force * 0.05); _current += _velocity; final delta = (_current - _target).abs(); if(delta < 0.01 && _velocity.abs() < 0.01) { _current = _target; _velocity = null; return false; } else { return true; } } }
Constructors
new BungeeNum(num target, [num current]) #
BungeeNum(num target, [num current]) { this.target = target; if(current == null) { current = target; } this.current = current; }
Properties
num current #
num get current => _current;
void set current(num value) { requireArgument(isValidNumber(value), 'value'); _current = value; }
final Type runtimeType #
A representation of the runtime type of the object.
external Type get runtimeType;
num target #
num get target => _target;
void set target(num value) { requireArgument(isValidNumber(value), 'value'); _target = value; }
Operators
bool operator ==(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 ==(other) => identical(this, other);
Methods
new BungeeNum(num target, [num current]) #
BungeeNum(num target, [num current]) { this.target = target; if(current == null) { current = target; } this.current = current; }
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();
String toString() #
Returns a string representation of this object.
external String toString();
bool update() #
bool update() { assert(isValidNumber(_target)); assert(isValidNumber(_current)); if(_velocity == null) { _velocity = 0; } else { _velocity *= 0.8; } assert(isValidNumber(_velocity)); final force = _target - _current; _velocity += (force * 0.05); _current += _velocity; final delta = (_current - _target).abs(); if(delta < 0.01 && _velocity.abs() < 0.01) { _current = _target; _velocity = null; return false; } else { return true; } }