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 LiniaKier implements GSymbol { private int minLen; private LiniaKont kont; public LiniaKier() { this(30); } public LiniaKier(int minLen) { this.minLen = minLen; this.kont = new LiniaKont(this.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); nh.dodajAtr("pocz", g.N(h.n())); double delta = Geom.delta(e.kat(), (Double)nh.atr("kat")); //System.out.println("Rzeczywisty kat: " + e.kat()); if ((delta < 15)||(e.len() < 4)) { List cps = this.kont.akceptuj(nh, g); ps.addAll(cps); } } return ps; } @Override public Fragment ocr(Produkt p, GrafAdv g) { return null; } }