public RouteNode(Vec2 pos, double diameter, RouteElement parent) { Pos = pos; Diameter = diameter; Parent = parent; }
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; }