The question is, how is it possible to create an InValid Plane from a point and two Vectors?

rgr code (probably) uses “Transforms” (Plane to Plane) and the functions below to create Planes.

```
public static Plane PlaneFromNormal(Point3d origin, Vector3d normal)
{
Plane plane = new Plane(origin, normal);
return plane;
}
public static Plane PlaneFromNormal(Point3d origin, Vector3d normal, Vector3d xAxis)
{
xAxis = new Vector3d(xAxis);
xAxis.Unitize();
Vector3d yAxis = Vector3d.CrossProduct(normal, xAxis);
Plane plane = new Plane(origin, xAxis, yAxis);
return plane;
}
/// <summary>
/// Construct a plane from a point, and two vectors in the plane.
/// </summary>
/// <param name="origin">A 3D point identifying the origin of the plane.</param>
/// <param name="xAxis">A non-zero 3D vector in the plane that determines the X axis direction.</param>
/// <param name="yAxis"> A non-zero 3D vector not parallel to x_axis that is usedto determine the Y axis direction. Note, y_axis does not have to be perpendicular to x_axis.</param>
/// <returns>The plane if successful</returns>
public static Plane PlaneFromFrame(Point3d origin, Vector3d xAxis, Vector3d yAxis)
{
return new Rhino.Geometry.Plane(origin, xAxis, yAxis);
}
```