Back to bsyte

Engine Class Reference

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

#include <Engine.h>

Collaboration diagram for Engine:

List of all members.

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 EnginegetInstance ()
 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
Mapm_map
Cameram_camera
EngineIOm_engineIO
Frustumm_frustum
SkyBoxm_skyBox
AnimationManagerm_animationManager
PartikelManagerm_partikelManager
SurfaceCachem_surfaceCache
Rendererm_renderer
MaterialManagerm_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

Detailed Description

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


Constructor & Destructor Documentation

Engine::Engine ( ) [protected]

Konstruktor.

Here is the call graph for this function:

Here is the caller graph for this function:

Engine::~Engine ( ) [virtual]

Destruktor.


Member Function Documentation

void Engine::animate ( void  ) [private]

Animiert alle scrollbaren Texturen.

Here is the call graph for this function:

Here is the caller graph for this function:

void Engine::calcLightMaps ( )

Berechnet die Lightmaps.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Culling.

Parameters:
zoneIDEs werden nur Tiles berucksichtigt die zu dieser Zone gehoeren
frustDas Frustum. Es kann das normale Frustum sein, oder ein verkleinertes, welches durch ein Portal guckt.

Here is the call graph for this function:

Here is the caller graph for this function:

double Engine::getFrameRate ( void  )

Getter fuer die Framerate.

Returns:
frames per second

Here is the caller graph for this function:

Engine * Engine::getInstance ( ) [static]

Liefert die Singleton-Instanz.

Returns:
Pointer auf die Instanz

Here is the call graph for this function:

Here is the caller graph for this function:

int Engine::getPartikelsPerFrame ( void  )

Getter fuer die Anzahl der gerenderten Partikel im aktuellen Frame.

Returns:
partikel per second

Here is the caller graph for this function:

int Engine::getTilesPerFrame ( void  )

Getter fuer die Anzahl der gerenderten Tiles im aktuellen Frame.

Returns:
tiles per frame

Here is the caller graph for this function:

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

Initialisiert den Renderer.

Parameters:
widthBreite der Canvas (Bildschirmfenster)
heightHoehe der Canvas (Bildschirmfenster)
dataReferenz auf den Canvas-Datenbereich

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Parameters:
pressedtrue-->Key pressed, false-->Key released
keyTastaturcode
Returns:
true->Frame muss neu berechnet werden, false->Keine Aktion noetig

Here is the call graph for this function:

Here is the caller graph for this function:

bool Engine::inputMouse ( int  dx,
int  dy 
)

Eingabe fuer Maus-Input.

Parameters:
dxHorizontale Distanz (in Pixel) zwischen zwei Samples
dyVertikale Distanz (in Pixel) zwischen zwei Samples
Returns:
true->Frame muss neu berechnet werden, false->Keine Aktion noetig

Here is the call graph for this function:

Here is the caller graph for this function:

bool Engine::loadMapfile ( char *  fname)

laedt die (binaere) Mapdatei

Parameters:
fnamePfad+Dateiname+Extension der Map-Datei

Here is the call graph for this function:

Here is the caller graph for this function:

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

Rendert Partikel, Sprites, etc.

Parameters:
zoneID
frustum

Here is the call graph for this function:

Here is the caller graph for this function:

void Engine::paint3D ( Tile tile) [private]
void Engine::paint3D ( ) [private]

Render alle Tiles aus der Zone.

Here is the call graph for this function:

Here is the caller graph for this function:

void Engine::paintSkyBox ( ) [private]

Rendert die SkyBox.

Here is the call graph for this function:

Here is the caller graph for this function:

void Engine::paintText ( void  ) [private]

Rendert Text.

Here is the call graph for this function:

Here is the caller graph for this function:

void Engine::renderFrame ( void  )

Rendert genau ein Frame.

Here is the call graph for this function:

Here is the caller graph for this function:

void Engine::saveAsMapfile ( char *  fname)

Speichert die Map in eine (binaere) Mapdatei.

Parameters:
fnamePfad+Dateiname+Extension der Map-Datei

Here is the call graph for this function:

void Engine::solveZConflicts ( void  ) [private]

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

Here is the call graph for this function:

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.

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Engine * Engine::_instance = 0 [static, private]
Vec Engine::m_camdir [private]
Vec Engine::m_campos [private]
bool Engine::m_drawInfo [private]
float Engine::m_frameRate [private]
int Engine::m_height [private]
Map* Engine::m_map [private]
int Engine::m_partikelCount [private]
std::vector<Partikel*> Engine::m_partikelList [private]
Text Engine::m_text [private]
std::vector<Tile*> Engine::m_tileCache
int Engine::m_width [private]
float Engine::m_xw
float Engine::m_yw

The documentation for this class was generated from the following files: