/// <summary> /// Resets the family symbol profile's location to zero point. /// </summary> /// <param name="profile"></param> /// <returns></returns> private static CurveArrArray ResetCurveArrArray(CurveArrArray profile) { if (profile is null) { throw new ArgumentNullException(nameof(profile)); } var results = new CurveArrArray(); var location = profile.GetMinPoint(); foreach (CurveArray lines in profile) { var tmpLines = new CurveArray(); foreach (var line in lines.Cast <Line>()) { if (line.Length < 1e-2) { return(null); } var pt1 = line.GetEndPoint(0) - location; var pt2 = line.GetEndPoint(1) - location; var newLine = Line.CreateBound(pt1, pt2); tmpLines.Append(newLine); } results.Append(tmpLines); } return(results); }