Hauptseite | Liste aller Namensbereiche | Klassenhierarchie | Alphabetische Liste | Datenstrukturen | Auflistung der Dateien | Datenstruktur-Elemente | Datei-Elemente

Opengl Klassenreferenz

#include <Opengl.h>


Ausführliche Beschreibung

Die Klasse enthaelt nur statische Mitglieder und enthaelt Methoden fuer das Zeichnen des Hauptfensters und Callback funktionen fuer Opengl. Steuert die Animation.

Definiert in Zeile 24 der Datei Opengl.h.

Öffentliche, statische Methoden

void setAnimation (bool enable)
void singleStep ()
int getObjectID (int x, int y)
void reloadWindow ()
void redraw ()
int getNextLight ()
void loop ()
void init (int &argc, char **argv)

Private, statische Methoden

void CreateEnvironment ()
void RenderUniverse ()
void RenderObjects ()
void HandleReshape (int w, int h)
void HandleIdle ()
void HandleTimer (int value)

Statische private Attribute

int freeLight = 0


Dokumentation der Elementfunktionen

void Opengl::CreateEnvironment  )  [static, private]
 

Setzt einige Opengl Einstellungen fuers Zeichen die waehrend des ganzen Programmlaufes den selben Wert besitzen.

Definiert in Zeile 66 der Datei Opengl.cpp.

Wird benutzt von init().

int Opengl::getNextLight  )  [static]
 

Gibt waehrend eines Renderings fortlaufend noch nicht verwendete Opengl Lichter (GL_LIGHTX) zurueck die fuer Lichtquellen verwendet werden koennen. Es gibt nur 8 Opengl Lichter.

Rückgabe:
naechstes Opengllicht

Definiert in Zeile 36 der Datei Opengl.cpp.

Benutzt freeLight.

Wird benutzt von Sun::draw() und RenderObjects().

int Opengl::getObjectID int  x,
int  y
[static]
 

Ermittelt den Opengl Namen des Objekts das sich auf der Projektionsflaeche an der Position (x,y) befindet. Dieser Name ist im Falle eines Astronomischen Objektes gleich seiner Speicherposition und muss gecastet werden.

Parameter:
x 
y 
Rückgabe:
Opengl Namen des Objektes oder 0 falls keines gefunden wurde.

Definiert in Zeile 390 der Datei Opengl.cpp.

Benutzt Camera::loadCameraPerspective(), ourCamera und RenderObjects().

Wird benutzt von Window::HandleMouse().

void Opengl::HandleIdle  )  [static, private]
 

void Opengl::HandleReshape int  w,
int  h
[static, private]
 

Callback Funktion die beim Veraendern der Fenstergroesse aufgerufen wird. Passt die Paramter der Kamera und des 3D Fensters an damit das Projektionszentrum korrekt in der Mitte des 3D Fensters angezeigt wird.

Parameter:
w Neue Breite
h Neue Hoehe

Definiert in Zeile 268 der Datei Opengl.cpp.

Benutzt ourCamera, ourConfiguration, Camera::setScreen() und Configuration::showMenu.

Wird benutzt von init() und reloadWindow().

void Opengl::HandleTimer int  value  )  [static, private]
 

Callback Funktion die wenn die Animation gestartet wurde regelmaessig von Opengl ausgefuehrt wird und die Berechnung des naechsten Schrittes startet.

Parameter:
value Verstrichene Zeit (wird Ignoriert)

Definiert in Zeile 499 der Datei Opengl.cpp.

Benutzt Configuration::freezeAnimation, ObjectManager::getObjectCount(), HandleTimer(), ourConfiguration, ourObjectManager, singleStep() und TIMERUPDATE.

Wird benutzt von HandleTimer() und setAnimation().

void Opengl::init int &  argc,
char **  argv
[static]
 

Metode die Opengl / Glut initialisiert und das erzeugen des 3D Fensters durchfuehrt und das erzeugen der Fenster anstoesst. Die Kommandozeilen Parameter koennen an diese Funktion uebergeben werden und an glut weitergegeben werden.

Parameter:
argc Anzahl der Parameter
argv Kommandozeilenparameter

Definiert in Zeile 516 der Datei Opengl.cpp.

Benutzt CreateEnvironment(), Window::CreateWindows(), Camera::getScreenHeight(), Camera::getScreenWidth(), HandleReshape(), ourCamera und RenderUniverse().

Wird benutzt von main().

void Opengl::loop  )  [static]
 

Startet die Glut Mainloop

Definiert in Zeile 570 der Datei Opengl.cpp.

Wird benutzt von main().

void Opengl::redraw  )  [static]
 

Stoesst das Zeichnen des 3D Fensters an. In der Opengl Mainloop wird bei naechster Gelegenheit die Callbackfunktion fuer die Fensterzeichnung gestartet.

Definiert in Zeile 57 der Datei Opengl.cpp.

Wird benutzt von Object::AttributeMenuCallback(), Window::MenuMainCallback() und singleStep().

void Opengl::reloadWindow  )  [static]
 

Laedt die Einstellungen des 3D Fensters neu.

Definiert in Zeile 48 der Datei Opengl.cpp.

Benutzt HandleReshape().

Wird benutzt von Window::MenuMainCallback() und Window::showMenu().

void Opengl::RenderObjects  )  [static, private]
 

Zeichnet alle Astronomischen Objekte neu.

Definiert in Zeile 120 der Datei Opengl.cpp.

Benutzt ObjectManager::drawObjects(), freeLight, getNextLight(), Camera::loadCameraMatrix(), ourCamera und ourObjectManager.

Wird benutzt von getObjectID() und RenderUniverse().

void Opengl::RenderUniverse  )  [static, private]
 

Zeichnet das 3D Fenster neu.

Definiert in Zeile 166 der Datei Opengl.cpp.

Benutzt Camera::loadCameraPerspective(), ourCamera, ourConfiguration, RenderObjects(), Window::setRenderDetails(), Configuration::showLighting, timediffNow() und Configuration::viewModel.

Wird benutzt von init().

void Opengl::setAnimation bool  enable  )  [static]
 

Setzt den Animationsszustand und dafuer benoetigten Timer.

Parameter:
enable true, wenn die Animation gestartet werden soll

Definiert in Zeile 296 der Datei Opengl.cpp.

Benutzt Configuration::constructMode, Configuration::freezeAnimation, ObjectManager::getObjectCount(), HandleTimer(), ourConfiguration, ourObjectManager, Window::setAnimationControls() und TIMERUPDATE.

Wird benutzt von Configuration::loadWorld(), Window::MenuMainCallback() und PhysikEngine::simulateGravity().

void Opengl::singleStep  )  [static]
 

Fuehrt einen einzelnen Berechnungsschritt aus und zeigt das Ergebnis an. Dafuer wird u.a. der Integrator mit der Ausgewaehlten Zeit gestartet und die Kamera (im Folge Modus) bewegt.

Definiert in Zeile 320 der Datei Opengl.cpp.

Benutzt Object::attributeWindowShown(), Configuration::clickedObject, Vector::crossProduct(), Configuration::followObject, Vector::getNormalised(), ObjectManager::getObjectCount(), Camera::getPosition(), Camera::getProjectionCenter(), Object::getScaledPos(), Object::getScaledRadius(), Configuration::getTime(), Camera::getUpper(), Vector::length(), ObjectManager::nextTimeStep(), ourCamera, ourConfiguration, ourObjectManager, redraw(), Object::refreshAttributes(), Camera::setPosition(), Camera::setProjectionCenter(), Camera::setUpper(), PhysikEngine::simulateGravity(), Object::v und Configuration::viewToObjectsFlightDirection.

Wird benutzt von Window::HandleKeyboard(), HandleTimer() und Window::MenuMainCallback().


Dokumentation der Datenelemente

int Opengl::freeLight = 0 [static, private]
 

Enthaelt die Position der naechsten zu Vergebenden Lichtquelle waehrend eines Rendering Prozesses

Definiert in Zeile 27 der Datei Opengl.cpp.

Wird benutzt von getNextLight() und RenderObjects().


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Mon May 30 14:31:16 2005 für Sunsystembuildingandsimulation von doxygen 1.3.6