/// <summary> /// Remove portions of the curve outside the specified interval. /// </summary> /// <param name="p0"></param> /// <param name="p1"></param> /// <param name="failReason"></param> /// <returns></returns> public CurveNormalized Trim(Percent p0, Percent p1, out string failReason) { failReason = ""; Curve res = null; if (p0.is0percent() && p1.is100percent()) { res = Crv; } else { var t0 = T(p0); var t1 = T(p1); res = Crv.DuplicateCurve().Trim(t0, t1); } if (res == null) { failReason = "failed to trim crv"; return(null); } return(new CurveNormalized(res)); }