예제 #1
0
 public RouteNode(Vec2 pos, double diameter, RouteElement parent)
 {
     Pos = pos;
     Diameter = diameter;
     Parent = parent;
 }
예제 #2
0
        public virtual List<IntersectResult> Intersect(RouteElement obj)
        {
            List<IntersectResult> res = new List<IntersectResult>();

            foreach (RouteNode n in Nodes)
            {
                foreach (RouteNode nn in obj.Nodes)
                {
                    // Can intersect only if they share a common layer
                    string l = NetLength.Layer.LayerMatch(n.Parent.Layer, nn.Parent.Layer);
                    if (l != null)
                    {
                        IntersectResult r = n.Intersect(nn);
                        r.layer = l;
                        if (r.Intersects) res.Add(r);
                    }
                }
            }

            res.Sort(delegate(IntersectResult p1, IntersectResult p2) { return p1.dist.CompareTo(p2.dist); });

            return res;
        }