/// <summary> /// overrides <see cref="Surface.Normal(double, double)"/>. /// </summary> /// <param name="u">Specifies the parameter u in [0,1]</param> /// <param name="v">Specifies the parameter v in [0,1]</param> /// <returns>the normal vector.</returns> public override xyz Normal(double u, double v) { if (Distance < 0) { return(BasisSurface.vDerivation(u, v) & BasisSurface.uDerivation(u, v)); } return(BasisSurface.uDerivation(u, v) & BasisSurface.vDerivation(u, v)); }
/// <summary> /// overrides <see cref="Surface.vDerivation(double, double)"/> /// </summary> /// <param name="u">Specifies the parameter u in [0,1]</param> /// <param name="v">Specifies the parameter v in [0,1]</param> /// <returns>partial v derivation</returns> public override xyz vDerivation(double u, double v) { return(BasisSurface.vDerivation(u, v)); }