File size: 1,678 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
/*
*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;
|