#include <Frustum.h>
Öffentliche Methoden | |
| Frustum () | |
| Konstruktor. | |
| Frustum (int width, int height) | |
| Konstruktor. | |
| void | init () |
| Initialisiert das Frustum. | |
| void | set (Tile &tile) |
| Erzeugt aus den Geraden einer geclippten Tile (typ Tile.PORTAL) die Planes. | |
| float | getOriginDist () |
| Getter fuer die Distanz zum Ursprung. | |
| void | clip (Tile &tile) |
| Die Tile wird gegen das Frustum geclipped. Zuerst werden die orginal Vertices in die Clipp-Liste uebertragen. Anschliessend wird gegen alle Planes des Frustums geclippt, sodass zum Schluss das 'eingepasste' Polygon in der Clipp-Liste uebrig bleibt. | |
| bool | inside (Tile &tile) |
| Testet, ob eine Tile im Frustum liegt oder schneidet. | |
| bool | inside (Partikel &partikel) |
| Testet, ob ein Partikel im Frustum liegt. | |
| void | dump () |
| Obligatorische Dump-Methode fuer Debugzwecke. | |
| virtual | ~Frustum () |
| Destruktor. | |
Öffentliche Attribute | |
| int | NearPlaneHeight |
| int | NearPlaneWidth |
| int | NearFarDist |
| int | NearPlaneDist |
| int | FarPlaneDist |
| Vec | vEnd |
| Vec | Origin |
| Vec | OriginPlaneLR |
| Vec | OriginPlaneUR |
| Vec | OriginPlaneLL |
| Vec | OriginPlaneUL |
| Vec | PlaneDir |
| Vec | NearPlaneLR |
| Vec | NearPlaneUR |
| Vec | NearPlaneLL |
| Vec | NearPlaneUL |
| Vec | FarPlaneLR |
| Vec | FarPlaneUR |
| Vec | FarPlaneLL |
| Vec | FarPlaneUL |
Private Typen | |
| enum | PLANE_SIDE { PLANE_TOP = 0, PLANE_RIGHT = 1, PLANE_BOTTOM = 2, PLANE_LEFT = 3 } |
Private Methoden | |
| bool | inside (Vec &v) |
| Testet, ob ein Punkt im Frustum Liegt. | |
| bool | intersects (Line &line) |
| Testet, ob eine Line das Frustum schneidet. | |
Private Attribute | |
| int | viewAngle |
| Vec | vOrigin |
| float | OriginDist |
| int | m_usedSidePlanes |
| Plane * | m_sidePlanes |
| Plane | OriginPlane |
| Plane | NearPlane |
| Plane | FarPlane |
Statische private Attribute | |
| static int | SIDE_PLANES = 10 |
Bem.: Das Frustum der Camera hat vier Seiten, weil es den Sichtbereich des Betrachters gegen den Bildschirm abgrenzt. Wenn aber der Betrachter durch ein Portal schaut, koennen mehr als vier Frustumseiten existieren, weil das Portalfrustum voher gegen das Frustums des Betrachters geclipped wird.
enum Frustum::PLANE_SIDE [private] |
| Frustum::Frustum | ( | ) |
Konstruktor.
| Frustum::Frustum | ( | int | width, | |
| int | height | |||
| ) |
Konstruktor.
| width | Breite der Nearplane, bzw. des Bildschirmfensters | |
| height | Hoehe der Nearplane, bzw. des Bildschirmfensters |
| Frustum::~Frustum | ( | ) | [virtual] |
Destruktor.
| void Frustum::init | ( | ) |
Initialisiert das Frustum.
| void Frustum::set | ( | Tile & | tile | ) |
Erzeugt aus den Geraden einer geclippten Tile (typ Tile.PORTAL) die Planes.
| tile | Referenz auf die Tile |
| float Frustum::getOriginDist | ( | ) |
Getter fuer die Distanz zum Ursprung.
| void Frustum::clip | ( | Tile & | tile | ) |
| bool Frustum::inside | ( | Tile & | tile | ) |
| bool Frustum::inside | ( | Partikel & | partikel | ) |
| void Frustum::dump | ( | ) |
Obligatorische Dump-Methode fuer Debugzwecke.
| bool Frustum::inside | ( | Vec & | v | ) | [private] |
Testet, ob ein Punkt im Frustum Liegt.
| v | der Punkt |
| bool Frustum::intersects | ( | Line & | line | ) | [private] |
int Frustum::viewAngle [private] |
Vec Frustum::vOrigin [private] |
float Frustum::OriginDist [private] |
int Frustum::m_usedSidePlanes [private] |
int Frustum::SIDE_PLANES = 10 [static, private] |
Plane* Frustum::m_sidePlanes [private] |
Plane Frustum::OriginPlane [private] |
Plane Frustum::NearPlane [private] |
Plane Frustum::FarPlane [private] |
1.5.5