/// <summary>
        /// 如果外环是个圆,获取和外环同圆心的内环圆
        /// </summary>
        /// <param name="face"></param>
        /// <returns></returns>
        public static bool TryGetInnerLoop(this IFace2 face, out ILoop2 innerLoop)
        {
            var outloop = face.GetOuterLoop();

            innerLoop = outloop;
            if (outloop.TryGetOneCircleEdge(out IEdge edge))
            {
                var circlePoint = edge.GetCirlceParams().Item1;
                innerLoop = face.GetLoopsWithoutOuterLoop().Where(l =>
                                                                  l.TryGetOneCircleEdge(out IEdge Inneredge) ? (IsSameVector3(Inneredge.GetCirlceParams().Item1, circlePoint) ? true : false): false
                                                                  ).FirstOrDefault();
                return(innerLoop != null ? true : false);
            }
            return(false);
        }
        /// <summary>
        /// 如果此环只包含一个Edge,并且这个Edge是个圆弧,返回True,负责返回false
        /// </summary>
        /// <param name="loop">ILoop2 Interface</param>
        /// <param name="edge"></param>
        /// <returns></returns>
        public static bool TryGetOneCircleEdge(this ILoop2 loop, out IEdge edge)
        {
            var edges = loop.GetEdgesEx();

            edge = edges.FirstOrDefault();

            if (edges.Count() == 1 && edges.First().IsCirlce())
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
 public ILoop2Object(ILoop2 ILoop2instance)
 {
     ILoop2Instance = ILoop2instance;
 }
 /// <summary>
 /// 获取环中所有的直线边
 /// </summary>
 /// <param name="loop"></param>
 /// <returns></returns>
 public static IEnumerable <IEdge> GetLineEdge(this ILoop2 loop)
 {
     return(loop.GetEdgesEx().Where(edge => edge.IsLine()));
 }
 /// <summary>
 /// 获取所有的边
 /// </summary>
 /// <param name="loop">ILoop2 Interface</param>
 /// <returns></returns>
 public static IEnumerable <IEdge> GetEdgesEx(this ILoop2 loop)
 {
     return((loop.GetEdges() as object[]).Cast <IEdge>());
 }