Немного не в тему, но прошу не судить строго. Непонятка - вектор это направленный отрезок, должен иметь начало и конец - 2 точки. А в определении структуры public Vector3d(double x, double y, double z) то есть одна точка, а где подразумевается вторая?