/* *This class is the javascript implementation of the Point.java class in jdk */ function Point(x, y, p) { this.x = null; this.y = null; if (x == null && y == null && p == null) { this.x = 0; this.y = 0; } else if (typeof x == 'number' && typeof y == 'number' && p == null) { this.x = x; this.y = y; } else if (x.constructor.name == 'Point' && y == null && p == null) { p = x; this.x = p.x; this.y = p.y; } } Point.prototype.getX = function () { return this.x; } Point.prototype.getY = function () { return this.y; } Point.prototype.getLocation = function () { return new Point(this.x, this.y); } Point.prototype.setLocation = function (x, y, p) { if (x.constructor.name == 'Point' && y == null && p == null) { p = x; this.setLocation(p.x, p.y); } else if (typeof x == 'number' && typeof y == 'number' && p == null) { //if both parameters are integer just move (x,y) location if (parseInt(x) == x && parseInt(y) == y) { this.move(x, y); } else { this.x = Math.floor(x + 0.5); this.y = Math.floor(y + 0.5); } } } Point.prototype.move = function (x, y) { this.x = x; this.y = y; } Point.prototype.translate = function (dx, dy) { this.x += dx; this.y += dy; } Point.prototype.equals = function (obj) { if (obj.constructor.name == "Point") { var pt = obj; return (this.x == pt.x) && (this.y == pt.y); } return this == obj; } Point.prototype.toString = function () { return new Point().constructor.name + "[x=" + this.x + ",y=" + this.y + "]"; } module.exports = Point;