Exemple #1
0
        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());
        }
Exemple #2
0
 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);
     }
 }