コード例 #1
0
        public override bool isMouseOnElement(CAD2DDrawingPanel p, MouseState ms)
        {
            Vector2 loc1 = p.pointToLocation(this.Point1);
            Vector2 loc2 = p.pointToLocation(this.Point2);
            double  X1   = loc1.X;
            double  Y1   = loc1.Y;
            double  X2   = loc2.X;
            double  Y2   = loc2.Y;


            // Get point distance
            double diffX = Math.Abs(X2 - X1);
            double diffY = Math.Abs(Y2 - Y1);
            int    diff  = (int)Math.Sqrt(Math.Pow(diffX, 2) + Math.Pow(diffY, 2));

            // Get offset
            int oX = (int)(X2 - X1);
            int oY = (int)(Y2 - Y1);

            // Scan Line
            for (int i = 2 * this.mouseRange; i <= diff - 2 * this.mouseRange; i++)
            {
                int x = (int)X1 + (int)((double)i / (double)diff * (double)oX);
                int y = (int)Y1 + (int)((double)i / (double)diff * (double)oY);
                if (x >= (ms.X - this.mouseRange) &&
                    x <= (ms.X + this.mouseRange) &&
                    y >= (ms.Y - this.mouseRange) &&
                    y <= (ms.Y + this.mouseRange)
                    )
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #2
0
 public override bool isMouseOnElement(CAD2DDrawingPanel p, MouseState ms)
 {
     foreach (Line l in this.Lines)
     {
         if (l.isMouseOnElement(p, ms))
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #3
0
 public bool isHovered(CAD2DDrawingPanel p)
 {
     if (p.isCanvasHovered() &&
         this.isMouseOnElement(p, p.Mouse.CurrentState)
         )
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #4
0
 public bool isClicked(CAD2DDrawingPanel p)
 {
     if (p.isCanvasHovered() &&
         this.isMouseOnElement(p, p.Mouse.LeftButtonPressed) &&
         this.isMouseOnElement(p, p.Mouse.LeftButtonReleased)
         )
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #5
0
        public override bool isMouseOnElement(CAD2DDrawingPanel p, MouseState ms)
        {
            Vector2 loc = p.pointToLocation(this);

            if (loc.X >= (ms.X - this.mouseRange) &&
                loc.X <= (ms.X + this.mouseRange) &&
                loc.Y >= (ms.Y - this.mouseRange) &&
                loc.Y <= (ms.Y + this.mouseRange)
                )
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #6
0
 public virtual bool isMouseOnElement(CAD2DDrawingPanel p, MouseState ms)
 {
     return(false);
 }