Example #1
0
        public override bool HitTest(Point2F point)
        {
            EllipseGeometry g   = d2DFactory.CreateEllipseGeometry(ellipse);
            bool            ret = g.FillContainsPoint(point, 1);

            g.Dispose();
            return(ret);
        }
Example #2
0
 protected override void OnCleanUpDeviceIndependentResources()
 {
     base.OnCleanUpDeviceIndependentResources();
     _strokeStyle.Dispose();
     _textFormat.Dispose();
     _circleGeometry1.Dispose();
     _circleGeometry2.Dispose();
     _geometryUnion.Dispose();
     _geometryIntersect.Dispose();
     _geometryXor.Dispose();
     _geometryExclude.Dispose();
 }
Example #3
0
 public override bool HitTest(Point2F point)
 {
     foreach (var ellipse in ellipses)
     {
         EllipseGeometry g = d2DFactory.CreateEllipseGeometry(new Ellipse(
                                                                  new Point2F(
                                                                      (ellipse.rect.Left + ellipse.rect.Right) / 2,
                                                                      (ellipse.rect.Top + ellipse.rect.Bottom) / 2),
                                                                  ellipse.rect.Width / 2,
                                                                  ellipse.rect.Height / 2));
         bool ret = g.FillContainsPoint(point, 1);
         g.Dispose();
         if (ret)
         {
             return(true);
         }
     }
     return(false);
 }
Example #4
0
        public IDisposable SetCircleClipping(System.Drawing.Point center, int radius)
        {
            DisposableObject disposableObject = new DisposableObject();

            AddDrawRequest((target) =>
            {
                LayerParameters parm         = new LayerParameters();
                Layer layer                  = new Layer(target);
                Ellipse circle               = new Ellipse(Vector2FromGDIPoint(center), radius, radius);
                EllipseGeometry elli         = new EllipseGeometry(target.Factory, circle);
                disposableObject.OnDisposed += (s, e) =>
                {
                    target.PopLayer();
                    layer.Dispose();
                    elli.Dispose();
                };
                parm.GeometricMask = elli;
                target.PushLayer(ref parm, layer);
            });
            return(disposableObject);
        }