Ignore:
Timestamp:
Sep 19, 2010, 8:48:16 PM (11 years ago)
Author:
matkovic
Message:

-Fixed some Collections issues

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/CryptoLineView/CryptoLineView.cs

    r1927 r1928  
    285285
    286286
    287      
     287
     288        //private bool isConnectionPossible(Point p1, Point p2, QuadTreeLib.QuadTree<FakeNode> quad)
     289        //{
     290        //    if (p1.X != p2.X && p1.Y != p2.Y)
     291        //        throw new ArgumentException("only 90° allowed");
     292
     293        //    if (p1.Y != p2.Y)
     294        //    {
     295        //        Point up = p2.Y < p1.Y ? p2 : p1;
     296        //        Point down = p2.Y < p1.Y ? p1 : p2;
     297
     298        //        Panel parent = (Parent as Panel);
     299        //        foreach (var element in parent.Children)
     300        //        {
     301        //            PluginContainerView plug1 = element as PluginContainerView;
     302        //            if (plug1 == null)
     303        //                continue;
     304        //            Point pos = new Point((plug1.RenderTransform as TranslateTransform).X, (plug1.RenderTransform as TranslateTransform).Y);
     305
     306        //            if (!isBetween(pos.X, pos.X + plug1.ActualWidth, up.X))
     307        //                continue;
     308
     309        //            // case 1: one point is inside the plugin
     310        //            if (isBetween(pos.Y, pos.Y + plug1.ActualHeight, up.Y) ||
     311        //                isBetween(pos.Y, pos.Y + plug1.ActualHeight, down.Y))
     312        //            {
     313        //                return false;
     314        //            }
     315
     316        //            // case 2: goes through
     317        //            if (pos.Y > up.Y && pos.Y + plug1.ActualHeight < down.Y)
     318        //            {
     319        //                return false;
     320        //            }
     321        //        }
     322        //    }
     323        //    else
     324        //    {
     325        //        Point left = p2.X < p1.X ? p2 : p1;
     326        //        Point right = p2.X < p1.X ? p1 : p2;
     327
     328        //        Panel parent = (Parent as Panel);
     329        //        foreach (var element in parent.Children)
     330        //        {
     331        //            PluginContainerView plug1 = element as PluginContainerView;
     332        //            if (plug1 == null)
     333        //                continue;
     334        //            Point pos = new Point((plug1.RenderTransform as TranslateTransform).X, (plug1.RenderTransform as TranslateTransform).Y);
     335
     336        //            if (!isBetween(pos.Y, pos.Y + plug1.ActualHeight, left.Y))
     337        //                continue;
     338
     339        //            // case 1: one point is inside the plugin
     340        //            if (isBetween(pos.X, pos.X + plug1.ActualWidth, left.X) ||
     341        //                isBetween(pos.X, pos.X + plug1.ActualWidth, right.X))
     342        //            {
     343        //                return false;
     344        //            }
     345
     346        //            // case 2: goes through
     347        //            if (pos.X > left.X && pos.X + plug1.ActualWidth < right.X)
     348        //            {
     349        //                return false;
     350        //            }
     351        //        }
     352        //    }
     353
     354        //    return true;
     355        //}
     356
    288357        private bool isConnectionPossible(Point p1, Point p2, QuadTreeLib.QuadTree<FakeNode> quadTree)
    289358        {
     
    295364            {
    296365                Point up = p2.Y < p1.Y ? p2 : p1;
    297                 Point down = p2.Y < p1.Y?p1 : p2;
     366                Point down = p2.Y < p1.Y ? p1 : p2;
    298367
    299368                queryRect = new System.Drawing.RectangleF((float)up.X, (float)up.Y, 1, (float)(down.Y - up.Y));
     
    304373                Point right = p2.X < p1.X ? p1 : p2;
    305374
    306                 queryRect = new System.Drawing.RectangleF((float)left.X, (float)left.Y, (float)(right.X-left.X), 1);
     375                queryRect = new System.Drawing.RectangleF((float)left.X, (float)left.Y, (float)(right.X - left.X), 1);
    307376            }
    308377
     
    333402                return Vertices;
    334403            }
     404
     405 
    335406        }
    336407
     
    378449            QuadTreeLib.QuadTree<FakeNode> quadTree = new QuadTreeLib.QuadTree<FakeNode>(new System.Drawing.RectangleF(0,0,(float)parent.ActualWidth,(float) parent.ActualHeight));
    379450
    380             foreach (var element in parent.Children)
    381             {
    382                 if (element is PluginContainerView)
    383                 {
    384                     PluginContainerView p1 = element as PluginContainerView;
    385                     foreach (var routPoint in p1.RoutingPoints)
    386                     {
    387                         nodeList.Add(new Node() { Point = routPoint });
    388                     }
    389                     quadTree.Insert(new FakeNode() { Rectangle = new System.Drawing.RectangleF((float)(p1.RenderTransform as TranslateTransform).X,
    390                                                                                                 (float)(p1.RenderTransform as TranslateTransform).Y,
    391                                                                                                 (float)p1.ActualWidth,
    392                                                                                                 (float)p1.ActualHeight)});
    393                 }
    394             }
    395            
     451            //foreach (var element in parent.Children)
     452            //{
     453            //    if (element is PluginContainerView)
     454            //    {
     455            //        PluginContainerView p1 = element as PluginContainerView;
     456            //        foreach (var routPoint in p1.RoutingPoints)
     457            //        {
     458            //            nodeList.Add(new Node() { Point = routPoint });
     459            //        }
     460            //        quadTree.Insert(new FakeNode() { Rectangle = new System.Drawing.RectangleF((float)(p1.RenderTransform as TranslateTransform).X,
     461            //                                                                                    (float)(p1.RenderTransform as TranslateTransform).Y,
     462            //                                                                                    (float)p1.ActualWidth,
     463            //                                                                                    (float)p1.ActualHeight)});
     464            //    }
     465            //}
     466            for (int routPoint = 0; routPoint < 4; ++routPoint)
     467            {
     468                foreach (var element in parent.Children)
     469                {
     470                    if (element is PluginContainerView)
     471                    {
     472                        PluginContainerView p1 = element as PluginContainerView;
     473                        nodeList.Add(new Node() { Point = p1.GetRoutingPoint(routPoint) });
     474                        if (routPoint == 0)
     475                        {
     476                            quadTree.Insert(new FakeNode()
     477                            {
     478                                Rectangle = new System.Drawing.RectangleF((float)(p1.RenderTransform as TranslateTransform).X,
     479                                                                           (float)(p1.RenderTransform as TranslateTransform).Y,
     480                                                                           (float)p1.ActualWidth,
     481                                                                           (float)p1.ActualHeight)
     482                            });
     483                        }
     484                    }
     485                }
     486            }
     487
    396488            // connect points
    397489            int loopCount = nodeList.Count;
Note: See TracChangeset for help on using the changeset viewer.