/// <summary>
 /// Returns all the trim loops of the face as list of a list of curves
 /// </summary>
 /// <param name="face"></param>
 /// <returns></returns>
 public static List <List <ICurve> > GetTrimLoops(this IFace2 face)
 {
     return(face
            .GetLoops()
            .CastArray <ILoop2>()
            .OrderBy(l => l.IsOuter() ? 0 : 1)
            .Select(l => l.GetEdges().CastArray <IEdge>().Select(e => (ICurve)e.GetCurve()))
            .Select(curves => curves.Select(c => (ICurve)c.Copy()).ToList())
            .ToList());
 }
 /// <summary>
 /// 获取面上所有环
 /// </summary>
 /// <param name="face"></param>
 /// <returns></returns>
 public static IEnumerable <ILoop2> GetLoopsEx(this IFace2 face)
 {
     return((face.GetLoops() as object[]).Cast <ILoop2>());
 }