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

Object Klassenreferenz

#include <Object.h>

Klassendiagramm für Object:

Planet Sun

Ausführliche Beschreibung

Diese Klasse enthaelt Basiseigenschaften Masse, Radius ... und Methoden die jedes Astronomische Objekt benoetigt damit dieses Verwendet werden kann. Unter anderem wird das Objektdetail Fenster durch ein Objekt erzeugt allerdings kann dieses auch erweitert werden, indem die Korrekten virtuellen Methoden ueberladen werden (siehe die Methoden).

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

classWindowEditAttributeseditAttributes = 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]


Dokumentation der Aufzählungstypen

enum Object::button [protected]
 

Konstanten die GLUI als Callback fuer Kontrollen verwendet.

Aufzählungswerte:
CANCEL 
TEXTURE 

Definiert in Zeile 31 der Datei Object.h.


Beschreibung der Konstruktoren und Destruktoren

Object::Object  ) 
 

Konstruktur legt ein neues Objekt an und initialisiert Attribute.

Definiert in Zeile 183 der Datei Object.cpp.

Benutzt texture.

virtual Object::~Object  )  [inline, virtual]
 

Virtueller Destruktur, sollte von jeder Unterklasse aufgerufen werden.

Definiert in Zeile 213 der Datei Object.h.

Benutzt closeAttributeWindow().


Dokumentation der Elementfunktionen

void Object::AttributeMenuCallback int  i  )  [static, private]
 

Callback Funktion fuer die GLUI Kontrollen (Buttons)...

Parameter:
i Callback Identifikation (Buttonnummer)

Definiert in Zeile 368 der Datei Object.cpp.

Benutzt closeAttributeWindow(), editAttributes, Object::classWindowEditAttributes::my, Opengl::redraw(), saveAttributes() und TEXTURE.

Wird benutzt von createAttributeWindow().

bool Object::attributeWindowShown  )  [inline, static]
 

Ermittelt ob die Objektdetailansicht offen ist.

Rückgabe:
true, wenn Objektdetailansicht offen

Definiert in Zeile 321 der Datei Object.h.

Benutzt editAttributes.

Wird benutzt von Opengl::singleStep().

void Object::closeAttributeWindow  )  [static]
 

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().

void Object::createAttributeWindow  )  [virtual]
 

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().

void Object::deleteAdditionalInformation void *  additionalInformation  )  [protected, virtual]
 

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.

Parameter:
additionalInformation die zusaetliche Information.

Definiert in Zeile 70 der Datei Object.cpp.

Wird benutzt von closeAttributeWindow().

virtual void Object::draw  )  [pure virtual]
 

Zeichnet das Objekt am Bildschirm mit Opengl

Implementiert in Planet und Sun.

void Object::drawBegin  )  [protected]
 

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().

void Object::drawEnd  )  [protected]
 

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().

void Object::FillTextureSelector  )  [private]
 

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().

Vector Object::getDistanceModified Vector  pos  )  [static]
 

Die Position ermittelt aus der Position die Position an der mit Opengl im Raum die Objekte dargestellt werden muessen.

Parameter:
pos 
Rückgabe:

Definiert in Zeile 39 der Datei Object.cpp.

Benutzt Configuration::linearScaleFactor und ourConfiguration.

Wird benutzt von drawEnd(), ObjectManager::drawObjects(), getScaledPos() und getScaledV().

virtual int Object::getDrawPriority  )  [inline, virtual]
 

Zeichenprioritaet, Objekte mit Hoher Prioritaet muessen zuerst gezeichnet werden. Gegenwaertig gibt es nur 2 Prioritaeten (Sonne muss zuerst gezeichnet werden wegen den Opengl Lichteffekten)

Rückgabe:
Prioritaet, je hoeher desto frueher muss es gezeichnet werden.

Erneute Implementation in Sun.

Definiert in Zeile 280 der Datei Object.h.

Wird benutzt von ObjectManager::addFreeObjectToObjectList().

char* Object::getName  )  [inline]
 

Name des Objekts zurueckgeben

Rückgabe:
Name

Definiert in Zeile 221 der Datei Object.h.

Wird benutzt von CollisionsManager::collide() und save().

GLuint Object::getOpenglTextureNumber  )  [protected]
 

Wenn ein Objekt die aktuell von ihm verwendete Opengl Texturnummer benoetigt kann es diese mit dieser Funktion ermitteln.

Rückgabe:
Verwendete Opengl Texturnummer

Definiert in Zeile 396 der Datei Object.cpp.

Benutzt TextureManager::getOpenglTexture(), ourTextureManager und textureNum.

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

double Object::getRadiusModified double  r  )  [static]
 

Die Funktion ermittelt wie gro�der uebergebene Radius mit der derzeitigen Darstellungsoptionen dargestellt werden muss.

Parameter:
r Zu uebersetzenden Radius
Rückgabe:
Modifizierter Radius

Definiert in Zeile 28 der Datei Object.cpp.

Benutzt Configuration::linearScaleFactor, ourConfiguration, Configuration::radiusAdaption und sqr().

Wird benutzt von getScaledRadius().

Vector Object::getScaledPos  ) 
 

Gibt die Position des Objekts im 3D Raum zurck, wird fuer Darstellungszwecke evtl. angepasst. Fuer Berechnung wird direkter Zugriff auf pos genommen.

Rückgabe:
Position

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().

double Object::getScaledRadius  ) 
 

Gibt den Radius des Objekts im 3D Raum zurck, wird fuer Darstellungszwecke evtl. angepasst.

Rückgabe:
Radius

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().

Vector Object::getScaledV  ) 
 

Gibt die Geschwindigkeit des Objekts im 3D Raum zurck, wird fuer Darstellungszwecke evtl. angepasst.

Rückgabe:
Geschwindigkeitsvektor

Definiert in Zeile 54 der Datei Object.cpp.

Benutzt getDistanceModified() und v.

Wird benutzt von drawEnd().

char* Object::getTexture  )  [inline]
 

Texturname des Objekts ermitteln.

Rückgabe:
Texturname

Definiert in Zeile 241 der Datei Object.h.

Benutzt texture.

Wird benutzt von CollisionsManager::collide() und save().

virtual char* Object::getType  )  [pure virtual]
 

Typ des Objektes (Planet, Sonne etc.) ermitteln

Rückgabe:
Typname

Implementiert in Planet und Sun.

Wird benutzt von CollisionsManager::collide(), createAttributeWindow(), save(), setName() und setTexture().

void Object::load istream &  FILE  )  [virtual]
 

Laedt von der Datei die Objekteigenschaften

Parameter:
FILE Input Stream

Definiert in Zeile 89 der Datei Object.cpp.

Benutzt mass, pos, setName(), setTexture() und v.

Wird benutzt von ObjectManager::load().

void Object::loadAttributes  )  [protected, virtual]
 

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().

void Object::refreshAttributes  )  [inline]
 

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().

void Object::save ostream &  FILE  )  [virtual]
 

Speichert in die Datei die Objekteigenschaften

Parameter:
FILE 

Definiert in Zeile 138 der Datei Object.cpp.

Benutzt getName(), getTexture(), getType(), mass, pos und v.

void Object::saveAttributes  )  [protected, virtual]
 

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().

void Object::setName const string &  name  ) 
 

Setzt den Namen des Objekts

Parameter:
name Neuer Name

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().

void Object::setTexture const string &  texture  ) 
 

Die Textur des Objekts festlegen

Parameter:
texture Name der neuen Textur

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().


Dokumentation der Datenelemente

Object::classWindowEditAttributes * Object::editAttributes = 0 [static, protected]
 

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().

double Object::mass
 

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().

char Object::name[MAX_NAME_LENGTH+1] [private]
 

Name des Objektes durch MAX_NAME_LENGTH limitiert

Definiert in Zeile 147 der Datei Object.h.

Vector Object::pos
 

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().

double Object::radius
 

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().

char Object::texture[MAX_TEXTURE_LENGTH+1] [private]
 

Name der Textur durch MAX_TEXTURE_LENGTH limitiert.

Definiert in Zeile 142 der Datei Object.h.

Wird benutzt von getTexture(), loadAttributes(), Object() und setTexture().

unsigned short Object::textureNum [private]
 

Aktuelle Textur nummer der Textur im TexturManagers.

Definiert in Zeile 137 der Datei Object.h.

Wird benutzt von getOpenglTextureNumber() und setTexture().

Vector Object::v
 

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().


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