#include <Object.h>
Klassendiagramm für Object:
Definiert in Zeile 26 der Datei Object.h.
Öffentliche Methoden | |
Vector | getScaledPos () |
Vector | getScaledV () |
double | getScaledRadius () |
Object () | |
virtual | ~Object () |
char * | getName () |
void | setName (const string &name) |
virtual char * | getType ()=0 |
char * | getTexture () |
void | refreshAttributes () |
void | setTexture (const string &texture) |
virtual void | draw ()=0 |
virtual void | createAttributeWindow () |
virtual int | getDrawPriority () |
virtual void | load (istream &FILE) |
virtual void | save (ostream &FILE) |
Öffentliche, statische Methoden | |
double | getRadiusModified (double r) |
Vector | getDistanceModified (Vector pos) |
void | closeAttributeWindow () |
bool | attributeWindowShown () |
Datenfelder | |
Vector | pos |
Vector | v |
double | mass |
double | radius |
Geschützte Typen | |
enum | button { CANCEL, TEXTURE } |
Geschützte Methoden | |
virtual void | loadAttributes () |
virtual void | saveAttributes () |
virtual void | deleteAdditionalInformation (void *additionalInformation) |
void | drawBegin () |
void | drawEnd () |
GLuint | getOpenglTextureNumber () |
Statische geschützte Attribute | |
classWindowEditAttributes * | editAttributes = 0 |
Private Methoden | |
void | FillTextureSelector () |
Private, statische Methoden | |
void | AttributeMenuCallback (int i) |
Private Attribute | |
unsigned short | textureNum |
char | texture [MAX_TEXTURE_LENGTH+1] |
char | name [MAX_NAME_LENGTH+1] |
|
Konstanten die GLUI als Callback fuer Kontrollen verwendet. |
|
Konstruktur legt ein neues Objekt an und initialisiert Attribute. Definiert in Zeile 183 der Datei Object.cpp. Benutzt texture. |
|
Virtueller Destruktur, sollte von jeder Unterklasse aufgerufen werden. Definiert in Zeile 213 der Datei Object.h. Benutzt closeAttributeWindow(). |
|
Callback Funktion fuer die GLUI Kontrollen (Buttons)...
Definiert in Zeile 368 der Datei Object.cpp. Benutzt closeAttributeWindow(), editAttributes, Object::classWindowEditAttributes::my, Opengl::redraw(), saveAttributes() und TEXTURE. Wird benutzt von createAttributeWindow(). |
|
Ermittelt ob die Objektdetailansicht offen ist.
Definiert in Zeile 321 der Datei Object.h. Benutzt editAttributes. Wird benutzt von Opengl::singleStep(). |
|
Schliesse die Objektdetailansicht sofern diese offen ist. Definiert in Zeile 252 der Datei Object.cpp. Benutzt Object::classWindowEditAttributes::additionalInformation, Object::classWindowEditAttributes::attributeWindow, deleteAdditionalInformation(), editAttributes, Object::classWindowEditAttributes::my und saveAttributes(). Wird benutzt von AttributeMenuCallback(), createAttributeWindow(), Configuration::loadWorld(), Window::MenuConstructionCallback(), Window::selectObject(), Window::showConstructMenu() und ~Object(). |
|
Erzeugt das Fenster fuer die Objektdetailansicht und die Standartkontrollen, sollte von jedem Unterobjekt aufgerufen werden bevor es eigene Kontrollen hinzufuegt. Definiert in Zeile 303 der Datei Object.cpp. Benutzt Object::classWindowEditAttributes::additionalInformation, AttributeMenuCallback(), Object::classWindowEditAttributes::attributeWindow, closeAttributeWindow(), editAttributes, FillTextureSelector(), getType(), Object::classWindowEditAttributes::my, Object::classWindowEditAttributes::name, Object::classWindowEditAttributes::objectType, refreshAttributes(), TEXTURE und Object::classWindowEditAttributes::textureSelector. Wird benutzt von Window::MenuConstructionCallback(), Window::MenuMainCallback() und Window::selectObject(). |
|
Wenn das Fenster zur Objektdetailansicht geschlossen wird muss der Speicher in additionInformation freigegeben werden, da die Oberklasse Object keine Information ueber die Struktur von additionalInformation besitzt.
Definiert in Zeile 70 der Datei Object.cpp. Wird benutzt von closeAttributeWindow(). |
|
Zeichnet das Objekt am Bildschirm mit Opengl |
|
Sollte von jedem Astronomischen Objekt zu begin des Zeichenvorgangs aufgerufen werden. Legt den Opengl namen des noch zu zeichnenden Objektes korrekt fest. Definiert in Zeile 400 der Datei Object.cpp. Wird benutzt von Sun::draw() und Planet::draw(). |
|
Sollte von jedem Astronomischen Objekt nach dem Zeichenvorgang des Objekts aufgerufen werden. Zeichnet zusaetlich den Geschwindigkeitsvektor und entfernt Opengl Namen Matrix. Definiert in Zeile 152 der Datei Object.cpp. Benutzt Configuration::constructMode, getDistanceModified(), Vector::getNormalised(), getScaledPos(), getScaledRadius(), getScaledV(), Configuration::getTime(), Vector::length(), ourConfiguration, v, Configuration::viewVectors, Vector::x, Vector::y und Vector::z. Wird benutzt von Sun::draw() und Planet::draw(). |
|
Die Textur Auswahlliste mit fuer diesen Objekttyp vorhande Texturen fuellen Definiert in Zeile 214 der Datei Object.cpp. Benutzt editAttributes, MAX_TEXTURE_LENGTH, Object::classWindowEditAttributes::objectType, pos und Object::classWindowEditAttributes::textureSelector. Wird benutzt von createAttributeWindow(). |
|
Die Position ermittelt aus der Position die Position an der mit Opengl im Raum die Objekte dargestellt werden muessen.
Definiert in Zeile 39 der Datei Object.cpp. Benutzt Configuration::linearScaleFactor und ourConfiguration. Wird benutzt von drawEnd(), ObjectManager::drawObjects(), getScaledPos() und getScaledV(). |
|
Zeichenprioritaet, Objekte mit Hoher Prioritaet muessen zuerst gezeichnet werden. Gegenwaertig gibt es nur 2 Prioritaeten (Sonne muss zuerst gezeichnet werden wegen den Opengl Lichteffekten)
Erneute Implementation in Sun. Definiert in Zeile 280 der Datei Object.h. Wird benutzt von ObjectManager::addFreeObjectToObjectList(). |
|
Name des Objekts zurueckgeben
Definiert in Zeile 221 der Datei Object.h. Wird benutzt von CollisionsManager::collide() und save(). |
|
Wenn ein Objekt die aktuell von ihm verwendete Opengl Texturnummer benoetigt kann es diese mit dieser Funktion ermitteln.
Definiert in Zeile 396 der Datei Object.cpp. Benutzt TextureManager::getOpenglTexture(), ourTextureManager und textureNum. Wird benutzt von Sun::draw() und Planet::draw(). |
|
Die Funktion ermittelt wie gro�der uebergebene Radius mit der derzeitigen Darstellungsoptionen dargestellt werden muss.
Definiert in Zeile 28 der Datei Object.cpp. Benutzt Configuration::linearScaleFactor, ourConfiguration, Configuration::radiusAdaption und sqr(). Wird benutzt von getScaledRadius(). |
|
Gibt die Position des Objekts im 3D Raum zurck, wird fuer Darstellungszwecke evtl. angepasst. Fuer Berechnung wird direkter Zugriff auf pos genommen.
Definiert in Zeile 47 der Datei Object.cpp. Benutzt getDistanceModified() und pos. Wird benutzt von Sun::draw(), Planet::draw(), drawEnd(), Window::HandleMouse(), Window::MenuMainCallback(), Camera::setAllToViewObject() und Opengl::singleStep(). |
|
Gibt den Radius des Objekts im 3D Raum zurck, wird fuer Darstellungszwecke evtl. angepasst.
Definiert in Zeile 62 der Datei Object.cpp. Benutzt getRadiusModified(). Wird benutzt von Sun::draw(), Planet::draw(), drawEnd(), Window::MenuMainCallback(), Camera::setAllToViewObject(), Opengl::singleStep() und Camera::zoom(). |
|
Gibt die Geschwindigkeit des Objekts im 3D Raum zurck, wird fuer Darstellungszwecke evtl. angepasst.
Definiert in Zeile 54 der Datei Object.cpp. Benutzt getDistanceModified() und v. Wird benutzt von drawEnd(). |
|
Texturname des Objekts ermitteln.
Definiert in Zeile 241 der Datei Object.h. Benutzt texture. Wird benutzt von CollisionsManager::collide() und save(). |
|
Typ des Objektes (Planet, Sonne etc.) ermitteln
Implementiert in Planet und Sun. Wird benutzt von CollisionsManager::collide(), createAttributeWindow(), save(), setName() und setTexture(). |
|
Laedt von der Datei die Objekteigenschaften
Definiert in Zeile 89 der Datei Object.cpp. Benutzt mass, pos, setName(), setTexture() und v. Wird benutzt von ObjectManager::load(). |
|
Methode die aufgerufen wird wenn das Fenster zur Objektdetailansicht geoffnet wird. Somit koennen Objektattribute in additionalInformation uebernommen werden um im Fenster manipuliert zu werden. Definiert in Zeile 272 der Datei Object.cpp. Benutzt editAttributes, Object::classWindowEditAttributes::name, Object::classWindowEditAttributes::objectType, texture und Object::classWindowEditAttributes::textureSelector. Wird benutzt von refreshAttributes(). |
|
Attributfenster des Objekts neu laden falls dieses Angezeigt wird. Definiert in Zeile 248 der Datei Object.h. Benutzt Object::classWindowEditAttributes::attributeWindow, editAttributes und loadAttributes(). Wird benutzt von createAttributeWindow(), Window::HandleMouseMotion() und Opengl::singleStep(). |
|
Speichert in die Datei die Objekteigenschaften
Definiert in Zeile 138 der Datei Object.cpp. Benutzt getName(), getTexture(), getType(), mass, pos und v. |
|
Methode die aufgerufen wird wenn das Fenster zur Objektdetailansicht geschlossen /gespeichert wird. Somit koennen Variablen von additionalInformation in die Objektattribute uebernommen werden. Definiert in Zeile 288 der Datei Object.cpp. Benutzt editAttributes, Object::classWindowEditAttributes::name, Window::reloadObjectSelector(), setName(), setTexture() und Object::classWindowEditAttributes::textureSelector. Wird benutzt von AttributeMenuCallback() und closeAttributeWindow(). |
|
Setzt den Namen des Objekts
Definiert in Zeile 76 der Datei Object.cpp. Benutzt getType() und MAX_NAME_LENGTH. Wird benutzt von CollisionsManager::collide(), load(), Planet::Planet(), saveAttributes() und Sun::Sun(). |
|
Die Textur des Objekts festlegen
Definiert in Zeile 191 der Datei Object.cpp. Benutzt TextureManager::freeReference(), TextureManager::getTextureNumber(), getType(), MAX_TEXTURE_LENGTH, ourTextureManager, texture und textureNum. Wird benutzt von CollisionsManager::collide(), load(), Planet::Planet(), saveAttributes() und Sun::Sun(). |
|
Zeiger auf benoetigte Informationen sollange die Objektdetailansicht offen ist. Definiert in Zeile 22 der Datei Object.cpp. Wird benutzt von AttributeMenuCallback(), attributeWindowShown(), closeAttributeWindow(), createAttributeWindow(), FillTextureSelector(), loadAttributes(), refreshAttributes() und saveAttributes(). |
|
Masse des Astronomischen Objekts Definiert in Zeile 175 der Datei Object.h. Wird benutzt von CollisionsManager::collide(), ObjectManager::createRandomObject(), RungeKuttaAdaptive::integrate(), RungeKutta::integrate(), load(), Window::MenuConstructionCallback(), save() und Window::setSatelliteProperties(). |
|
Name des Objektes durch MAX_NAME_LENGTH limitiert |
|
Position des Astronomischen Objekts Definiert in Zeile 165 der Datei Object.h. Wird benutzt von CollisionsManager::collide(), ObjectManager::createRandomObject(), FillTextureSelector(), getScaledPos(), Window::HandleMouse(), Window::HandleMouseMotion(), RungeKuttaAdaptive::integrate(), RungeKutta::integrate(), load(), Window::MenuConstructionCallback(), Window::MenuOptionCallback() und save(). |
|
Radius des Astronomischen Objekts, wichtig fr Kollisionskontrolle ! Definiert in Zeile 180 der Datei Object.h. Wird benutzt von CollisionsManager::collide(), ObjectManager::createRandomObject(), RungeKuttaAdaptive::integrate(), RungeKutta::integrate(), Window::MenuConstructionCallback(), Window::MenuMainCallback() und Window::setSatelliteProperties(). |
|
Name der Textur durch MAX_TEXTURE_LENGTH limitiert. Definiert in Zeile 142 der Datei Object.h. Wird benutzt von getTexture(), loadAttributes(), Object() und setTexture(). |
|
Aktuelle Textur nummer der Textur im TexturManagers. Definiert in Zeile 137 der Datei Object.h. Wird benutzt von getOpenglTextureNumber() und setTexture(). |
|
Geschwindigkeitsvektor des Astronomischen Objekts Definiert in Zeile 170 der Datei Object.h. Wird benutzt von CollisionsManager::collide(), ObjectManager::createRandomObject(), drawEnd(), getScaledV(), Window::HandleMouse(), Window::HandleMouseMotion(), RungeKuttaAdaptive::integrate(), RungeKutta::integrate(), load(), Window::MenuConstructionCallback(), save() und Opengl::singleStep(). |