public RegionOperator(DMesh3 mesh, int[] regionTris, Action <DSubmesh3> submeshConfigF = null)
        {
            BaseMesh = mesh;
            Region   = new DSubmesh3(mesh);
            if (submeshConfigF != null)
            {
                submeshConfigF(Region);
            }
            Region.Compute(regionTris);
            Region.ComputeBoundaryInfo(regionTris);

            cur_base_tris = (int[])regionTris.Clone();
        }
        public RegionOperator(DMesh3 mesh, IEnumerable <int> regionTris, Action <DSubmesh3> submeshConfigF = null)
        {
            BaseMesh = mesh;
            Region   = new DSubmesh3(mesh);
            if (submeshConfigF != null)
            {
                submeshConfigF(Region);
            }
            Region.Compute(regionTris);
            int count = regionTris.Count();

            Region.ComputeBoundaryInfo(regionTris, count);

            cur_base_tris = regionTris.ToArray();
        }