/***************************************************/ /**** Public Methods ****/ /***************************************************/ public static Plane PlaneAtParameter(this NurbsSurface surface, double u, double v, double tolerance = Tolerance.Distance) { var vectors = TangentAtParameter(surface, u, v, tolerance); return(Create.Plane( PointAtParameter(surface, u, v), vectors.Item1.CrossProduct(vectors.Item2))); }
/***************************************************/ public static Cartesian Transform(this Cartesian coordinateSystem, TransformMatrix transform) { Point origin = coordinateSystem.Origin.Transform(transform); Vector x = coordinateSystem.X.Transform(transform); Plane plane = Create.Plane(origin, x); Vector y = coordinateSystem.Y.Transform(transform).Project(plane); return(Create.CartesianCoordinateSystem(origin, x, y)); }