static void TransformPoints(CoreGraphics.CGAffineTransform t, PointF [] pts)
 {
     for (int i = 0; i < pts.Length; ++i)
     {
         var p   = pts [i];
         var cgp = t.TransformPoint(new CoreGraphics.CGPoint(p.X, p.Y));
         pts [i] = new PointF((float)cgp.X, (float)cgp.Y);
     }
 }