public ICrossPoint[] GetCrossPoint(Vex.Point snapPoint, BondAttachment ba) { List <ICrossPoint> result = new List <ICrossPoint>(); if (ba.IsHandle()) { if (xStops.ContainsKey(snapPoint.X)) // will not contain point if snaping to original position { List <ICrossPoint> cps = xStops[snapPoint.X]; ICrossPoint cp = cps.Find(item => item.CrossStart == snapPoint.Y); if (cp != null) { result.Add(cp); } } } else { if (ba.IsVGuide()) { List <ICrossPoint> cps = xStops[snapPoint.X]; if (cps.Count > 0) { result.Add(cps[0]); } } if (ba.IsHGuide()) { List <ICrossPoint> cps = yStops[snapPoint.Y]; if (cps.Count > 0) { result.Add(cps[0]); } } } return(result.ToArray()); }
private void AddPoint(SortedList <float, List <ICrossPoint> > store, float key, ICrossPoint cr) { if (!store.ContainsKey(key)) { store.Add(key, new List <ICrossPoint>() { cr }); } else { store[key].Add(cr); } }