Engine Klassenreferenz

Die Hauptklasse der 3D Engine Dieser Klasse beinhaltet ALLE Methoden, die fuer die Nutzung der Engine benoetigt werden. Mehr ...

#include <Engine.h>

Aufstellung aller Elemente

Öffentliche Methoden

virtual ~Engine ()
 Destruktor.
void initRenderer (int width, int height, BYTE *data)
 Initialisiert den Renderer.
void renderFrame ()
 Rendert genau ein Frame.
void saveAsMapfile (char *fname)
 Speichert die Map in eine (binaere) Mapdatei.
bool loadMapfile (char *fname)
 laedt die (binaere) Mapdatei
void calcAnimation ()
 Berechnung des Animationsverhalten.
void calcLightMapGrid ()
 Berechnet die Lightmap-Grids.
void calcLightMap ()
 Berechnet die Lightmaps.
bool inputKey (bool pressed, int key)
 Wertet die Tastatureingabe aus. Tasten sind in Keys.h definiert Bei Bewegungstasten wird die Cameraposition neu berechnet Einige Tasten veraendern die Lichteinstellung Einige Tasten loesen Spezialfunktionen aus Alle anderen Tasten werden ignoriert.
double getFrameRate (void)
 Getter fuer die Framerate.
int getTilesPerFrame (void)
 Getter fuer die Anzahl der gerenderten Tiles im aktuellen Frame.
int getPartikelsPerFrame (void)
 Getter fuer die Anzahl der gerenderten Partikel im aktuellen Frame.

Öffentliche, statische Methoden

static EnginegetInstance ()
 Liefert die Singleton-Instanz.

Geschützte Methoden

 Engine ()
 Konstruktor.

Private Methoden

void animate (void)
 Animiert alle scrollbaren Texturen.
void culling (int zone, Frustum &frust)
 Culling.
void paintZone ()
 Render alle Tiles aus der Zone.
void paint2D (int zone, Frustum &frust)
 Rendert Partikel, Sprites, etc.
void paintSkyBox ()
 Rendert die SkyBox.
void sortBack2Front ()
 Tiefensortierung, auch Painter's Algorithm genannt: Funktioniert leider nur bei einfachen, statischen maps. Deshalb wurde mittlerweile auf den Z-Buffer umgestellt.
void solveZConflicts (void)
 Versucht Z-Konflikte zu loesen. Leider mit maessigem Erfolg.

Private Attribute

bool m_drawInfo
bool m_usePortalFrustum
bool m_rendering
Timer m_timer
double m_frameRate
int m_partikelCount
Mapm_map
Cameram_camera
EngineIOm_engineIO
LightManagerm_lightManager
Frustumm_frustum
SkyBoxm_skyBox
AnimationManagerm_animationManager
PartikelManagerm_partikelManager
SurfaceCachem_surfaceCache
Rendererm_renderer
int m_height
int m_width
Vec m_camdir
Vec m_campos
Matrix m_matTranslate
Matrix m_matRotate
Matrix m_matAnimate
bool m_isRendererInitialized
std::vector< Tile * > m_tileList
std::vector< Partikel * > m_partikelList
Textm_text
std::vector< Text * > m_textList

Statische private Attribute

static Engine_instance = 0


Ausführliche Beschreibung

Die Hauptklasse der 3D Engine Dieser Klasse beinhaltet ALLE Methoden, die fuer die Nutzung der Engine benoetigt werden.

Beschreibung der Konstruktoren und Destruktoren

Engine::Engine (  )  [protected]

Konstruktor.

Engine::~Engine (  )  [virtual]

Destruktor.


Dokumentation der Elementfunktionen

Engine * Engine::getInstance (  )  [static]

Liefert die Singleton-Instanz.

Rückgabe:
Pointer auf die Instanz

void Engine::initRenderer ( int  width,
int  height,
BYTE *  data 
)

Initialisiert den Renderer.

Parameter:
width Breite der Canvas (Bildschirmfenster)
height Hoehe der Canvas (Bildschirmfenster)
data Referenz auf den Canvas-Datenbereich

void Engine::renderFrame (  ) 

Rendert genau ein Frame.

void Engine::saveAsMapfile ( char *  fname  ) 

Speichert die Map in eine (binaere) Mapdatei.

Parameter:
fname Pfad+Dateiname+Extension der Map-Datei

bool Engine::loadMapfile ( char *  fname  ) 

laedt die (binaere) Mapdatei

Parameter:
fname Pfad+Dateiname+Extension der Map-Datei

void Engine::calcAnimation ( void   ) 

Berechnung des Animationsverhalten.

void Engine::calcLightMapGrid (  ) 

Berechnet die Lightmap-Grids.

void Engine::calcLightMap (  ) 

Berechnet die Lightmaps.

bool Engine::inputKey ( bool  pressed,
int  key 
)

Wertet die Tastatureingabe aus. Tasten sind in Keys.h definiert Bei Bewegungstasten wird die Cameraposition neu berechnet Einige Tasten veraendern die Lichteinstellung Einige Tasten loesen Spezialfunktionen aus Alle anderen Tasten werden ignoriert.

Parameter:
pressed true-->Key pressed, false-->Key released
key Tastaturcode
Rückgabe:
true->Frame muss neu berechnet werden, false->Keine Aktion noetig

double Engine::getFrameRate ( void   ) 

Getter fuer die Framerate.

Rückgabe:
frames per second

int Engine::getTilesPerFrame ( void   ) 

Getter fuer die Anzahl der gerenderten Tiles im aktuellen Frame.

Rückgabe:
tiles per frame

int Engine::getPartikelsPerFrame ( void   ) 

Getter fuer die Anzahl der gerenderten Partikel im aktuellen Frame.

Rückgabe:
partikel per second

void Engine::animate ( void   )  [private]

Animiert alle scrollbaren Texturen.

void Engine::culling ( int  zoneNr,
Frustum frust 
) [private]

Culling.

Parameter:
zoneNr Es werden nur Tiles berucksichtigt die zu dieser Zone gehoeren
frust Das Frustum. Es kann das normale Frustum sein, oder ein verkleinertes, welches durch ein Portal guckt.

void Engine::paintZone (  )  [private]

Render alle Tiles aus der Zone.

void Engine::paint2D ( int  zoneNr,
Frustum frustum 
) [private]

Rendert Partikel, Sprites, etc.

Parameter:
zoneNr 
frustum 

void Engine::paintSkyBox (  )  [private]

Rendert die SkyBox.

void Engine::sortBack2Front (  )  [private]

Tiefensortierung, auch Painter's Algorithm genannt: Funktioniert leider nur bei einfachen, statischen maps. Deshalb wurde mittlerweile auf den Z-Buffer umgestellt.

void Engine::solveZConflicts ( void   )  [private]

Versucht Z-Konflikte zu loesen. Leider mit maessigem Erfolg.


Dokumentation der Datenelemente

Engine * Engine::_instance = 0 [static, private]

bool Engine::m_drawInfo [private]

bool Engine::m_rendering [private]

double Engine::m_frameRate [private]

int Engine::m_partikelCount [private]

Map* Engine::m_map [private]

int Engine::m_height [private]

int Engine::m_width [private]

Vec Engine::m_camdir [private]

Vec Engine::m_campos [private]

std::vector<Tile*> Engine::m_tileList [private]

std::vector<Partikel*> Engine::m_partikelList [private]

Text* Engine::m_text [private]

std::vector<Text*> Engine::m_textList [private]


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:

Generated on Sun Nov 1 16:26:43 2009 for engine3d by doxygen 1.5.5