/// <summary> /// Verifica se pVertice e` un vertice del corpo ottico /// </summary> /// <param name="pVertice">Il punto</param> /// <returns>Intersezione fittizia, contenente il rif. ai due tratti di contorno a cui appartiene</returns> protected Intersection CheckVertice(Point2D pVertice) { Intersection i = null; List<Contorno> lc; lc = Belongs(pVertice); // Ottiene la lista if(lc.Count == 2) // Se due Tratti: e` un vertice; se meno, no { i = new Intersection(pVertice, 0.0, 0.0, lc[0].Tratto, lc[1].Tratto); } if(lc.Count > 2) throw new Exception("Profilo con punto comune a piu` di due tratti"); return i; }
/// <summary> /// Delegate di confronto /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <returns></returns> protected int CfrT1(Intersection x, Intersection y) { if(Math.Abs(x.t1 - y.t1) < Line2D.CoincidenceDistance) return 0; if(x.t1 < y.t1) return -1; else return 1; }