YAHOO.util.Point | A point is a region that is special in that it represents a single point on the grid. |
YAHOO.util.Region | A region is a representation of an object on a grid. |
Region.js
Quick Links:
Class Summary |
Source Code
Class Summary [top]
Souce Code [top]
/** * @class A region is a representation of an object on a grid. It is defined * by the top, right, bottom, left extents, so is rectangular by default. If * other shapes are required, this class could be extended to support it. * * @param {int} t the top extent * @param {int} r the right extent * @param {int} b the bottom extent * @param {int} l the left extent * @constructor */ YAHOO.util.Region = function(t, r, b, l) { /** * The region's top extent * @type int */ this.top = t; /** * The region's right extent * @type int */ this.right = r; /** * The region's bottom extent * @type int */ this.bottom = b; /** * The region's left extent * @type int */ this.left = l; }; /** * Returns true if this region contains the region passed in * * @param {Region} region The region to evaluate * @return {boolean} True if the region is contained with this region, * else false */ YAHOO.util.Region.prototype.contains = function(region) { return ( region.left >= this.left && region.right <= this.right && region.top >= this.top && region.bottom <= this.bottom ); // this.logger.debug("does " + this + " contain " + region + " ... " + ret); }; /** * Returns the area of the region * * @return {int} the region's area */ YAHOO.util.Region.prototype.getArea = function() { return ( (this.bottom - this.top) * (this.right - this.left) ); }; /** * Returns the region where the passed in region overlaps with this one * * @param {Region} region The region that intersects * @return {Region} The overlap region, or null if there is no overlap */ YAHOO.util.Region.prototype.intersect = function(region) { var t = Math.max( this.top, region.top ); var r = Math.min( this.right, region.right ); var b = Math.min( this.bottom, region.bottom ); var l = Math.max( this.left, region.left ); if (b >= t && r >= l) { return new YAHOO.util.Region(t, r, b, l); } else { return null; } }; /** * Returns the region representing the smallest region that can contain both * the passed in region and this region. * * @param {Region} region The region that to create the union with * @return {Region} The union region */ YAHOO.util.Region.prototype.union = function(region) { var t = Math.min( this.top, region.top ); var r = Math.max( this.right, region.right ); var b = Math.max( this.bottom, region.bottom ); var l = Math.min( this.left, region.left ); return new YAHOO.util.Region(t, r, b, l); }; /** * toString * @return string the region properties */ YAHOO.util.Region.prototype.toString = function() { return ( "Region {" + " t: " + this.top + ", r: " + this.right + ", b: " + this.bottom + ", l: " + this.left + "}" ); } /** * Returns a region that is occupied by the DOM element * * @param {HTMLElement} el The element * @return {Region} The region that the element occupies * @static */ YAHOO.util.Region.getRegion = function(el) { var p = YAHOO.util.Dom.getXY(el); var t = p[1]; var r = p[0] + el.offsetWidth; var b = p[1] + el.offsetHeight; var l = p[0]; return new YAHOO.util.Region(t, r, b, l); }; ///////////////////////////////////////////////////////////////////////////// /** * @class * * A point is a region that is special in that it represents a single point on * the grid. * * @param {int} x The X position of the point * @param {int} y The Y position of the point * @constructor * @extends Region */ YAHOO.util.Point = function(x, y) { /** * The X position of the point * @type int */ this.x = x; /** * The Y position of the point * @type int */ this.y = y; this.top = y; this.right = x; this.bottom = y; this.left = x; }; YAHOO.util.Point.prototype = new YAHOO.util.Region();