MeshCreator.LoadPolygonFromSprite C# (CSharp) Method

LoadPolygonFromSprite() private method

private LoadPolygonFromSprite ( ) : void
return void
    private void LoadPolygonFromSprite()
    {
        #if UNITY_EDITOR
        Rect r = spriteRenderer.sprite.rect;
        Texture2D tex = spriteRenderer.sprite.texture;
        IBitmap bmp = ArrayBitmap.CreateFromTexture(tex, new Rect(r.x, r.y, r.width, r.height));
        var polygon = BitmapHelper.CreateFromBitmap(bmp);
        polygon = SimplifyTools.DouglasPeuckerSimplify(new Vertices(polygon), simplify).ToArray();

        Rect bounds = GetBounds(polygon);

        float scalex = spriteRenderer.sprite.bounds.size.x / bounds.width;
        float scaley = spriteRenderer.sprite.bounds.size.y / bounds.height;

        polygon = polygon.Select(v => new Vector2(v.x * scalex, v.y * scaley) - (bounds.center * scalex) + (Vector2)spriteRenderer.sprite.bounds.center).ToArray();
        verts = polygon.Select(v => new Vertex(spriteRenderer.transform.TransformPoint(v))).ToList();

        segments = new List<Segment>();
        AddSegment(verts[verts.Count - 1], verts[0]);
        for(int i = 1; i < verts.Count; i++) {
            AddSegment(verts[i - 1], verts[i]);
        }
        #endif
    }