docs: function(x, y) {
              var oldX = this.x, oldY = this.y;
              OpenLayers.Geometry.Point.prototype.move.call(this, x, y);
              if(control._moving) {
                  return;
              }
              var evt = control.dragControl.handlers.drag.evt;
              var preserveAspectRatio = !control._setfeature &&
                  control.preserveAspectRatio;
              var reshape = !preserveAspectRatio && !(evt && evt.shiftKey);
              var oldGeom = new OpenLayers.Geometry.Point(oldX, oldY);
              var centerGeometry = control.center;
              this.rotate(-control.rotation, centerGeometry);
              oldGeom.rotate(-control.rotation, centerGeometry);
              var dx1 = this.x - centerGeometry.x;
              var dy1 = this.y - centerGeometry.y;
              var dx0 = dx1 - (this.x - oldGeom.x);
              var dy0 = dy1 - (this.y - oldGeom.y);
              if (control.irregular && !control._setfeature) {
                 dx1 -= (this.x - oldGeom.x) / 2;
                 dy1 -= (this.y - oldGeom.y) / 2;
              }
              this.x = oldX;
              this.y = oldY;
              var scale, ratio = 1;
              if (reshape) {
                  scale = Math.abs(dy0) < 0.00001 ? 1 : dy1 / dy0;
                  ratio = (Math.abs(dx0) < 0.00001 ? 1 : (dx1 / dx0)) / scale;
              } else {
                  var l0 = Math.sqrt((dx0 * dx0) + (dy0 * dy0));
                  var l1 = Math.sqrt((dx1 * dx1) + (dy1 * dy1));
                  scale = l1 / l0;
              }
  
              // rotate the box to 0 before resizing - saves us some
              // calculations and is inexpensive because we don't drawFeature.
              control._moving = true;
              control.box.geometry.rotate(-control.rotation, centerGeometry);
              delete control._moving;
  
              control.box.geometry.resize(scale, centerGeometry, ratio);
              control.box.geometry.rotate(control.rotation, centerGeometry);
              control.transformFeature({scale: scale, ratio: ratio});
              if (control.irregular && !control._setfeature) {
                 var newCenter = centerGeometry.clone();
                 newCenter.x += Math.abs(oldX - centerGeometry.x) < 0.00001 ? 0 : (this.x - oldX);
                 newCenter.y += Math.abs(oldY - centerGeometry.y) < 0.00001 ? 0 : (this.y - oldY);
                 control.box.geometry.move(this.x - oldX, this.y - oldY);
                 control.transformFeature({center: newCenter});
              }
          }