ATMLWorkBench.Forms.SignalComponent.getAffectedRegion C# (CSharp) Method

getAffectedRegion() public method

public getAffectedRegion ( ) : Region
return System.Drawing.Region
        public Region getAffectedRegion()
        {
            Region region = new Region();
            region.MakeEmpty();
            //region.Union(Bounds);
            foreach( SignalConnector conn in connectionsIn )
                region.Union(conn.getRegion());
            foreach( SignalConnector conn in connectionsOut )
                region.Union(conn.getRegion());
            return region;
        }

Usage Example

Exemplo n.º 1
0
 void SignalModelContainer_MouseMove(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         if (activeSignal != null && ClientRectangle.Contains(e.X, e.Y))
         {
             Rectangle r1 = activeSignal.Bounds;
             activeSignal.Location = new Point(e.X - activeLocationX, e.Y - activeLocationY);
             int       left   = Math.Max(0, Math.Min(r1.Left, activeSignal.Location.X));
             int       top    = Math.Max(0, Math.Min(r1.Top, activeSignal.Location.Y));
             int       right  = Math.Max(left + r1.Width, activeLocationX + activeSignal.Width);
             int       bottom = Math.Max(top + r1.Height, activeLocationY + activeSignal.Height);
             Rectangle r2     = new Rectangle(left, top, right + 10, bottom + 10);
             Region    region = new Region(r1);
             region.Union(r2);
             region.Union(activeSignal.getAffectedRegion());
             Invalidate(region);
             Update();
             activeLocationX = e.X - activeSignal.Location.X;
             activeLocationY = e.Y - activeSignal.Location.Y;
         }
     }
 }