text: //Because Browserify encapsulates every module, use strict won't apply to the global scope and break everything
  'use strict';
  
  /**
   * Boundary constructor
   *
   * @class Boundary
   * @classdesc A rectangle that represents the whole map or the viewport of the camera
   *
   * @param {Number} left - The left position of this boundary, in pixels
   * @param {Number} top - The top position of this boundary, in pixels
   * @param {Number} width - The width of this boundary, in pixels
   * @param {Number} height - The height of this boundary, in pixels
   */
  var Boundary = function(left, top, width, height) {
  
  	/**
  	 * @property {Number} left - The left position of this boundary, in pixels
  	 */
  	this.left = left || 0;
  
  	/**
  	 * @property {Number} top - The top position of this boundary, in pixels
  	 */
  	this.top = top || 0;
  
  	/**
  	 * @property {Number} width - The width of this boundary, in pixels
  	 */
  	this.width = width || 0;
  
  	/**
  	 * @property {Number} height - The height of this boundary, in pixels
  	 */
  	this.height = height || 0;
  
  	/**
  	 * @property {Number} right - The right position of this boundary, in pixels
  	 */
  	this.right = (this.left + this.width);
  
  	/**
  	 * @property {Number} bottom - The bottom position of this boundary, in pixels
  	 */
  	this.bottom = (this.top + this.height);
  
  };
  
  Boundary.prototype = {
  
  	/**
  	 * Function that allows the user to set new values for the boundary
  	 * @protected
  	 *
  	 * @param {Number} left - The left position of this boundary, in pixels
  	 * @param {Number} top - The top position of this boundary, in pixels
  	 * @param {Number} width - Optional: The width of this boundary, in pixels
  	 * @param {Number} height - Optional: The height of this boundary, in pixels
  	 */
  	set: function(left, top, width, height) {
  
  		this.left = left;
  		this.top = top;
  		this.width = width || this.width;
  		this.height = height || this.height;
  		this.right = (this.left + this.width);
  		this.bottom = (this.top + this.height);
  
  	},
  
  	/**
  	 * Function to check if one boundary is still inside another boundary
  	 * @protected
  	 *
  	 * @param {Boundary} boundary - The boundary to check against
  	 *
  	 * @return {Boolean} Returns true if the boundary is within this boundary, returns false if it isn't
  	 */
  	isWithin: function(boundary) {
  
  		return(
  			boundary.left <= this.left &&
  				boundary.right >= this.right &&
  				boundary.top <= this.top &&
  				boundary.bottom >= this.bottom
  			);
  
  	},
  
  	/**
  	 * Function to check if one boundary overlaps another boundary
  	 * @protected
  	 *
  	 * @param {Boundary} boundary - The boundary to check against
  	 *
  	 * @return {Number} Returns true if the boundary is overlapping this boundary, returns false if it isn't
  	 */
  	isOverlapping: function(boundary) {
  
  		return(
  			this.left < boundary.right &&
  				boundary.left < this.right &&
  				this.top < boundary.bottom &&
  				boundary.top < this.bottom
  			);
  
  	}
  
  };
  
  //Export the Browserify module
  module.exports = Boundary;
  