code: function(callbacks) {
      callbacks = callbacks || { };
  
      var empty = function() { },
          onComplete = callbacks.onComplete || empty,
          onChange = callbacks.onChange || empty,
          _this = this;
  
      fabric.util.animate({
        startValue: this.get('angle'),
        endValue: this._getAngleValueForStraighten(),
        duration: this.FX_DURATION,
        onChange: function(value) {
          _this.setAngle(value);
          onChange();
        },
        onComplete: function() {
          _this.setCoords();
          onComplete();
        },
        onStart: function() {
          _this.setActive(false);
        }
      });
  
      return this;
    }
docs: @method fxStraighten
  @param {Object} callbacks
  - onComplete: invoked on completion
  - onChange: invoked on every step of animation
  
  @return {fabric.Object} thisArg
  @chainable