
import sk.uniba.fmph.pocprak.simplegraphics.*;
import java.awt.Color;

public class ZakonLomu {

    public static void main(String[] args) {
        GrGraphics gr = SimpleGraphics.CreateGrEnvironment();
        gr.setBasePoint(gr.CENTER);
        gr.setUserFrameSize(0., 0., 5., 3.);//definicia suradnic stredu a laveho horneho rohu

        OpticalSurface os[] = new OpticalSurface[4];//pole do ktoreho sa ulozia opticke plochy

        os[0] = new Infinity(Infinity.LEFT);//formalna rovina v lavom nekonecne
        os[1] = new OptRovina(0, 1, 2); //rovina v bode 0, pred nou index lomu 1, za nou 2
        os[2] = new Tienidlo(2.);//tienidlo v polohe 2.
        os[3] = new Infinity(Infinity.RIGHT);//formalna rovina v pravom nekonecne

        Tubus tbs = new Tubus(0.5, -0.3, 3.);//tubus s polomerom otvoru 0.5, 
                                             //vstupny otvor  je v polohe -0.3, koniec tubusu v bode 3

        OpticalSystem o = new OpticalSystem(os, tbs);//definicia optickeho systemu pomocou 
        //preddeklarovanych optickych ploch a tubusu

        gr.setPaint(Color.green);
        o.draw(gr);
        gr.repaint();
        gr.setPaint(Color.black);
        double dt = 0.001;//dlzka kroku v parametri t pre vykreslovanie lucov
        
        point a = new point(-5, 2);//bod z ktoreho vychadza luc
        Beam b = new Beam(a, new point(0, 0), 1);//luc vychadzajuci z bodu a smerujuci do bodu
        //(0,0) taky ze mu na ceste lezi opticka plocha s indexom 1
        
        //sem pridajte kod ktori otvori subor tienidlo.txt
        for (int i = 0; i < 10000; i++) {
            point oldp = new point(b.p);//zapamata si bod, do ktoreho uz dorazil beam pre ucely buduceho kreslenia
            b.move(dt, o);//posunie luc o kusok
            b.draw(oldp, gr);//nakresli usek luca od bodu oldpoint po novy bod b.p
            gr.repaint();
        }
        //sem pridajte kod ktory do suboru tienidlo.txt napise y suradnicu bodu dopadu na tienidlo
        //zatvorte subor tienidlo.txt




    }
}
