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)