Back to bsyte

# Zephyr Klassenreferenz

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

`#include <Zephyr.h>`

Aufstellung aller Elemente

## Öffentliche Methoden
virtual | ~Zephyr ()
| 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 Zephyr * | getInstance ()
| Liefert die Singleton-Instanz.
## Geschützte Methoden
| Zephyr ()
| Konstruktor.
## Private Methoden
void | clearZBuffer (void)
| Loescht den Z-Buffer.
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 | paintSkyBox_old ()
| 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.
void | clearPlane ()
| Loescht die Canvas (kann aus Performanzgruenden entfallen).
## 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
Light * | m_light
Frustum * | m_frustum
TextureMapper * | m_tm
SkyBox * | m_skyBox
AnimationPool * | m_animationPool
PartikelManager * | m_partikelManager
SpriteMapper * | m_spriteMapper
Charset * | m_charset
SurfaceCache * | m_surfaceCache
int | m_height
int | m_width
BYTE * | m_PlanePixels
float * | m_ZBuffer
Vec | m_camdir
Vec | m_campos
Matrix | m_matTranslate
Matrix | m_matRotate
Matrix | m_matAnimate
bool | m_isRendererInitialized
std::vector< Tile * > | m_tileList
## Statische private Attribute
static Zephyr * | _instance = 0

## Ausführliche Beschreibung

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

## Beschreibung der Konstruktoren und Destruktoren

Zephyr::Zephyr | ( |  | ) | `[protected]`

Konstruktor.

Zephyr::~Zephyr | ( |  | ) | `[virtual]`

Destruktor.

## Dokumentation der Elementfunktionen

Zephyr * Zephyr::getInstance | ( |  | ) | `[static]`

Liefert die Singleton-Instanz.

Rückgabe:
  Pointer auf die Instanz

void Zephyr::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 Zephyr::renderFrame | ( |  | ) |

Rendert genau ein Frame.

void Zephyr::saveAsMapfile | ( | char * | fname | ) |

Speichert die Map in eine (binaere) Mapdatei.

Parameter:

  | fname | Pfad+Dateiname+Extension der Map-Datei

bool Zephyr::loadMapfile | ( | char * | fname | ) |

laedt die (binaere) Mapdatei

Parameter:

  | fname | Pfad+Dateiname+Extension der Map-Datei

void Zephyr::calcAnimation | ( | void |  | ) |

Berechnung des Animationsverhalten.

void Zephyr::calcLightMapGrid | ( |  | ) |

Berechnet die Lightmap-Grids.

void Zephyr::calcLightMap | ( |  | ) |

Berechnet die Lightmaps.

bool Zephyr::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 Zephyr::getFrameRate | ( | void |  | ) |

Getter fuer die Framerate.

Rückgabe:
  frames per second

int Zephyr::getTilesPerFrame | ( | void |  | ) |

Getter fuer die Anzahl der gerenderten Tiles im aktuellen Frame.

Rückgabe:
  tiles per frame

int Zephyr::getPartikelsPerFrame | ( | void |  | ) |

Getter fuer die Anzahl der gerenderten Partikel im aktuellen Frame.

Rückgabe:
  partikel per second

void Zephyr::clearZBuffer | ( | void |  | ) | `[private]`

Loescht den Z-Buffer.

void Zephyr::animate | ( | void |  | ) | `[private]`

Animiert alle scrollbaren Texturen.

void Zephyr::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 Zephyr::paintZone | ( |  | ) | `[private]`

Render alle Tiles aus der Zone.

void Zephyr::paint2D | ( | int | zoneNr,
|  | Frustum & | frustum |
| ) |  |  | `[private]`

Rendert Partikel, Sprites, etc.

Parameter:

  | zoneNr |
  | frustum |

void Zephyr::paintSkyBox | ( |  | ) | `[private]`

Rendert die SkyBox.

void Zephyr::paintSkyBox_old | ( |  | ) | `[private]`

Rendert die SkyBox.

void Zephyr::sortBack2Front | ( |  | ) | `[private]`

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

void Zephyr::solveZConflicts | ( | void |  | ) | `[private]`

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

void Zephyr::clearPlane | ( |  | ) | `[private]`

Loescht die Canvas (kann aus Performanzgruenden entfallen).

## Dokumentation der Datenelemente

Zephyr * Zephyr::_instance = 0`[static, private]`

bool Zephyr::m_drawInfo`[private]`

bool Zephyr::m_usePortalFrustum`[private]`

bool Zephyr::m_rendering`[private]`

Timer Zephyr::m_timer`[private]`

double Zephyr::m_frameRate`[private]`

int Zephyr::m_partikelCount`[private]`

Map* Zephyr::m_map`[private]`

Camera* Zephyr::m_camera`[private]`

EngineIO* Zephyr::m_engineIO`[private]`

Light* Zephyr::m_light`[private]`

Frustum* Zephyr::m_frustum`[private]`

TextureMapper* Zephyr::m_tm`[private]`

SkyBox* Zephyr::m_skyBox`[private]`

AnimationPool* Zephyr::m_animationPool`[private]`

PartikelManager* Zephyr::m_partikelManager`[private]`

SpriteMapper* Zephyr::m_spriteMapper`[private]`

Charset* Zephyr::m_charset`[private]`

SurfaceCache* Zephyr::m_surfaceCache`[private]`

int Zephyr::m_height`[private]`

int Zephyr::m_width`[private]`

BYTE* Zephyr::m_PlanePixels`[private]`

float* Zephyr::m_ZBuffer`[private]`

Vec Zephyr::m_camdir`[private]`

Vec Zephyr::m_campos`[private]`

Matrix Zephyr::m_matTranslate`[private]`

Matrix Zephyr::m_matRotate`[private]`

Matrix Zephyr::m_matAnimate`[private]`

bool Zephyr::m_isRendererInitialized`[private]`

std::vector<Tile*> Zephyr::m_tileList`[private]`

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

- D:/Project/engine3d/cplusplus/src/scene3d/Zephyr.h
- D:/Project/engine3d/cplusplus/src/scene3d/Zephyr.cpp