Animation | Zustandklasse fuer eine Animation |
AnimationManager | AnimationManager |
AStep | |
Camera | Der Player blickt in der 3D-Raum durch eine (imaginaere) Kamera, die sich an der Spitze des Frustums befindet. Ueber Tastatur und Maus wird die Kamera im Raum bewegt |
Canvas3D | Schnittstelle zur Render-Engine. Beinhaltet OS-spezifisches Sourcecode |
DataInputStream | Wrapperklasse zum lesen von Daten aus einer Binaerdatei. Die Binaerdatei wird aus einer Java-Applikation heraus geschrieben. Daher sind einige Besonderheiten bzgl. der unterschiedlichen Ablage von Variablen zu beachten (Stichwort 'Byteorder' von Integers, Floats und Doubles) |
DataOutputStream | Allgemeine Klasse fuer einen Streamwriter |
DefHashKey | |
Engine | Die Hauptklasse der 3D Engine Dieser Klasse beinhaltet ALLE Methoden, die fuer die Nutzung der Engine benoetigt werden |
EngineIO | EngineIO |
Frustum | Das Frustum beschreibt typischerweise den Sichtbereich der Kamera. Es ist als Pyramidenstumpf mit vier Seiten, der Nearplane (Deckfläche) und der Farplane(Grundfläche). Die Kamera befindet sich an der Pyramidenspitze. Die Nearplane repräsentiert die Bildschirmflächen, während die Farplane den Sichtbereich in der Ferne begrenzt |
Image | Generische Klasse fuer Images, Bitmaps |
LightMap | LightMap |
LightPoint | Klasse fuer ein Punktlicht |
Line | Klasse einer Line |
Logging | Logging-Klasse als Singleton |
Map | Container fuer die Map |
Material | Container fuer ein Material |
MaterialManager | Container fuer alle Materialien |
Matrix | Matrixklasse |
Object2D | Beschreibt ein rechteckiges 2D-Objekt im 3D-Raum (typ. Sprites, Partikel...) |
Object3D | |
Partikel | Partikel werden fuer die Darstellung von Feuer, Rauch, Funken, Regen usw. verwendet. Typ. wird ein Partikel durch ein 2D-Objekt repraesentiert, dem eine semitransparente Bitmap (hier Sprite genannt) fuer die Darstellung zugeordnet ist. Partikel koennen sich bewegen oder auch stationaer zein (Blinklichter). Sie haben eine Emitter, einen Lebenszyklus und noch ein paar weitere Attribute. Um 'realistische' Bewegungsablaeufe zu simulieren, wird stark mit Zufallswerten gearbeitet |
PartikelManager | Muesste eigentlich PartikelSystemManger heissen. Es verwaltet alle Partikelsysteme und alle Sprites, die fuer die Darstellung der einzelnen Partikel gebraucht werden |
PartikelSystem | Ein Partikelsystem beschreibt das Verhalten von Partikeln, die zu diesem System gehoeren |
Plane | Plane |
Polygon | Polygon |
Renderer | Die Hauptklasse der Renderer 3D Engine Dieser Klasse beinhaltet ALLE Methoden, die fuer die Nutzung der Engine benoetigt werden |
SkyBox | SkyBox Klasse |
Sprite | Sprites werden fuer Partikel verwendet. Eine Sprite ist wie eine Texture, nur einfacher gestrickt. Ausserdem sind die Pixel einer Sprite semitransparent |
SpriteMapper | Rendert die Sprites (2D-Objekte) auf die Canvas unter Beruecksichtigung der Smitransparenz |
Surface | Eine Surface (Oberflaeche) besteht aus Textur + Lightmap Die Datenablage erfolgt maximal performant fuer den TexturMapper --> RGB pro Pixel |
SurfaceCache | Der SurfaceCache ist ein Container fuer alle Surfaces, die in einem Frame gerendert werden müssen. Die Anzahl der Surfaces im Cache ist auf MAX_SURFACES begrenzt. Damit der Cache nicht ueberlaeuft, muessen ungenutzte Eintraege entfernt werden. Die Strategie sieht wie folgt aus: Jedes Surfaceobjekt besitzt einen Zaehler der in der Methode refresh() inkrementiert wird. Erreicht der Zaehler eine bestimmte Grenze (MAX_DROP), wird das Objekt aus dem Cache entfernt. Typ. wird refresh() nach jedem Frame einmal aufgerufen. Jeder Aufruf der Methode getSurface() setzt den Zaehler auf 0 zurueck. Wird ein Surfaceobjekt immer wieder fuer ein Frame verwendet, kann der Zaehler nicht die Grenze erreichen und wird damit auch nicht aus dem Cache entfernt. Diese Strategie minmiert dynamisch den Speicherbedarf. Nachteil: Bewegt sich die Kamera uber eine laengere Zeit nicht, werden alle nichtgenutzten Surfaces aus dem Cache entfernt. Wird nun die Kamera position veraendert (insbesondere durch Drehen) muessen alle neuen Surfaces in den Cache geladen werden. Das macht sich durch einen Einbruch in der Framerate bemerkbar (Bildruckler). Besser: Den Fuellstand des Caches immer voll ausnutzen. Erst wenn mehr 100% erreicht wurde, nicht genutzte Surfaces entfernen |
Text | Einfache Textklasse |
Text::TEXTLINE_DEF | |
TextMapper | TextMapper Klasse |
Texture | Eine Texture |
TextureMapper | Projiziert eine Texture aus dem 3D Raum in den 2D Raum |
Tile | 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 |
Timer | Allgemeine Klasse fuer einen hochaufloesenden Timer (Plattformabhaengig, siehe WIN32 Sections) |
Triangle | Triangle |
Trigger | Zeitgesteuerte Zustandsklasse |
Vec | 3D-Vektor (Linkshaendiges Koordinatensystem) |
Vertex | Vertex (Abgeleitet von einem Vec(tor) und um u,v Koordinaten erweitert) |
Zone | Container-Klasse fuer alle Tiles die zu einer Zone gehoeren |