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;
	}
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;
	}
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 ; }
Function: intersects

Returns true if the two rectangles intersect.

Parameters:

a - <mxRectangle> to be checked for intersection.
b - <mxRectangle> to be checked for intersection.
Function : intersects
Calculates the bounds of the region of the region