public void OnDeserialize()
 {
     GetEdgeCoordinates();
     for (int i = 0; i < SourceFigures.Size(); i++)
     {
         Primitives.Add(SourceFigures.Item(i).Copy());
     }
     GetRelativeCoords();
 }
        private void GetEdgeCoordinates()
        {
            if (SourceFigures.Size() > 0)
            {
                MinX = SourceFigures.Item(0).X1;
                for (int i = 0; i < SourceFigures.Size(); i++)
                {
                    if (SourceFigures.Item(i).X1 < MinX)
                    {
                        MinX = SourceFigures.Item(i).X1;
                    }
                    if (SourceFigures.Item(i).X2 < MinX)
                    {
                        MinX = SourceFigures.Item(i).X2;
                    }
                }

                MinY = SourceFigures.Item(0).Y1;
                for (int i = 0; i < SourceFigures.Size(); i++)
                {
                    if (SourceFigures.Item(i).Y1 < MinY)
                    {
                        MinY = SourceFigures.Item(i).Y1;
                    }
                    if (SourceFigures.Item(i).Y2 < MinY)
                    {
                        MinY = SourceFigures.Item(i).Y2;
                    }
                }

                MaxX = SourceFigures.Item(0).X2;
                for (int i = 0; i < SourceFigures.Size(); i++)
                {
                    if (SourceFigures.Item(i).X2 > MaxX)
                    {
                        MaxX = SourceFigures.Item(i).X2;
                    }
                    if (SourceFigures.Item(i).X1 > MaxX)
                    {
                        MaxX = SourceFigures.Item(i).X1;
                    }
                }

                MaxY = SourceFigures.Item(0).Y2;
                for (int i = 0; i < SourceFigures.Size(); i++)
                {
                    if (SourceFigures.Item(i).Y2 > MaxY)
                    {
                        MaxY = SourceFigures.Item(i).Y2;
                    }
                    if (SourceFigures.Item(i).Y1 > MaxY)
                    {
                        MaxY = SourceFigures.Item(i).Y1;
                    }
                }
            }
        }