function Vector2D(x, y) {
		if (x instanceof Vector2D) {
			this.x = x.x;
			this.y = x.y;
		} else if (arguments.length === 2) {
			this.x = x;
			this.y = y;
		} else if (arguments.length > 0)
			throw "Unexpected number of arguments for Vector2D()";
	} // class Vector2D
@
#Crafty.math.Vector2D
@category 2D
@class This is a general purpose 2D vector class

Vector2D uses the following form:
<x, y>

@public
@sign public {Vector2D} Vector2D();
@sign public {Vector2D} Vector2D(Vector2D);
@sign public {Vector2D} Vector2D(Number, Number);
@param {Vector2D|Number=0} x
@param {Number=0} y