Vector2D functions on 3D vectors

It would be quite useful to have the ability to use all Vector2D functions on 3D vectors.

So Vector2D.Distance(Vector.New(1,0,1), Vector.New(0,0,0)) would ignore the z values and return 1.

It would also be great if we could get a Vector2D.GetAngle(vecA[,vecB]) that returns the angle between two directional vectors. Or something like Vector2D.Clamp(vector, leftVector, rightVector), that would return the vector if it’s between the leftVector and rightVector (also supporting angles bigger than 180 degrees between left and right vector) and otherwise would return the vector that’s closer to the vector (leftVector or rightVector). It would return the vectors like they are (so 2D or 3D).