More trip planner testing with colors
[busui.git] / labs / openlayers / lib / OpenLayers / BaseTypes / Pixel.js
blob:a/labs/openlayers/lib/OpenLayers/BaseTypes/Pixel.js -> blob:b/labs/openlayers/lib/OpenLayers/BaseTypes/Pixel.js
  /* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for
  * full list of contributors). Published under the Clear BSD license.
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
   
  /**
  * @requires OpenLayers/Console.js
  */
   
  /**
  * Class: OpenLayers.Pixel
  * This class represents a screen coordinate, in x and y coordinates
  */
  OpenLayers.Pixel = OpenLayers.Class({
   
  /**
  * APIProperty: x
  * {Number} The x coordinate
  */
  x: 0.0,
   
  /**
  * APIProperty: y
  * {Number} The y coordinate
  */
  y: 0.0,
   
  /**
  * Constructor: OpenLayers.Pixel
  * Create a new OpenLayers.Pixel instance
  *
  * Parameters:
  * x - {Number} The x coordinate
  * y - {Number} The y coordinate
  *
  * Returns:
  * An instance of OpenLayers.Pixel
  */
  initialize: function(x, y) {
  this.x = parseFloat(x);
  this.y = parseFloat(y);
  },
   
  /**
  * Method: toString
  * Cast this object into a string
  *
  * Returns:
  * {String} The string representation of Pixel. ex: "x=200.4,y=242.2"
  */
  toString:function() {
  return ("x=" + this.x + ",y=" + this.y);
  },
   
  /**
  * APIMethod: clone
  * Return a clone of this pixel object
  *
  * Returns:
  * {<OpenLayers.Pixel>} A clone pixel
  */
  clone:function() {
  return new OpenLayers.Pixel(this.x, this.y);
  },
   
  /**
  * APIMethod: equals
  * Determine whether one pixel is equivalent to another
  *
  * Parameters:
  * px - {<OpenLayers.Pixel>}
  *
  * Returns:
  * {Boolean} The point passed in as parameter is equal to this. Note that
  * if px passed in is null, returns false.
  */
  equals:function(px) {
  var equals = false;
  if (px != null) {
  equals = ((this.x == px.x && this.y == px.y) ||
  (isNaN(this.x) && isNaN(this.y) && isNaN(px.x) && isNaN(px.y)));
  }
  return equals;
  },
   
  /**
  * APIMethod: add
  *
  * Parameters:
  * x - {Integer}
  * y - {Integer}
  *
  * Returns:
  * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
  * values passed in.
  */
  add:function(x, y) {
  if ( (x == null) || (y == null) ) {
  var msg = OpenLayers.i18n("pixelAddError");
  OpenLayers.Console.error(msg);
  return null;
  }
  return new OpenLayers.Pixel(this.x + x, this.y + y);
  },
   
  /**
  * APIMethod: offset
  *
  * Parameters
  * px - {<OpenLayers.Pixel>}
  *
  * Returns:
  * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
  * x&y values of the pixel passed in.
  */
  offset:function(px) {
  var newPx = this.clone();
  if (px) {
  newPx = this.add(px.x, px.y);
  }
  return newPx;
  },
   
  CLASS_NAME: "OpenLayers.Pixel"
  });