public Plane(Vec origin, Vec x, Vec y) { _origin = origin; X = x; Y = y; Z = Vec.Cross(X, Y); }
public Plane(Vec origin, Vec z) { _origin = origin; //try constructing x and y Z = z; X = Vec.Dot(Z, new Vec(1, 0, 0)) == 1 ? new Vec(0, 1, 0): new Vec(1, 0, 0); Y = Vec.Cross(Z, X); }