anchor.diff:      return new AffineTransform(1, 0, 0, 1, x, y);
     }
   
  -  num get scaleX => _m00;
  +  num get scaleX => _scX;
   
  -  num get scaleY => _m11;
  +  num get scaleY => _scY;
   
  -  num get translateX => _m02;
  +  num get translateX => _tX;
   
  -  num get translateY => _m12;
  +  num get translateY => _tY;
   
     Vector get translateVector => new Vector(translateX, translateY);
   
  -  num get shearX => _m01;
  +  num get shearX => _shX;
   
  -  num get shearY => _m10;
  +  num get shearY => _shY;
   
  -  num get determinant => _m00 * _m11 - _m01 * _m10;
  +  num get determinant => _scX * _scY - _shX * _shY;
   
     bool get isIdentity {
  -    return _m00 == 1 && _m10 == 0 &&
  -        _m01 == 0 && _m11 == 1 &&
  -        _m02 == 0 && _m12 == 0;
  +    return _scX == 1 && _shY == 0 &&
  +        _shX == 0 && _scY == 1 &&
  +        _tX == 0 && _tY == 0;
     }
   
     AffineTransform scale(num sx, num sy) {
  -    _m00 *= sx;
  -    _m10 *= sx;
  -    _m01 *= sy;
  -    _m11 *= sy;
  +    _scX *= sx;
  +    _shY *= sx;
  +    _shX *= sy;
  +    _scY *= sy;
       return this;
     }
   
     AffineTransform concatenate(tx) {
  -    var m0 = this._m00;
  -    var m1 = this._m01;
  -    this._m00 = tx._m00 * m0 + tx._m10 * m1;
  -    this._m01 = tx._m01 * m0 + tx._m11 * m1;
  -    this._m02 += tx._m02 * m0 + tx._m12 * m1;
  +    var m0 = this._scX;
  +    var m1 = this._shX;
  +    this._scX = tx._scX * m0 + tx._shY * m1;
  +    this._shX = tx._shX * m0 + tx._scY * m1;
  +    this._tX += tx._tX * m0 + tx._tY * m1;
   
  -    m0 = this._m10;
  -    m1 = this._m11;
  -    this._m10 = tx._m00 * m0 + tx._m10 * m1;
  -    this._m11 = tx._m01 * m0 + tx._m11 * m1;
  -    this._m12 += tx._m02 * m0 + tx._m12 * m1;
  +    m0 = this._shY;
  +    m1 = this._scY;
  +    this._shY = tx._scX * m0 + tx._shY * m1;
  +    this._scY = tx._shX * m0 + tx._scY * m1;
  +    this._tY += tx._tX * m0 + tx._tY * m1;
       return this;
     }
   
  
positive.code:   }
  
    AffineTransform translate(num dx, num dy) {
      _m02 += dx * _m00 + dy * _m01;
      _m12 += dx * _m10 + dy * _m11;
      return this;
    }
  
  
negative.code:   }
  
    AffineTransform clone(){
      return new AffineTransform(_scX, _shY, _shX, _scY, _tX, _tY);
    }
  
    bool operator ==(AffineTransform other) {
      return other != null &&
          _scX == other._scX && _shX == other._shX && _tX == other._tX &&
          _shY == other._shY && _scY == other._scY && _tY == other._tY;
    }
  
    String toString() {
  