/// <summary> /// Add a surface loop (a closed shell) formed by `surfaceTags'. If `tag' is /// positive, set the tag explicitly; otherwise a new tag is selected /// automatically. Return the tag of the surface loop. Setting `sewing' allows /// to build a shell made of surfaces that share geometrically identical (but /// topologically different) curves. /// </summary> public int AddSurfaceLoop(IEnumerable <int> surfaceTags, int tag = -1, bool sewing = false) { var api = GMshNativeMethods.gmshModelOccAddSurfaceLoop(surfaceTags.ToArray(), surfaceTags.Count().ToUint(), tag, sewing.Toint(), ref ierr); if (ierr != 0) { throw new GMshException(ierr); } return(api); }