public static Vector3D Transform3DVector(Transform3D transform, Vector3D vector) { Point3D input = new Point3D(vector.X, vector.Y, vector.Z); Point3D output; return transform != null && transform.TryTransform(input, out output) ? new Vector3D(output.X, output.Y, output.Z) : vector; }