Tile Klassenreferenz

Die Tile ist eine Spezialisierung eines Polygons. Es beschreibt ein Rechteck im 3D-Raum. Der Tile ist eine Textur zugewiesen, die genau in diese vier Eckpunkte eingespannt ist. Sie wird im Texuremapper auf die Canvas projiziert. Mehr ...

#include <Tile.h>

Klassendiagramm für Tile:

Plane

Aufstellung aller Elemente

Öffentliche Typen

enum  TILE_TYP { FLOOR = 1, WALL = 2, PORTAL = 3 }

Öffentliche Methoden

void setLightMap (LightMap *lightMap)
 Registriert eine Lightmap fur diese Tile.
 Tile ()
 Default-Konstruktor.
 Tile (Vec &v0, Vec &v1, Vec &v2, Vec &v3, int typ, int zoneTHIS, int zoneOTHER, char *name)
 Konstruktor (wird nur von SkyBox benoetigt).
virtual ~Tile ()
 Destruktor.
void set (Tile &t)
 Setter-Methode.
int getZoneTHIS ()
 Getter fuer die Zone, zu der diese Tile gehoert.
int getZoneOTHER ()
 Getter fuer die angrenzende Zone (nur wenn diese Tile ein Portal ist).
void resetClipList ()
 Kopiere die Tilevertices in die Liste der ClippedVertices.
void resetVertices ()
 Setzt die Vertices wieder zurueck.
void reverseVertices ()
 Setzt die Vertices wieder zurueck.
void clip (Plane &p)
 Clipped die ClippedVertices gegen die Plane.
int getTyp ()
 Liefert den Typ zurueckClipped die ClippedVertices gegen die Plane.
bool intersect (Vec &v0, Vec &v1)
 Testet auf die naive Methode, ob die Gerade v0-->v1 die Tile schneidet Es wird die erste Seite der Tile als Gerade genommen und verschnitten.
void transform (Matrix &mat)
 Transformiert alle Vertices der Tile.
void project (float d)
 Projiziere die Raumkoordinaten auf die ViewPlane (2D).
void calcUV ()
 UV-Mapper: Berechnet zu jedem Vertex die UV-Werte. Diese Methode muss nur einmal fuer jede Tile (Polygon) aufgerufen werden. Alternativ koennen spaeter die UV-Werte von einem UV-Mapper importiert werden (ist aber noch nicht implementiert).
void calcTexelVertices ()
void triangulate ()
 Zerlegt das (geclippte) Polygon in Dreiecke.
void calcDistances (float d)
 Berechnet die min und max Distanz der Tile zum Ursprung zureck Dabei werden alle Vertices verglichen und die min/max. Distanz ermittelt Das Ergebnis wir jeweils in m_minDist und m_maxDist abgelegt.
int getScrollFlag (void)
 Getter fuer das Scrollflag.
void setScrollFlag (int scrollFlag)
 Setter fuer das Scrollflag.
void dump ()
 Obligatorische Dump-Methode.
void save (DataOutputStream &dataOut)
 Serialisiert das Tile-Objekt in den Outputstream.
void load (DataInputStream &dataIn)
 Liest das Tile-Objekt aus dem Inputstream.

Öffentliche Attribute

long m_sid
int m_typ
int m_textureID
char m_name [100]
int m_zoneTHIS
int m_zoneOTHER
int m_scrollFlag
int m_animationID
float m_d
int m_numVertices
Vertexm_vertexOrg
Vertexm_vertex
int m_maxFC
Vertexm_vFC
float * m_x
float * m_y
float * m_u
float * m_v
int m_maxTri
Trianglem_tri
float m_ambientLight
float m_directionalLight
LightMapm_lightMap
float m_minXDist2D
float m_maxXDist2D
float m_minYDist2D
float m_maxYDist2D
float m_minXDist3D
float m_maxXDist3D
float m_minYDist3D
float m_maxYDist3D
float m_minZDist3D
float m_maxZDist3D
bool m_hasLightMapGrid
BYTE m_lightMapGrid [33][33]

Private Methoden

void initialize ()
 Allgemeine Objekt-Initialisierung.

Private Attribute

int m_numClipVertices
int m_numTriangles


Ausführliche Beschreibung

Die Tile ist eine Spezialisierung eines Polygons. Es beschreibt ein Rechteck im 3D-Raum. Der Tile ist eine Textur zugewiesen, die genau in diese vier Eckpunkte eingespannt ist. Sie wird im Texuremapper auf die Canvas projiziert.

Dokumentation der Aufzählungstypen

Aufzählungswerte:
FLOOR 
WALL 
PORTAL 


Beschreibung der Konstruktoren und Destruktoren

Tile::Tile (  ) 

Default-Konstruktor.

Tile::Tile ( Vec v0,
Vec v1,
Vec v2,
Vec v3,
int  typ,
int  zoneTHIS,
int  zoneOTHER,
char *  name 
)

Konstruktor (wird nur von SkyBox benoetigt).

Parameter:
v0 Vertex 1 'oben links'
v1 Vertex 2 'oben rechts'
v2 Vertex 3 'unten rechts'
v3 Vertex 4 'unten links'
typ FLOOR, WALL, PORTAL
zoneTHIS Nummer 'dieser' Zone
zoneOTHER Nummer der 'anderen' Zone
name Name der Tile

Tile::~Tile (  )  [virtual]

Destruktor.


Dokumentation der Elementfunktionen

void Tile::initialize (  )  [private]

Allgemeine Objekt-Initialisierung.

void Tile::setLightMap ( LightMap lightMap  ) 

Registriert eine Lightmap fur diese Tile.

Parameter:
lightMap Pointer auf die Lightmap

void Tile::set ( Tile t  ) 

Setter-Methode.

Parameter:
t Tile

int Tile::getZoneTHIS (  ) 

Getter fuer die Zone, zu der diese Tile gehoert.

Rückgabe:
zone, bzw. zoneNr

int Tile::getZoneOTHER (  ) 

Getter fuer die angrenzende Zone (nur wenn diese Tile ein Portal ist).

Rückgabe:
zone, bzw. zoneNr

void Tile::resetClipList (  ) 

Kopiere die Tilevertices in die Liste der ClippedVertices.

void Tile::resetVertices ( void   ) 

Setzt die Vertices wieder zurueck.

void Tile::reverseVertices ( void   ) 

Setzt die Vertices wieder zurueck.

void Tile::clip ( Plane p  ) 

Clipped die ClippedVertices gegen die Plane.

Parameter:
p die Plane gegen die diese Tile geclipped wird

int Tile::getTyp (  ) 

Liefert den Typ zurueckClipped die ClippedVertices gegen die Plane.

Rückgabe:
WALL, PORTAL, FLOOR

bool Tile::intersect ( Vec v0,
Vec v1 
)

Testet auf die naive Methode, ob die Gerade v0-->v1 die Tile schneidet Es wird die erste Seite der Tile als Gerade genommen und verschnitten.

Parameter:
v0 Geraden-Startpunkt
v1 Geraden-Endpunktpunkt
Rückgabe:
true-->Gerade schneidet die Tile, false-->Gerade schneidet nicht die Tile

void Tile::transform ( Matrix mat  ) 

Transformiert alle Vertices der Tile.

Parameter:
mat Transformationsmatrix

void Tile::project ( float  d  ) 

Projiziere die Raumkoordinaten auf die ViewPlane (2D).

Parameter:
d 

void Tile::calcUV ( void   ) 

UV-Mapper: Berechnet zu jedem Vertex die UV-Werte. Diese Methode muss nur einmal fuer jede Tile (Polygon) aufgerufen werden. Alternativ koennen spaeter die UV-Werte von einem UV-Mapper importiert werden (ist aber noch nicht implementiert).

void Tile::calcTexelVertices (  ) 

void Tile::triangulate (  ) 

Zerlegt das (geclippte) Polygon in Dreiecke.

void Tile::calcDistances ( float  d  ) 

Berechnet die min und max Distanz der Tile zum Ursprung zureck Dabei werden alle Vertices verglichen und die min/max. Distanz ermittelt Das Ergebnis wir jeweils in m_minDist und m_maxDist abgelegt.

Parameter:
d 

int Tile::getScrollFlag ( void   ) 

Getter fuer das Scrollflag.

Rückgabe:
0--> nicht scrollen, !=1 scrollen

void Tile::setScrollFlag ( int  scrollFlag  ) 

Setter fuer das Scrollflag.

Parameter:
scrollFlag 0--> nicht scrollen, !=1 scrollen

void Tile::dump (  ) 

Obligatorische Dump-Methode.

void Tile::save ( DataOutputStream dataOut  ) 

Serialisiert das Tile-Objekt in den Outputstream.

Parameter:
dataOut DataOutputStream
Ausnahmebehandlung:
IOException 

void Tile::load ( DataInputStream dataIn  ) 

Liest das Tile-Objekt aus dem Inputstream.

Parameter:
dataIn DataInputStream


Dokumentation der Datenelemente

char Tile::m_name[100]

float Tile::m_d

int Tile::m_numClipVertices [private]

float* Tile::m_x

float* Tile::m_y

float* Tile::m_u

float* Tile::m_v

int Tile::m_numTriangles [private]

BYTE Tile::m_lightMapGrid[33][33]


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