public static Point3D Evaluate( this IParametricSurface surface, Parametrisation parametrisation ) { return(surface.Evaluate( parametrisation.U, parametrisation.V )); }
public static double DistanceNormMax( Parametrisation left, Parametrisation right ) { // todo: check boundaries return(Math.Max( Math.Abs(left.UnboundedU - right.UnboundedU), Math.Abs(left.UnboundedV - right.UnboundedV) )); }
public static Vector3D Derivative( this IParametricSurface surface, Parametrisation parametrisation, DerivativeParameter parameter ) { return(surface.Derivative( parametrisation.U, parametrisation.V, parameter )); }
public static Vector3D Normal( this IParametricSurface surface, Parametrisation parametrisation) { var du = surface.Derivative( parametrisation, DerivativeParameter.U ); var dv = surface.Derivative( parametrisation, DerivativeParameter.V ); return(Vector3D.CrossProduct(du, dv)); }