private void AddSprite(Rect frame, int alignment, Vector2 pivot, SpriteFrameModule.AutoSlicingMethod slicingMethod, ref int index)
 {
     if (slicingMethod != SpriteFrameModule.AutoSlicingMethod.DeleteAll)
     {
         SpriteRect existingOverlappingSprite = this.GetExistingOverlappingSprite(frame);
         if (existingOverlappingSprite != null)
         {
             if (slicingMethod == SpriteFrameModule.AutoSlicingMethod.Smart)
             {
                 existingOverlappingSprite.rect      = frame;
                 existingOverlappingSprite.alignment = (SpriteAlignment)alignment;
                 existingOverlappingSprite.pivot     = pivot;
             }
         }
         else
         {
             this.AddSpriteWithUniqueName(frame, alignment, pivot, 254, 0.25f, index++);
         }
     }
     else
     {
         this.AddSprite(frame, alignment, pivot, 254, 0.25f, this.GetSpriteNamePrefix() + "_" + index++);
     }
 }
        public void DoAutomaticSlicing(int minimumSpriteSize, int alignment, Vector2 pivot, SpriteFrameModule.AutoSlicingMethod slicingMethod)
        {
            base.undoSystem.RegisterCompleteObjectUndo(this.m_RectsCache, "Automatic Slicing");
            if (slicingMethod == SpriteFrameModule.AutoSlicingMethod.DeleteAll)
            {
                this.m_RectsCache.spriteRects.Clear();
            }
            UnityEngine.Texture2D readableTexture2D = this.m_TextureDataProvider.GetReadableTexture2D();
            List <Rect>           list = new List <Rect>(InternalSpriteUtility.GenerateAutomaticSpriteRectangles(readableTexture2D, minimumSpriteSize, 0));

            list = this.SortRects(list);
            int num = 0;

            foreach (Rect current in list)
            {
                this.AddSprite(current, alignment, pivot, slicingMethod, ref num);
            }
            base.selected = null;
            base.spriteEditor.SetDataModified();
            base.Repaint();
        }