示例#1
0
        public IReadOnlyList <IReadOnlyList <Vector2f> > GenerateOutline()
        {
            Vector2f[][] outlines   = RD.GenerateOutline(File.Version);
            Vector2f     center     = RD.TextureRect.Center;
            Vector2f     pivotShift = new Vector2f(Rect.Width * Pivot.X - Rect.Width * 0.5f, Rect.Height * Pivot.Y - Rect.Height * 0.5f);

            foreach (Vector2f[] outline in outlines)
            {
                for (int i = 0; i < outline.Length; i++)
                {
                    Vector2f point = outline[i] * PixelsToUnits;
                    outline[i] = point + pivotShift;
                }
            }
            return(outlines);
        }
示例#2
0
        public Vector2f[][] GenerateOutline(SpriteAtlas atlas, Rectf rect, Vector2f pivot)
        {
            Vector2f[][] outlines    = RD.GenerateOutline(File.Version);
            float        pivotShiftX = rect.Width * pivot.X - rect.Width * 0.5f;
            float        pivotShiftY = rect.Height * pivot.Y - rect.Height * 0.5f;
            Vector2f     pivotShift  = new Vector2f(pivotShiftX, pivotShiftY);

            foreach (Vector2f[] outline in outlines)
            {
                for (int i = 0; i < outline.Length; i++)
                {
                    Vector2f point = outline[i] * PixelsToUnits;
                    outline[i] = point + pivotShift;
                }
            }
            return(FixRotation(atlas, outlines));
        }
示例#3
0
        public IReadOnlyList <IReadOnlyList <Vector2f> > GenerateOutline(Rectf rect, Vector2f pivot)
        {
            Vector2f[][] outlines    = RD.GenerateOutline(File.Version);
            Vector2f     center      = RD.TextureRect.Center;
            float        pivotShiftX = rect.Width * pivot.X - rect.Width * 0.5f;
            float        pivotShiftY = rect.Height * pivot.Y - rect.Height * 0.5f;
            Vector2f     pivotShift  = new Vector2f(pivotShiftX, pivotShiftY);

            foreach (Vector2f[] outline in outlines)
            {
                for (int i = 0; i < outline.Length; i++)
                {
                    Vector2f point = outline[i] * PixelsToUnits;
                    outline[i] = point + pivotShift;
                }
            }
            return(FixRotation(outlines));
        }