addAndAss method

MathTime addAndAss(
  1. dynamic r
)

Implementation

MathTime addAndAss( dynamic r ){
	if( r is MathTime ){
		if( _minus != r._minus ){
			// this -= -r
			subAndAss( r.minus() );
		} else {
			_update();
			MathTime rr = dup( r );
			rr._update();
			_hour  += rr._hour;
			_min   += rr._min;
			_sec   += rr._sec;
			_frame += rr._frame;
			reduce();
		}
	} else {
		double rr = ClipMath.toDouble(r);
		if( _minus != (rr < 0.0) ){
			// this -= -rr
			subAndAss( -rr );
		} else {
			_update();
			MathTime rrr = floatToTime( rr );
			_hour  += rrr._hour;
			_min   += rrr._min;
			_sec   += rrr._sec;
			_frame += rrr._frame;
			reduce();
		}
	}
	return this;
}