docs: function(state, x, y, hotspot, min, max)
  	{
  		hotspot = (hotspot != null) ? hotspot : 1;
  		min = (min != null) ? min : 0;
  		max = (max != null) ? max : 0;
  		
  		if (hotspot > 0)
  		{
  			var cx = state.getCenterX();
  			var cy = state.getCenterY();
  			var w = state.width;
  			var h = state.height;
  			
  			var start = mxUtils.getValue(state.style, mxConstants.STYLE_STARTSIZE) * state.view.scale;
  
  			if (start > 0)
  			{
  				if (mxUtils.getValue(state.style, mxConstants.STYLE_HORIZONTAL, true))
  				{
  					cy = state.y + start / 2;
  					h = start;
  				}
  				else
  				{
  					cx = state.x + start / 2;
  					w = start;
  				}
  			}
  
  			w = Math.max(min, w * hotspot);
  			h = Math.max(min, h * hotspot);
  			
  			if (max > 0)
  			{
  				w = Math.min(w, max);
  				h = Math.min(h, max);
  			}
  			
  			var rect = new mxRectangle(cx - w / 2, cy - h / 2, w, h);
  			var alpha = mxUtils.toRadians(mxUtils.getValue(state.style, mxConstants.STYLE_ROTATION) || 0);
  			
  			if (alpha != 0)
  			{
  				var cos = Math.cos(-alpha);
  				var sin = Math.sin(-alpha);
  				var cx = new mxPoint(state.getCenterX(), state.getCenterY());
  				var pt = mxUtils.getRotatedPoint(new mxPoint(x, y), cos, sin, cx);
  				x = pt.x;
  				y = pt.y;
  			}
  			
  			return mxUtils.contains(rect, x, y);			
  		}
  		
  		return true;
  	}