Dart DocumentationbotBungeeNum

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 #

inherited from Object

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) #

inherited from Object

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.

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() #

inherited from Object

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) #

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() #

inherited from Object

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;
  }
}