Die Hauptklasse der 3D Engine Dieser Klasse beinhaltet ALLE Methoden, die fuer die Nutzung der Engine benoetigt werden. More...
#include <Engine.h>
Public Member Functions | |
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 | calcLightMaps () |
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. | |
bool | inputMouse (int x, int y) |
Eingabe fuer Maus-Input. | |
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. | |
Static Public Member Functions | |
static Engine * | getInstance () |
Liefert die Singleton-Instanz. | |
Public Attributes | |
bool | m_rendering |
std::vector< Tile * > | m_tileCache |
int | m_mouseX |
int | m_mouseY |
float | m_yw |
float | m_xw |
Protected Member Functions | |
Engine () | |
Konstruktor. | |
Private Member Functions | |
void | animate (void) |
Animiert alle scrollbaren Texturen. | |
void | culling (int zone, Frustum &frust) |
Culling. | |
void | paint3D () |
Render alle Tiles aus der Zone. | |
void | paint3D (Tile *tile) |
void | paint2D (int zone, Frustum &frust) |
Rendert Partikel, Sprites, etc. | |
void | paintText (void) |
Rendert Text. | |
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 Attributes | |
bool | m_drawInfo |
bool | m_usePortalFrustum |
Timer | m_timer |
float | m_frameRate |
int | m_partikelCount |
Map * | m_map |
Camera * | m_camera |
EngineIO * | m_engineIO |
Frustum * | m_frustum |
SkyBox * | m_skyBox |
AnimationManager * | m_animationManager |
PartikelManager * | m_partikelManager |
SurfaceCache * | m_surfaceCache |
Renderer * | m_renderer |
MaterialManager * | m_materialManager |
int | m_height |
int | m_width |
Vec | m_camdir |
Vec | m_campos |
Vec | m_camlook |
Matrix | m_matTranslate |
Matrix | m_matRotate |
Matrix | m_matRotateLook |
Matrix | m_matAnimate |
bool | m_isRendererInitialized |
std::vector< Partikel * > | m_partikelList |
Text | m_text |
Static Private Attributes | |
static Engine * | _instance = 0 |
Die Hauptklasse der 3D Engine Dieser Klasse beinhaltet ALLE Methoden, die fuer die Nutzung der Engine benoetigt werden.
Engine::Engine | ( | ) | [protected] |
Konstruktor.
Engine::~Engine | ( | ) | [virtual] |
Destruktor.
void Engine::animate | ( | void | ) | [private] |
Animiert alle scrollbaren Texturen.
void Engine::calcLightMaps | ( | ) |
Berechnet die Lightmaps.
void Engine::culling | ( | int | zoneID, |
Frustum & | frust | ||
) | [private] |
double Engine::getFrameRate | ( | void | ) |
Getter fuer die Framerate.
Engine * Engine::getInstance | ( | ) | [static] |
Liefert die Singleton-Instanz.
int Engine::getPartikelsPerFrame | ( | void | ) |
Getter fuer die Anzahl der gerenderten Partikel im aktuellen Frame.
int Engine::getTilesPerFrame | ( | void | ) |
Getter fuer die Anzahl der gerenderten Tiles im aktuellen Frame.
void Engine::initRenderer | ( | int | width, |
int | height, | ||
BYTE * | data | ||
) |
Initialisiert den Renderer.
width | Breite der Canvas (Bildschirmfenster) |
height | Hoehe der Canvas (Bildschirmfenster) |
data | Referenz auf den Canvas-Datenbereich |
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.
pressed | true-->Key pressed, false-->Key released |
key | Tastaturcode |
bool Engine::inputMouse | ( | int | dx, |
int | dy | ||
) |
Eingabe fuer Maus-Input.
dx | Horizontale Distanz (in Pixel) zwischen zwei Samples |
dy | Vertikale Distanz (in Pixel) zwischen zwei Samples |
bool Engine::loadMapfile | ( | char * | fname | ) |
laedt die (binaere) Mapdatei
fname | Pfad+Dateiname+Extension der Map-Datei |
void Engine::paint2D | ( | int | zoneID, |
Frustum & | frustum | ||
) | [private] |
Rendert Partikel, Sprites, etc.
zoneID | |
frustum |
void Engine::paint3D | ( | Tile * | tile | ) | [private] |
void Engine::paint3D | ( | ) | [private] |
Render alle Tiles aus der Zone.
void Engine::paintSkyBox | ( | ) | [private] |
Rendert die SkyBox.
void Engine::paintText | ( | void | ) | [private] |
void Engine::renderFrame | ( | void | ) |
Rendert genau ein Frame.
void Engine::saveAsMapfile | ( | char * | fname | ) |
Speichert die Map in eine (binaere) Mapdatei.
fname | Pfad+Dateiname+Extension der Map-Datei |
void Engine::solveZConflicts | ( | void | ) | [private] |
Versucht Z-Konflikte zu loesen. Leider mit maessigem Erfolg.
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.
Engine * Engine::_instance = 0 [static, private] |
AnimationManager* Engine::m_animationManager [private] |
Vec Engine::m_camdir [private] |
Camera* Engine::m_camera [private] |
Vec Engine::m_camlook [private] |
Vec Engine::m_campos [private] |
bool Engine::m_drawInfo [private] |
EngineIO* Engine::m_engineIO [private] |
float Engine::m_frameRate [private] |
Frustum* Engine::m_frustum [private] |
int Engine::m_height [private] |
bool Engine::m_isRendererInitialized [private] |
Map* Engine::m_map [private] |
Matrix Engine::m_matAnimate [private] |
MaterialManager* Engine::m_materialManager [private] |
Matrix Engine::m_matRotate [private] |
Matrix Engine::m_matRotateLook [private] |
Matrix Engine::m_matTranslate [private] |
int Engine::m_mouseX |
int Engine::m_mouseY |
int Engine::m_partikelCount [private] |
std::vector<Partikel*> Engine::m_partikelList [private] |
PartikelManager* Engine::m_partikelManager [private] |
Renderer* Engine::m_renderer [private] |
bool Engine::m_rendering |
SkyBox* Engine::m_skyBox [private] |
SurfaceCache* Engine::m_surfaceCache [private] |
Text Engine::m_text [private] |
std::vector<Tile*> Engine::m_tileCache |
Timer Engine::m_timer [private] |
bool Engine::m_usePortalFrustum [private] |
int Engine::m_width [private] |
float Engine::m_xw |
float Engine::m_yw |