LightManager Klassenreferenz

#include <LightManager.h>

Aufstellung aller Elemente

Öffentliche Methoden

virtual ~LightManager ()
 Destruktor.
void addEnvironment (int zone, float ambient, float directionalMax, float pointMax)
 Fuegt ein LightEnvironment hinzu.
void setDirectionalLight (int zone, float dirX, float dirY, float dirZ)
 Fuegt DirectionalLight hinzu.
void addPointLight (int zone, float x, float y, float z)
 Fuegt ein PointLight hinzu.
void calcPointLight (Tile &tile, LightZone &le)
 Berechnet die Lichtintensitaet fuer eine Tile. Weil das Directional Light unabhaengig von der Cameraposition ist, muss die Lichtintensitaet pro Tile nur einmal berechnet werden. Das passiert sinnvoller weise nachden die Richtung der Lichtquelle gesetzt wurde, und bevor die Map zum ersten mal transformiert, bzw. gerendert wird.
void calcLightMapGrid (Tile &tile)
 Berechnet die Lichtintensitaet an den Stuetzstellen einer Tile. Hier werden das Ambient- Directional- und die PoinLight-Komponenten beruecksichtigt.
void calcLightMap (Tile &tile)
 Berechnet die Lichtintensitaet fuer eine Tile. Weil das Directional Light unabhaengig von der Cameraposition ist, muss die Lichtintensitaet pro Tile nur einmal berechnet werden. Das passiert sinnvoller weise nachden die Richtung der Lichtquelle gesetzt wurde, und bevor die Map zum ersten mal transformiert, bzw. gerendert wird.
void toggleAmbientLight ()
 Schaltet das Ambient Light ein oder aus.
void toggleDirectionalLight ()
 Schaltet das Directional Light ein oder aus.
void toggleLightMap ()
 Schaltet das Directional Light ein oder aus.
void stepGamma (bool up)
 Korrigiert den Gammawert.
bool isAmbientON ()
 Info ob AmbientLight ON oder OFF.
bool isDirectionalON ()
 Info ob DirectionalLight ON oder OFF.
bool isLightMapON ()
 Info ob LightMaps ON oder OFF.
void calcGamma (float gamma)
 Berechnet die Gamma-Rampe.
void load (DataInputStream &dataIn)
 Liest das Light-Objekt aus dem Inputstream.
void save (DataOutputStream dataOut)
 Serialisiert das Light-Objekt in den Outputstream.
void dump ()
 Obligatorische dump-Methode fuer Debugzwecke.

Öffentliche, statische Methoden

static LightManagergetInstance ()
 Liefert die Singleton-Instanz.

Öffentliche Attribute

std::vector< LightZone * > lightZoneList
std::vector< LightMap * > lightMaps
float m_gamma
int m_gammaR [256]
int m_gammaG [256]
int m_gammaB [256]

Geschützte Methoden

 LightManager ()
 Konstruktor, Singleton.

Private Methoden

void calcLightMapGrid (Tile &tile, LightZone &le)
 Berechnet die Lichtintensitaet an den Stuetzstellen (Grid) fuer eine Tile.
LightZonegetLightZone (int zone)
 Getter fuer das LightEnvironment zu einer Zone.
float calcDirectional (Tile &tile, LightZone &le)
 Berechnet die Lichtintensitaet fuer eine Tile. Weil das Directional Light unabhaengig von der Cameraposition ist, muss die Lichtintensitaet pro Tile nur einmal berechnet werden. Das passiert sinnvoller weise nachden die Richtung der Lichtquelle gesetzt wurde, und bevor die Map zum ersten mal transformiert, bzw. gerendert wird.
float calcLPs (std::vector< LightPoint * > &lightPoints, float x, float y, float z, float pointMax)
 Berechnet zu einem Pixel die Lightpoint-Intensity.
BYTE biInterpolate (int q12, int q22, int q11, int q21, int px, int py)
 Bilineare interpolation.

Private Attribute

bool m_AmbientON
bool m_DirectionalON
bool m_LightMapON

Statische private Attribute

static LightManager_instance = 0


Beschreibung der Konstruktoren und Destruktoren

LightManager::LightManager (  )  [protected]

Konstruktor, Singleton.

LightManager::~LightManager (  )  [virtual]

Destruktor.


Dokumentation der Elementfunktionen

LightManager * LightManager::getInstance (  )  [static]

Liefert die Singleton-Instanz.

Rückgabe:
Pointer auf die Instanz

void LightManager::addEnvironment ( int  zone,
float  ambient,
float  directionalMax,
float  pointMax 
)

Fuegt ein LightEnvironment hinzu.

Parameter:
zone die zone fuer die diese Parameter gelten
ambient Wert fuer das ambiente Licht (= const)
directionalMax Maximalwert fuer direktes Licht
pointMax Maximalwert fuer Punktlicht

void LightManager::setDirectionalLight ( int  zone,
float  dirX,
float  dirY,
float  dirZ 
)

Fuegt DirectionalLight hinzu.

Parameter:
zone zone-Nr, bzw. zone-ID
dirX X-Richtungskomponente fuer das Direktional Light
dirY Y-Richtungskomponente fuer das Direktional Light
dirZ Z-Richtungskomponente fuer das Direktional Light

void LightManager::addPointLight ( int  zone,
float  x,
float  y,
float  z 
)

Fuegt ein PointLight hinzu.

Parameter:
zone Zonen-Nr, bzw. Zonen-ID
x X-Koordinate fuer das Punktlicht
y Y-Koordinate fuer das Punktlicht
z Z-Koordinate fuer das Punktlicht

void LightManager::calcPointLight ( Tile tile,
LightZone le 
)

Berechnet die Lichtintensitaet fuer eine Tile. Weil das Directional Light unabhaengig von der Cameraposition ist, muss die Lichtintensitaet pro Tile nur einmal berechnet werden. Das passiert sinnvoller weise nachden die Richtung der Lichtquelle gesetzt wurde, und bevor die Map zum ersten mal transformiert, bzw. gerendert wird.

Parameter:
tile die Tile welche das Licht reflektiert
le LightEnvironment

void LightManager::calcLightMapGrid ( Tile tile  ) 

Berechnet die Lichtintensitaet an den Stuetzstellen einer Tile. Hier werden das Ambient- Directional- und die PoinLight-Komponenten beruecksichtigt.

Parameter:
tile die Tile welche das Licht reflektiert

void LightManager::calcLightMap ( Tile tile  ) 

Berechnet die Lichtintensitaet fuer eine Tile. Weil das Directional Light unabhaengig von der Cameraposition ist, muss die Lichtintensitaet pro Tile nur einmal berechnet werden. Das passiert sinnvoller weise nachden die Richtung der Lichtquelle gesetzt wurde, und bevor die Map zum ersten mal transformiert, bzw. gerendert wird.

Parameter:
tile die Tile welche das Licht reflektiert

void LightManager::toggleAmbientLight (  ) 

Schaltet das Ambient Light ein oder aus.

void LightManager::toggleDirectionalLight (  ) 

Schaltet das Directional Light ein oder aus.

void LightManager::toggleLightMap (  ) 

Schaltet das Directional Light ein oder aus.

void LightManager::stepGamma ( bool  up  ) 

Korrigiert den Gammawert.

Parameter:
up true, false

bool LightManager::isAmbientON (  ) 

Info ob AmbientLight ON oder OFF.

Rückgabe:
true->ON, false-->OFF

bool LightManager::isDirectionalON (  ) 

Info ob DirectionalLight ON oder OFF.

Rückgabe:
true->ON, false-->OFF

bool LightManager::isLightMapON (  ) 

Info ob LightMaps ON oder OFF.

Rückgabe:
true->ON, false-->OFF

void LightManager::calcGamma ( float  gamma  ) 

Berechnet die Gamma-Rampe.

Parameter:
gamma 

void LightManager::load ( DataInputStream dataIn  ) 

Liest das Light-Objekt aus dem Inputstream.

Parameter:
dataIn DataInputStream

void LightManager::save ( DataOutputStream  dataOut  ) 

Serialisiert das Light-Objekt in den Outputstream.

Parameter:
dataOut DataOutputStream
Ausnahmebehandlung:
IOException 

void LightManager::dump (  ) 

Obligatorische dump-Methode fuer Debugzwecke.

void LightManager::calcLightMapGrid ( Tile tile,
LightZone le 
) [private]

Berechnet die Lichtintensitaet an den Stuetzstellen (Grid) fuer eine Tile.

Parameter:
tile die Tile welche das Licht reflektiert
le LightEnvironment

LightZone * LightManager::getLightZone ( int  zone  )  [private]

Getter fuer das LightEnvironment zu einer Zone.

Parameter:
zone Zonen-Nr, bzw Zonen-ID
Rückgabe:
Pointer auf das LightEnvironment

float LightManager::calcDirectional ( Tile tile,
LightZone le 
) [private]

Berechnet die Lichtintensitaet fuer eine Tile. Weil das Directional Light unabhaengig von der Cameraposition ist, muss die Lichtintensitaet pro Tile nur einmal berechnet werden. Das passiert sinnvoller weise nachden die Richtung der Lichtquelle gesetzt wurde, und bevor die Map zum ersten mal transformiert, bzw. gerendert wird.

Parameter:
tile die Tile welche das Licht reflektiert
le LightEnvironment

float LightManager::calcLPs ( std::vector< LightPoint * > &  lightPoints,
float  x,
float  y,
float  z,
float  pointMax 
) [private]

Berechnet zu einem Pixel die Lightpoint-Intensity.

Parameter:
lightPoints Vector mit allen Punktlichtern
x 
y 
z 
pointMax 

BYTE LightManager::biInterpolate ( int  q12,
int  q22,
int  q11,
int  q21,
int  x,
int  y 
) [private]

Bilineare interpolation.

Parameter:
q12 
q22 
q11 
q21 
q21 
x 
y 


Dokumentation der Datenelemente

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

bool LightManager::m_AmbientON [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