code: function(angle, cx, cy) {
  
          // getter
          if (angle === undefined) {
              return V.matrixToRotate(this.matrix());
          }
  
          // setter
  
          // If the origin is not set explicitely, rotate around the center. Note that
          // we must use the plain bounding box (`this.el.getBBox()` instead of the one that gives us
          // the real bounding box (`bbox()`) including transformations).
          if (cx === undefined) {
              var bbox = this.viewport.getBBox();
              cx = bbox.width / 2;
              cy = bbox.height / 2;
          }
  
          var ctm = this.matrix().translate(cx,cy).rotate(angle).translate(-cx,-cy);
          this.matrix(ctm);
  
          return this;
      }
docs: Experimental - do not use in production.