# 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 Engine * | getInstance ()
| 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
Map * | m_map
Camera * | m_camera
EngineIO * | m_engineIO
LightManager * | m_lightManager
Frustum * | m_frustum
SkyBox * | m_skyBox
AnimationManager * | m_animationManager
PartikelManager * | m_partikelManager
SurfaceCache * | m_surfaceCache
Renderer * | m_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
Text * | m_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_usePortalFrustum`[private]`

bool Engine::m_rendering`[private]`

Timer Engine::m_timer`[private]`

double Engine::m_frameRate`[private]`

int Engine::m_partikelCount`[private]`

Map* Engine::m_map`[private]`

Camera* Engine::m_camera`[private]`

EngineIO* Engine::m_engineIO`[private]`

LightManager* Engine::m_lightManager`[private]`

Frustum* Engine::m_frustum`[private]`

SkyBox* Engine::m_skyBox`[private]`

AnimationManager* Engine::m_animationManager`[private]`

PartikelManager* Engine::m_partikelManager`[private]`

SurfaceCache* Engine::m_surfaceCache`[private]`

Renderer* Engine::m_renderer`[private]`

int Engine::m_height`[private]`

int Engine::m_width`[private]`

Vec Engine::m_camdir`[private]`

Vec Engine::m_campos`[private]`

Matrix Engine::m_matTranslate`[private]`

Matrix Engine::m_matRotate`[private]`

Matrix Engine::m_matAnimate`[private]`

bool Engine::m_isRendererInitialized`[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:

- D:/Project/engine3d/cplusplus/src/engine/Engine.h
- D:/Project/engine3d/cplusplus/src/engine/Engine.cpp