docs: function (v) {
  		var theta = -1 * (v % 360), //angle always between 0 and 359
  			rad = theta * DEG_TO_RAD,
  			ct = Math.cos(rad), //cache the sin and cosine of theta
  			st = Math.sin(rad),
  			o = {
  			x: this._origin.x + this._x,
  			y: this._origin.y + this._y
  		};
  
  		//if the angle is 0 and is currently 0, skip
  		if (!theta) {
  			this._mbr = null;
  			if (!this._rotation % 360) return;
  		}
  
  		var x0 = o.x + (this._x - o.x) * ct + (this._y - o.y) * st,
  			y0 = o.y - (this._x - o.x) * st + (this._y - o.y) * ct,
  			x1 = o.x + (this._x + this._w - o.x) * ct + (this._y - o.y) * st,
  			y1 = o.y - (this._x + this._w - o.x) * st + (this._y - o.y) * ct,
  			x2 = o.x + (this._x + this._w - o.x) * ct + (this._y + this._h - o.y) * st,
  			y2 = o.y - (this._x + this._w - o.x) * st + (this._y + this._h - o.y) * ct,
  			x3 = o.x + (this._x - o.x) * ct + (this._y + this._h - o.y) * st,
  			y3 = o.y - (this._x - o.x) * st + (this._y + this._h - o.y) * ct,
  			minx = Math.floor(Math.min(x0, x1, x2, x3)),
  			miny = Math.floor(Math.min(y0, y1, y2, y3)),
  			maxx = Math.ceil(Math.max(x0, x1, x2, x3)),
  			maxy = Math.ceil(Math.max(y0, y1, y2, y3));
  
  		this._mbr = { _x: minx, _y: miny, _w: maxx - minx, _h: maxy - miny };
  
  		//trigger rotation event
  		var difference = this._rotation - v,
  			drad = difference * DEG_TO_RAD;
  
  		this.trigger("Rotate", {
  			cos: Math.cos(drad),
  			sin: Math.sin(drad),
  			deg: difference,
  			rad: drad,
  			o: { x: o.x, y: o.y },
  			matrix: { M11: ct, M12: st, M21: -st, M22: ct }
  		});
  	}