# 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:

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
Vertex * | m_vertexOrg
Vertex * | m_vertex
int | m_maxFC
Vertex * | m_vFC
float * | m_x
float * | m_y
float * | m_u
float * | m_v
int | m_maxTri
Triangle * | m_tri
float | m_ambientLight
float | m_directionalLight
LightMap * | m_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

enum Tile::TILE_TYP

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

long Tile::m_sid

int Tile::m_typ

int Tile::m_textureID

char Tile::m_name[100]

int Tile::m_zoneTHIS

int Tile::m_zoneOTHER

int Tile::m_scrollFlag

int Tile::m_animationID

float Tile::m_d

int Tile::m_numVertices

Vertex* Tile::m_vertexOrg

Vertex* Tile::m_vertex

int Tile::m_numClipVertices`[private]`

int Tile::m_maxFC

Vertex* Tile::m_vFC

float* Tile::m_x

float* Tile::m_y

float* Tile::m_u

float* Tile::m_v

int Tile::m_numTriangles`[private]`

int Tile::m_maxTri

Triangle* Tile::m_tri

float Tile::m_ambientLight

float Tile::m_directionalLight

LightMap* Tile::m_lightMap

float Tile::m_minXDist2D

float Tile::m_maxXDist2D

float Tile::m_minYDist2D

float Tile::m_maxYDist2D

float Tile::m_minXDist3D

float Tile::m_maxXDist3D

float Tile::m_minYDist3D

float Tile::m_maxYDist3D

float Tile::m_minZDist3D

float Tile::m_maxZDist3D

bool Tile::m_hasLightMapGrid

BYTE Tile::m_lightMapGrid[33][33]

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

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