Gravitator Jaroslav Urban Gravitator bude interaktivny simulator gravitacie s editorom sveta zamerany na velke pocty objektov. Pouzite kniznice a vyvojove prostredie: Cielova platforma je Linux, pouzity jazyk bude C, zobrazovanie bude v 3D pomocou OpenGL, GUI vytvorene v GTK pomocou Glade. Cely program pisany v KDevelop IDE, s automatickou podporou autoconf a automake. Agloritmus: Na dostatocne rychlu simulaciu gravitacie budu objekty rozdelene na 2 druhy, lahke a tazke. Predpoklad je ze tazkych bude radovo v desiatkach, kym lahkych mozu byt desattisice. Tazke vplyvaju gravitaciou na vsetky objekty, lahke na ziaden. Takto staci prepocitat len gravitacny vplyv tazkych objektov na ostatne. Datove struktury: Budu pouzite 2 globalne pointery, world a gui. Vo world bude ulozeny svet, v gui budu ulozene nastavenia a pomocne premenne GUI. Vo world je 5 pointerov na zoznam metaobjektov, jeden na lahke objekty, jeden na tazke, jeden na lahke objekty v beziacej simulacii, jeden ta tazke objekty v simulacii a jeden pomocny na tazke objekty v simulacii. Kazdy zoznam metaobjektov je linearny spojovy zoznam. V kazdom uzle sa nachadzaju informacie o metaobjekte, pointer na dalsi metaobjekt a pointer na zoznam objektov. Zoznam objektov je taktiez linearny spojovy zoznam. Kazdy uzol obsahuje informacie o jednom objekte (poloha, hmotnost, ...). Moznosti: -ukladanie, nacitanie sveta zo suboru -editor so 4 oknami: -3 ortogonalne pohlady zhora, zdola a zprava, a 1 3d pohlad -ortogonalne okna: -moznost posunu do stran a hore/dole, zoom, moznost presunu na defaultnu poziciu -3d okno: pohyb do vsetkych smerov, rotacia do stran, hore, dole , presun do defaultnej polohy -pridavanie novych objektov: -jeden jednoduchy objekt -gula objektov (so zadanym polomerom a poctom objektov a ich parametrami) -valec objektov, duty valec -galaxie: elipticke, spiralovite -mazanie objektov: -zmazanie jedneho objektu -zmazanie objektov leziacich v guli, valci -uprava vlastnosti objektov -vypocet stabilnej drahy objektu(objektov) vzhladom k jednemu zadanemu objektu -v editore moznost posunu a rotacie objektov pomocou mysi -system objektov zalozeny na metaobjektoch a objektoch, metaobjekty mozu obsahovat viac objektov, moznost pridania objektu do metaobjektu, odstranenia z metaobjektu, moznost zobrazit len vybrane metaobjekty (pre prehladnost pri editacii, v pripade ze nejaky metaobjekt zavadzia pr vykonavani napr. mazania gulou) -simulacia sa spusti v samostatnom okne, moznost jej pausnutia, resetovania (spustenia od zaciatku), ulozenia aktualneho stavu do suboru (ktory sa da neskor editovat v editore), zmena rychlosti simulacie)