package interpretacja.gramatyka; import interpretacja.Edge; import interpretacja.Fragment; import interpretacja.Geom; import interpretacja.GrafAdv; import interpretacja.Produkt; import java.util.ArrayList; import java.util.List; public class LiniaKont implements GSymbol { private int minLen; public LiniaKont(int minLen) { this.minLen = minLen; }; @Override public List akceptuj(Produkt h, GrafAdv g) { List ps = new ArrayList(); List es = g.E(h.n()); for (Edge e : es) { if (h.czyZawiera(e)) { continue; } Produkt nh = new Produkt(e, h); double delta = Geom.delta(e.kat(), (Double)nh.atr("kat")); if ((delta < 15)||(e.len() < 4)) { List cps = this.akceptuj(nh, g); ps.addAll(cps); } } double l = Geom.len((int[])h.atr("pocz"), g.N(h.n())); if (l > this.minLen) { ps.add(h); } return ps; } @Override public Fragment ocr(Produkt p, GrafAdv g) { return null; } }