Properties:
**************************************************************************
* \class Canvas3D
\brief Schnittstelle zur Render-Engine.
Beinhaltet OS-spezifische Unterscheidungen
****************************************************************************
Declaration :
Artifact : Canvas3D
Relation m_engine (<unidirectional association>) |
Declaration :
Attribute m_widthCanvas |
Declaration :
Attribute m_heightCanvas |
Declaration :
Attribute m_height |
Declaration :
Attribute m_width |
Declaration :
Attribute m_startX |
Declaration :
Attribute m_startY |
Declaration :
Attribute m_pDib |
Declaration :
Attribute m_hdc |
Declaration :
Attribute m_pDiData |
Declaration :
Operation getInstance |
Declaration :
Operation Canvas3D |
Declaration :
Operation paintBltBit |
Declaration :
Operation paintCanvas |
Declaration :
Operation createImage |
Declaration :
Operation InitBitmap |
Declaration :
Operation flipImage |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation paint |
Declaration :
Operation paint |
Declaration :
Operation init |
Declaration :
Operation initialize |
Declaration :
Operation renderFrame |
Declaration :
Operation inputKey |
Declaration :
Operation getFrameRate |
Declaration :
Operation getTilesPerFrame |
Declaration :
Operation getPartikelsPerFrame |
Declaration :
Operation ~Canvas3D |
Declaration :
All public operations : getFrameRate , getInstance , getPartikelsPerFrame , getTilesPerFrame , init , initialize , inputKey , paint , paint , renderFrame
**************************************************************************
* \class Engine
\brief Die Hauptklasse der 3D Engine
Dieser Klasse beinhaltet ALLE Methoden, die fuer die Nutzung
der Engine benoetigt werden.
****************************************************************************
Declaration :
Artifact : Engine
Operation getInstance |
Declaration :
Operation Engine |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation ~Engine |
Declaration :
Attribute m_drawInfo |
Declaration :
Attribute m_usePortalFrustum |
Declaration :
Attribute m_rendering |
Declaration :
Relation m_timer (<directional composition>) |
Declaration :
Attribute m_frameRate |
Declaration :
Attribute m_partikelCount |
Declaration :
Relation m_map (<unidirectional association>) |
Declaration :
Relation m_camera (<unidirectional association>) |
Declaration :
Relation m_engineIO (<unidirectional association>) |
Declaration :
Relation m_lightManager (<unidirectional association>) |
Declaration :
Relation m_frustum (<unidirectional association>) |
Declaration :
Relation m_skyBox (<unidirectional association>) |
Declaration :
Relation m_animationManager (<unidirectional association>) |
Declaration :
Relation m_partikelManager (<unidirectional association>) |
Declaration :
Relation m_surfaceCache (<unidirectional association>) |
Declaration :
Relation m_renderer (<unidirectional association>) |
Declaration :
Attribute m_height |
Declaration :
Attribute m_width |
Declaration :
Relation m_camdir (<directional composition>) |
Declaration :
Relation m_campos (<directional composition>) |
Declaration :
Relation m_matTranslate (<directional composition>) |
Declaration :
Relation m_matRotate (<directional composition>) |
Declaration :
Relation m_matAnimate (<directional composition>) |
Declaration :
Attribute m_isRendererInitialized |
Declaration :
Relation m_tileList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Relation m_partikelList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Relation m_text (<unidirectional association>) |
Declaration :
Relation m_textList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Operation initRenderer |
Declaration :
Operation renderFrame |
Declaration :
Operation saveAsMapfile |
Declaration :
Operation loadMapfile |
Declaration :
Operation calcAnimation |
Declaration :
Operation calcLightMapGrid |
Declaration :
Operation calcLightMap |
Declaration :
Operation inputKey |
Declaration :
Operation getFrameRate |
Declaration :
Operation getTilesPerFrame |
Declaration :
Operation getPartikelsPerFrame |
Declaration :
Operation animate |
Declaration :
Operation culling |
Declaration :
Operation paintZone |
Declaration :
Operation paint2D |
Declaration :
Operation paintSkyBox |
Declaration :
Operation sortBack2Front |
Declaration :
Operation solveZConflicts |
Declaration :
All public operations : calcAnimation , calcLightMap , calcLightMapGrid , getFrameRate , getInstance , getPartikelsPerFrame , getTilesPerFrame , initRenderer , inputKey , loadMapfile , renderFrame , saveAsMapfile
**************************************************************************
* \class Camera
\brief
Repraesentiert die Camera, bzw. das Auge des Spielers das in der Spitze
des Frustums sitzt. Konkret wird die Camera in der Map bewegt. Nach
einem 'Move' wird die Transformationsmatrix der Camera bezogen zum zum Ursprung
berechnet um anschliessend die Weltobjekte in das Frustum zu transformieren.
Ausserdem testet die Camera vor jedem Move, ob der Spieler gegen eine Wand
gerannt ist:
Bei den Kollsisionsabfragen wird aus dem aktuellen Standpunkt und dem naechsten
Standpunkt ein Strahl ermittelt. Schneidet dieser Strahl eine Tile, so hat eine
Kollision stattgefunden. Die Kamera darf sich dann NICHT zu diesem neuen Standpunkt
bewegen (man koennte dann ja durch Waende gehen) Um eine rel. langsame und weiche
Bewegung im Raum zu erreichen, ist die Distanz pro Step recht kurz. Daraus folgt,
das die Camera sich auch sehr nah an eine WALL annaehern kann, was aber zu Render-
bzw. Clippingproblemen fuehrt. Deshalb wird fuer die Collisionsabfrage eine
groessere Distanz gefordert. Dazu gibt es hier die m_vecPosColl, m_vecDirColl und
m_stepColl. Fuer die Kollision gegen ein PORTAL muss allerdings wieder die normale
Schrittweite genommen werden, da sonst ein Portaluebergang zu frueh angezeigt wird,
obwohl die Camera sich mit dem naechsten Step noch in der alten Zone befindet.
MOVE_FORWARD MOVE_BACKWARD MOVE_STOP
MOVE_DOWN MOVE_UP MOVE_STOP
STRAFE_LEFT STRAFE_RIGHT STRAFE_STOP
ROTATE_LEFT ROTATE_RIGHT ROTATE_STOP
****************************************************************************
Declaration :
Artifact : Camera
Operation getInstance |
Declaration :
Operation Camera |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation ~Camera |
Declaration :
Declaration :
nested in Camera
Stereotype: enum
Items :
Relation m_moving (<directional composition>) |
FORWARD, BACKWARD, STOP
Declaration :
Relation m_lifting (<directional composition>) |
UP, DOWN, STOP
Declaration :
Relation m_strafing (<directional composition>) |
LEFT, RIGHT, STOP
Declaration :
Relation m_rotating (<directional composition>) |
LEFT, RIGHT, STOP
Declaration :
Relation m_vecPos (<directional composition>) |
Standpunkt der Kamera
Declaration :
Relation m_vecDir (<directional composition>) |
Blickrichtung der Kamera (Richtungsvektor mit einem Betrag = 1)
Declaration :
Relation m_vecPosNext (<directional composition>) |
neuer Standpunkt der Kamera
Declaration :
Relation m_vecDirNext (<directional composition>) |
neue Blickrichtung der Kamera (Richtungsvektor mit einem Betrag = 1)
Declaration :
Relation m_vecPosColl (<directional composition>) |
Declaration :
Relation m_vecDirColl (<directional composition>) |
Declaration :
Attribute m_stepColl |
Kollisionsdistanz
Declaration :
Attribute m_stepAnim |
Declaration :
Attribute m_step |
Schrittweite
Declaration :
Attribute m_turn |
Drehwinkel
Declaration :
Attribute m_zone |
Declaration :
Attribute m_HOG |
Hoehe ueber Grund (typ TexturHeight / 2)
Declaration :
Attribute m_moverCount |
Declaration :
Attribute m_moverDeltaY |
Declaration :
Operation action |
Declaration :
Operation move |
Declaration :
Operation isMoving |
Declaration :
Operation lift |
Declaration :
Operation isLifting |
Declaration :
Operation strafe |
Declaration :
Operation isStrafing |
Declaration :
Operation rotate |
Declaration :
Operation isRotating |
Declaration :
Operation getZone |
Declaration :
Operation setZone |
Declaration :
Operation setPos |
Declaration :
Operation setDir |
Declaration :
Operation getPos |
Declaration :
Operation getDir |
Declaration :
Operation stepForward |
Declaration :
Operation stepBackward |
Declaration :
Operation stepStrafeRight |
Declaration :
Operation stepStrafeLeft |
Declaration :
Operation stepUp |
Declaration :
Operation stepDown |
Declaration :
Operation stepTurnRight |
Declaration :
Operation stepTurnLeft |
Declaration :
Operation aimUp |
Declaration :
Operation aimDown |
Declaration :
Operation incMove |
Declaration :
Operation collision |
Declaration :
Operation getLevel |
Declaration :
Operation dump |
Declaration :
Operation load |
Declaration :
Operation save |
Declaration :
All public operations : action , aimDown , aimUp , collision , dump , getDir , getInstance , getLevel , getPos , getZone , incMove , isLifting , isMoving , isRotating , isStrafing , lift , load , move , rotate , save , setDir , setPos , setZone , stepBackward , stepDown , stepForward , stepStrafeLeft , stepStrafeRight , stepTurnLeft , stepTurnRight , stepUp , strafe
**************************************************************************
* \class Map
\brief Container fuer die Map
****************************************************************************
Declaration :
Artifact : Map
Operation Map |
Declaration :
Relation zoneList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Relation _instance (<unidirectional association>) |
Declaration :
Attribute m_mapfile |
Declaration :
Operation getInstance |
Declaration :
Operation ~Map |
Declaration :
Operation calcAnimation |
Declaration :
Operation calcLightMapGrid |
Declaration :
Operation calcLightMap |
Declaration :
Operation dump |
Declaration :
Operation addTile |
Declaration :
All public operations : calcAnimation , calcLightMap , calcLightMapGrid , dump , getInstance
**************************************************************************
* \class EngineIO
\brief EngineIO
****************************************************************************
Declaration :
Artifact : EngineIO
Operation getInstance |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation EngineIO |
Declaration :
Operation ~EngineIO |
Declaration :
Relation m_map (<unidirectional association>) |
Declaration :
Relation m_materialManager (<unidirectional association>) |
Declaration :
Relation m_camera (<unidirectional association>) |
Declaration :
Relation m_lightManager (<unidirectional association>) |
Declaration :
Relation m_skybox (<unidirectional association>) |
Declaration :
Relation m_animationManager (<unidirectional association>) |
Declaration :
Relation m_partikelManager (<unidirectional association>) |
Declaration :
Relation m_textMapper (<unidirectional association>) |
Declaration :
Operation save |
Declaration :
Operation load |
Declaration :
All public operations : getInstance , load , save
**************************************************************************
* \class Frustum
\brief
Das Frustum ist der Sichtpyramide mit (normalerweise) vier Seiten, an deren
Spitze sich das Auge des Betrachters, bzw. die Camera befindet.
Die Frustumspitze ist fest verankert in 0,0,0. Wenn also die Camera, bzw.
der Spieler den Standort aendert, wird die Welt in das Frustum hineinbewegt.
Das ist nicht optimal. Performanter waere es, das Frustum mit der Camera zu
bewegen. Auf der anderen Seite vereinfacht es einige Algorithmen, wenn der
Ursprung in 0,0,0 sitzt.
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.
****************************************************************************
Declaration :
Artifact : Frustum
Attribute viewAngle |
Declaration :
Attribute NearPlaneHeight |
Declaration :
Attribute NearPlaneWidth |
Declaration :
Attribute NearFarDist |
Declaration :
Attribute NearPlaneDist |
Declaration :
Attribute FarPlaneDist |
Declaration :
Relation vOrigin (<directional composition>) |
Declaration :
Relation vEnd (<directional composition>) |
Declaration :
Relation Origin (<directional composition>) |
Declaration :
Attribute OriginDist |
Declaration :
Relation OriginPlaneLR (<directional composition>) |
Eckpunkt Lower Right der NearPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation OriginPlaneUR (<directional composition>) |
Eckpunkt Upper Right der NearPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation OriginPlaneLL (<directional composition>) |
Eckpunkt Lower Left der NearPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation OriginPlaneUL (<directional composition>) |
Eckpunkt Upper Left der NearPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation PlaneDir (<directional composition>) |
Declaration :
Relation NearPlaneLR (<directional composition>) |
Eckpunkt Lower Right der NearPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation NearPlaneUR (<directional composition>) |
Eckpunkt Upper Right der NearPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation NearPlaneLL (<directional composition>) |
Eckpunkt Lower Left der NearPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation NearPlaneUL (<directional composition>) |
Eckpunkt Upper Left der NearPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation FarPlaneLR (<directional composition>) |
Eckpunkt Lower Right der FarPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation FarPlaneUR (<directional composition>) |
Eckpunkt Upper Right der FarPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation FarPlaneLL (<directional composition>) |
Eckpunkt Lower Left der FarPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Relation FarPlaneUL (<directional composition>) |
Eckpunkt Upper Left der FarPlane (rel. zur Camerapositon im Ursprung)
Declaration :
Declaration :
nested in Frustum
Stereotype: enum
Items :
Attribute m_usedSidePlanes |
Declaration :
Attribute SIDE_PLANES |
Declaration :
Relation m_sidePlanes (<unidirectional association>) |
TODO: 10 == SIDE_PLANES
Declaration :
Relation OriginPlane (<directional composition>) |
Declaration :
Relation NearPlane (<directional composition>) |
Declaration :
Relation FarPlane (<directional composition>) |
Declaration :
Operation Frustum |
Declaration :
Operation Frustum |
Declaration :
Operation init |
Declaration :
Operation set |
Declaration :
Operation getOriginDist |
Declaration :
Operation clip |
Declaration :
Operation inside |
Declaration :
Operation inside |
Declaration :
Operation dump |
Declaration :
Operation ~Frustum |
Declaration :
Operation inside |
Declaration :
Operation intersects |
Declaration :
All public operations : clip , dump , getOriginDist , init , inside , inside , set
**************************************************************************
* \class Zone
\brief Container-Klasse fuer alle Tiles die zu einer Zone gehoeren
****************************************************************************
Declaration :
Artifact : Zone
Operation Zone |
Declaration :
Operation Zone |
Declaration :
Operation ~Zone |
Declaration :
Operation addTile |
Declaration :
Operation load |
Declaration :
Operation save |
Declaration :
Relation tileList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Attribute m_zone |
Declaration :
Artifact Camera |
Stereotype: source
Artifact source associated with : Camera
Artifact Engine |
Stereotype: source
Artifact source associated with : Engine
Artifact EngineIO |
Stereotype: source
Artifact source associated with : EngineIO
Artifact Frustum |
Stereotype: source
Artifact source associated with : Frustum
Artifact Map |
Stereotype: source
Artifact source associated with : Map
Artifact Zone |
Stereotype: source
Artifact source associated with : Zone
**************************************************************************
* \class Vec
\brief 3D-Vektor (Linkshaendiges Koordinatensystem)
Kamerasicht: x zeigt nach RECHTS
y zeigt nach OBEN
z zeigt vom Betrachter weg (in die TIEFE)
Draufsicht auf die Map: x zeigt nach RECHTS (OSTEN)
y zeigt in die HOEHE (NORDEN)
z zeigt zum Betrachter (nach OBEN)
****************************************************************************
Declaration :
Directly inherited by : Vertex
Artifact : Vec
Attribute m_x |
Declaration :
Attribute m_y |
Declaration :
Attribute m_z |
Declaration :
Operation Vec |
Declaration :
Operation ~Vec |
Declaration :
Operation Vec |
Declaration :
Operation Vec |
Declaration :
Operation Vec |
Declaration :
Operation clear |
Declaration :
Operation set |
Declaration :
Operation set |
Declaration :
Operation add |
Declaration :
Operation sub |
Declaration :
Operation sub |
Declaration :
Operation mul |
Declaration :
Operation div |
Declaration :
Operation mul |
Declaration :
Operation length |
Declaration :
Operation dot |
Declaration :
Operation cross |
Declaration :
Operation getZ |
Declaration :
Operation angle |
Declaration :
Operation winkel |
Declaration :
Operation transform |
Declaration :
Operation normalize |
Declaration :
Operation negative |
Declaration :
Operation rotateX |
Declaration :
Operation rotateY |
Declaration :
Operation rotateZ |
Declaration :
Operation getWinkelY |
Declaration :
Operation dump |
Declaration :
All public operations : add , angle , clear , cross , div , dot , dump , getWinkelY , getZ , length , mul , mul , negative , normalize , rotateX , rotateY , rotateZ , set , set , sub , sub , transform , winkel
**************************************************************************
* \class Matrix
\brief Matrixklasse
****************************************************************************
Declaration :
Artifact : Matrix
Relation m_arc (<unidirectional association>) |
Declaration :
Operation Matrix |
Declaration :
Operation ~Matrix |
Declaration :
Operation clear |
Declaration :
Operation set |
Declaration :
Operation setInv |
Declaration :
Operation rotateX |
Declaration :
Operation rotateY |
Declaration :
Operation rotateZ |
Declaration :
Operation rotateXRad |
Declaration :
Operation rotateYRad |
Declaration :
Operation rotateZRad |
Declaration :
Operation translate |
Declaration :
Operation scale |
Declaration :
Operation dump |
Declaration :
All public operations : clear , dump , rotateX , rotateXRad , rotateY , rotateYRad , rotateZ , rotateZRad , scale , set , setInv , translate
**************************************************************************
* \class Plane
\brief Plane
****************************************************************************
Declaration :
Directly inherited by : Tile
Artifact : Plane
Operation Plane |
Declaration :
Operation ~Plane |
Declaration :
Declaration :
nested in Plane
Stereotype: enum
Items :
Relation m_N (<directional composition>) |
Normalenvektor zur Ebene
Declaration :
Relation m_P (<directional composition>) |
Punkt auf der Ebene
Declaration :
Attribute m_D |
Entfernung zum Ursprung
Declaration :
Attribute m_intersectLength |
Declaration :
Operation clear |
Declaration :
Operation set |
Declaration :
Operation check |
Declaration :
Operation intersect |
Declaration :
Operation getInterLegth |
Declaration :
Operation dump |
Declaration :
All public operations : check , clear , dump , getInterLegth , intersect , set
**************************************************************************
* \class Line
\brief Klasse einer Line
****************************************************************************
Declaration :
Artifact : Line
Operation Line |
Declaration :
Operation ~Line |
Declaration :
Relation m_S (<directional composition>) |
Startpunkt der Linie
Declaration :
Relation m_E (<directional composition>) |
Endpunkt der Linie
Declaration :
Relation m_V (<directional composition>) |
Richtungsvektor der Linie
Declaration :
Operation set |
Declaration :
Operation getLength |
Declaration :
Operation getEndPoint |
Declaration :
Operation getEndPoint2 |
Declaration :
Operation getEndPoint |
Declaration :
Operation dump |
Declaration :
All public operations : dump , getEndPoint , getEndPoint , getEndPoint2 , getLength , set
**************************************************************************
* \class TArc
\brief TArc
****************************************************************************
Declaration :
Artifact : TArc
Operation getInstance |
Declaration :
Operation TArc |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation ~TArc |
Declaration :
Attribute arc360 |
Declaration :
Attribute arc180 |
Declaration :
Attribute m_sin |
Declaration :
Attribute m_cos |
Declaration :
Attribute m_tan |
Declaration :
Operation getSin |
Declaration :
Operation getCos |
Declaration :
Operation getTan |
Declaration :
Operation norm |
Declaration :
Operation grad2rad |
Declaration :
All public operations : getCos , getInstance , getSin , getTan , norm
**************************************************************************
* \class Triangle
\brief Triangle
****************************************************************************
Declaration :
Artifact : Triangle
Relation m_p0 (<directional composition>) |
Eckpunkte des Dreiecks im 3D-Raum
Declaration :
Relation m_p1 (<directional composition>) |
Declaration :
Relation m_p2 (<directional composition>) |
Declaration :
Attribute x |
x0' (projiziert auf Plane)
Declaration :
Attribute y |
y0' (projiziert auf Plane)
Declaration :
Attribute z |
z0-Koordinate (im Raum)
Declaration :
Attribute c |
c0 ==> 1/z0-Koordinate (im Raum)
Declaration :
Attribute uc |
u * c0 (u Texelkoordinate in x-Richtung)
Declaration :
Attribute vc |
v * c0 (v Texelkoordinate in y-Richtung)
Declaration :
Attribute m_u0 |
Eckpunkte der Texture
Declaration :
Attribute m_v0 |
Declaration :
Attribute m_u1 |
Declaration :
Attribute m_v1 |
Declaration :
Attribute m_u2 |
Declaration :
Attribute m_v2 |
Declaration :
Attribute m_xmax |
Declaration :
Attribute m_ymax |
Declaration :
Attribute m_alpha |
Declaration :
Attribute m_sid |
Declaration :
Attribute m_textureID |
Declaration :
Relation m_tex (<unidirectional association>) |
Declaration :
Attribute m_ambientLight |
Declaration :
Attribute m_directionalLight |
Declaration :
Relation m_lightMap (<unidirectional association>) |
Declaration :
Operation Triangle |
Declaration :
Operation ~Triangle |
Declaration :
Operation set |
Declaration :
Operation dump |
Declaration :
All public operations : dump , set
**************************************************************************
* \class Vertex
\brief Vertex (Abgeleitet von einem Vec(tor) und um u,v Koordinaten erweitert)
****************************************************************************
Declaration :
Artifact : Vertex
Operation set |
Declaration :
Operation set |
Declaration :
Operation setUV |
JAVA ist hier besser !!!
Declaration :
Operation Vertex |
Declaration :
Operation ~Vertex |
Declaration :
Attribute m_u |
Declaration :
Attribute m_v |
Declaration :
All public operations : add , angle , clear , cross , div , dot , dump , getWinkelY , getZ , length , mul , mul , negative , normalize , rotateX , rotateY , rotateZ , set , set , set , set , setUV , sub , sub , transform , winkel
Artifact Line |
Stereotype: source
Artifact source associated with : Line
Artifact Matrix |
Stereotype: source
Artifact source associated with : Matrix
Artifact Plane |
Stereotype: source
Artifact source associated with : Plane
Artifact TArc |
Stereotype: source
Artifact source associated with : TArc
Artifact Triangle |
Stereotype: source
Artifact source associated with : Triangle
Artifact Vec |
Stereotype: source
Artifact source associated with : Vec
Artifact Vertex |
Stereotype: source
Artifact source associated with : Vertex
**************************************************************************
* \class DataInputStream
\brief 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)
****************************************************************************
Declaration :
Artifact : DataInputStream
Attribute p |
Declaration :
Operation DataInputStream |
Declaration :
Operation read |
Declaration :
Operation readInt |
Declaration :
Operation readDouble |
Declaration :
Operation close |
Declaration :
Operation ~DataInputStream |
Declaration :
All public operations : close , read , readDouble , readInt
**************************************************************************
* \class DataOutputStream
\brief DataOutputStream
****************************************************************************
Declaration :
Artifact : DataOutputStream
Attribute p |
Declaration :
Operation DataOutputStream |
Declaration :
Operation write |
Declaration :
Operation writeInt |
Declaration :
Operation writeDouble |
Declaration :
Operation close |
Declaration :
Operation ~DataOutputStream |
Declaration :
All public operations : close , write , writeDouble , writeInt
**************************************************************************
* \class Timer
\brief Allgemeine Klasse fuer einen hochaufloesenden Timer
(Plattformabhaengig, siehe WIN32 Sections)
****************************************************************************
Declaration :
Artifact : Timer
Operation Timer |
Declaration :
Operation ~Timer |
Declaration :
Operation start |
Declaration :
Operation end |
Declaration :
Attribute m_freq |
Declaration :
Attribute m_start |
Declaration :
Attribute m_stop |
Declaration :
All public operations : end , start
**************************************************************************
* \class Text
\brief Einfache Textklasse
****************************************************************************
Declaration :
Artifact : Text
Operation Text |
Declaration :
Operation Text |
Declaration :
Operation ~Text |
Declaration :
Operation set |
Declaration :
Attribute m_startX |
Declaration :
Attribute m_startY |
Declaration :
Attribute m_text |
Declaration :
Attribute m_len |
Declaration :
Operation init |
Declaration :
All public operations : set
**************************************************************************
* \class Logging
\brief Einfache Logging-Klasse (noch nicht wirklich implementiert)
****************************************************************************
Declaration :
Artifact : Logging
Operation Logging |
Declaration :
Operation Logging |
Declaration :
Operation ~Logging |
Declaration :
Attribute m_msg |
Declaration :
Operation info |
Declaration :
Operation debug |
Declaration :
Operation error |
Declaration :
Attribute m_logfile |
Declaration :
Operation write |
Declaration :
All public operations : debug , error , info
**************************************************************************
* \class Trigger
\brief Zeitgesteuerte Zustandsklasse
****************************************************************************
Declaration :
Artifact : Trigger
Operation Trigger |
Declaration :
Operation Trigger |
Declaration :
Operation ~Trigger |
Declaration :
Operation set |
Declaration :
Operation isTriggered |
Declaration :
Attribute m_triggerTime |
Declaration :
Attribute m_startTime |
Declaration :
All public operations : isTriggered , set
Artifact DataInputStream |
Stereotype: source
Artifact source associated with : DataInputStream
Artifact DataOutputStream |
Stereotype: source
Artifact source associated with : DataOutputStream
Artifact Logging |
Stereotype: source
Artifact source associated with : Logging
Artifact Text |
Stereotype: source
Artifact source associated with : Text
Artifact Timer |
Stereotype: source
Artifact source associated with : Timer
Artifact Trigger |
Stereotype: source
Artifact source associated with : Trigger
**************************************************************************
* \class Light
\brief Containerklasse fuer alle Lichtquellen
Es gibt folgende Arten von Lichtquellen:
- Ambient Light, Umgebungslicht:
Die Licht wird von der Umgebung reflektiert und erhellt den Raum ohne das
die Quelle ersichtlich ist (z.B. Tageslicht bei bedecktem Himmel).
Die Intensitaet bleibt ueber die Entfernung gleich.
- Directional Light (direktes Licht):
Die Quelle ist unendlich weit entfernt, so dass die Lichtstrahlen quasi
parallel zueinander in eine Richtung verlaufen. Dadurch wird zur
Beschreibung nur ein einfacher Richtungsvektor benoetigt.
Die Intensitaet bleibt ueber die Entfernung gleich.
Beispiel: Direkte Sonnenstrahlen.
- Point Light (Punktlicht):
Die Quelle hat eine Position. Die Lichtstahlen werden kugelfoermig von der
Lichtquelle abgestrahlt.
Die Intensitaet nimmt quadratisch mit der Entfernung ab
Beispiel: Eine offene Kerzenflamme
- Spot Light (Spot Light):
Die Lichtstrahlen werden von einem Ausgangspunkt in eine Richtung ausgesendet
Die Intensitaet nimmt quadratisch mit der Entfernung ab
Beispiel: Taschenlampe
Hier werden derzeit nur Ambient, Directional und Pointlight unterstuetzt
Diese Komponenten koennen fuer jede (Portal-)Zone einzeln eingestellt werden.
D.h. Die Klasse Light ist ein Container fuer eine Liste von 'LightZone'
Fuer jede (Portal-)Zone gibt es genau ein LightZone, welches die
zugehoerigen Lights (Ambient, Directional, Points) beinhaltet.
****************************************************************************
Declaration :
Artifact : LightManager
Operation getInstance |
Declaration :
Operation LightManager |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation ~LightManager |
Declaration :
Attribute m_AmbientON |
Flag fuer ambientes Licht An/Aus
Declaration :
Attribute m_DirectionalON |
Flag fuer directional Licht An/Aus
Declaration :
Attribute m_LightMapON |
Flag fuer LightMap An/Aus
Declaration :
Relation lightZoneList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Relation lightMaps (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Attribute m_gamma |
private oder public??
Declaration :
Attribute m_gammaR |
Declaration :
Attribute m_gammaG |
Declaration :
Attribute m_gammaB |
Declaration :
Operation addEnvironment |
Declaration :
Operation setDirectionalLight |
Declaration :
Operation addPointLight |
Declaration :
Operation calcPointLight |
Declaration :
Operation calcLightMapGrid |
Declaration :
Operation calcLightMap |
Declaration :
Operation toggleAmbientLight |
Declaration :
Operation toggleDirectionalLight |
Declaration :
Operation toggleLightMap |
Declaration :
Operation stepGamma |
Declaration :
Operation isAmbientON |
Declaration :
Operation isDirectionalON |
Declaration :
Operation isLightMapON |
Declaration :
Operation calcGamma |
Declaration :
Operation load |
Declaration :
Operation save |
Declaration :
Operation dump |
Declaration :
Operation calcLightMapGrid |
Declaration :
Operation getLightZone |
Declaration :
Operation calcDirectional |
Declaration :
Operation calcLPs |
Declaration :
Operation biInterpolate |
Declaration :
All public operations : addEnvironment , addPointLight , calcGamma , calcLightMap , calcLightMapGrid , calcPointLight , dump , getInstance , isAmbientON , isDirectionalON , isLightMapON , load , save , setDirectionalLight , stepGamma , toggleAmbientLight , toggleDirectionalLight , toggleLightMap
**************************************************************************
* \class LightZone
\brief Klasse fuer eine Zone:
Es gibt nur eine Lichtumgebung pro Zone
In einer Zone kann es nur ein Directional Light geben
Eine Zone kann beliebig viele PointLights enthalten
****************************************************************************
Declaration :
Artifact : LightZone
Attribute m_zone |
Declaration :
Attribute m_ambient |
Declaration :
Attribute m_directionalMax |
Declaration :
Attribute m_pointMax |
Declaration :
Relation m_dir (<directional composition>) |
Declaration :
Relation lightPointList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Operation LightZone |
Declaration :
Operation LightZone |
Declaration :
Operation ~LightZone |
Declaration :
Operation set |
Declaration :
Operation setDirectionalLight |
Declaration :
Operation addPointLight |
Declaration :
Operation getZone |
Declaration :
Operation getAmbient |
Declaration :
Operation getDirectionalMax |
Declaration :
Operation getPointMax |
Declaration :
Operation hasPointLights |
Declaration :
Operation dump |
Declaration :
Operation init |
Declaration :
All public operations : addPointLight , dump , getAmbient , getDirectionalMax , getPointMax , getZone , hasPointLights , set , setDirectionalLight
**************************************************************************
* \class LightMap
\brief LightMap
****************************************************************************
Declaration :
Artifact : LightMap
Attribute m_len |
Declaration :
Attribute m_width |
aka umax
Declaration :
Attribute m_height |
aka vmax
Declaration :
Attribute m_map |
Declaration :
Operation LightMap |
Declaration :
Operation ~LightMap |
Declaration :
Operation clear |
Declaration :
Operation getMax |
Declaration :
Operation set |
Declaration :
Operation dump |
Declaration :
All public operations : clear , dump , getMax , set
**************************************************************************
* \class LightPoint
\brief Klasse fuer ein Punktlicht
****************************************************************************
Declaration :
Artifact : LightPoint
Relation m_pos (<directional composition>) |
Declaration :
Attribute xs |
Declaration :
Attribute ys |
Declaration :
Attribute xe |
Declaration :
Attribute ye |
Declaration :
Attribute c |
Declaration :
Attribute a |
Declaration :
Operation LightPoint |
Declaration :
Operation LightPoint |
Declaration :
Operation ~LightPoint |
Declaration :
Operation set |
Declaration :
Operation calcParameters |
Declaration :
Operation calc |
Declaration :
Operation getXS |
Declaration :
Operation getYS |
Declaration :
Operation getXE |
Declaration :
Operation getYE |
Declaration :
Operation dump |
Declaration :
Operation dumpDiagram |
Declaration :
Operation init |
Declaration :
All public operations : calc , calcParameters , dump , dumpDiagram , getXE , getXS , getYE , getYS , set
Artifact LightManager |
Stereotype: source
Artifact source associated with : LightManager
Artifact LightMap |
Stereotype: source
Artifact source associated with : LightMap
Artifact LightPoint |
Stereotype: source
Artifact source associated with : LightPoint
Artifact LightZone |
Stereotype: source
Artifact source associated with : LightZone
**************************************************************************
* \class SkyBox
\brief SkyBox Klasse
****************************************************************************
Declaration :
Artifact : SkyBox
Operation getInstance |
Declaration :
Operation SkyBox |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation ~SkyBox |
Declaration :
Attribute TILE_COUNT |
= 6
Declaration :
Declaration :
nested in SkyBox
Stereotype: enum
Items :
Relation m_tiles (<unidirectional association>) |
Declaration :
Operation setZone |
Declaration :
Operation reset |
Declaration :
Operation test |
Declaration :
Operation test |
Declaration :
Operation setLeft |
Declaration :
Operation setFront |
Declaration :
Operation setDown |
Declaration :
Operation setTop |
Declaration :
Operation setRight |
Declaration :
Operation setBack |
Declaration :
Operation load |
Declaration :
Operation save |
Declaration :
Attribute m_zone |
Declaration :
Attribute m_use |
Declaration :
All public operations : getInstance , load , reset , save , setBack , setDown , setFront , setLeft , setRight , setTop , setZone , test , test
**************************************************************************
* \class AnimationManager
\brief Container fuer alle Animationen
****************************************************************************
Declaration :
Artifact : AnimationManager
Operation getInstance |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation AnimationManager |
Declaration :
Operation ~AnimationManager |
Declaration :
Relation m_animDummy (<directional composition>) |
Declaration :
Relation m_animList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Operation clear |
Declaration :
Operation add |
Declaration :
Operation get |
Declaration :
Operation animate |
Declaration :
Operation load |
Declaration :
Operation save |
throws IOException;
Declaration :
All public operations : add , animate , clear , get , getInstance , load , save
**************************************************************************
* \class SurfaceCache
\brief 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() bei 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 (z.B. durch Drehen) muessen alle neuen Surfaces
in den Cache geladen werden. Das macht sich durch einen Einbruch in der
Framerate bemerkbar.
Besser: Den Fuellstand des Caches immer voll ausnutzen. Erst wenn
mehr 100% erreicht wurde, nicht genutzte Surfaces entfernen.
****************************************************************************
Declaration :
Artifact : SurfaceCache
Operation getInstance |
Declaration :
Operation SurfaceCache |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Attribute m_usedCounter |
Declaration :
Attribute m_sid |
Declaration :
Relation m_surfaces (<unidirectional association>) |
Declaration :
Attribute m_rgbIntensity |
Declaration :
Operation ~SurfaceCache |
Declaration :
Operation refresh |
Declaration :
Operation addSurface |
Declaration :
Operation addSurface |
Declaration :
Operation updateSurface |
Declaration :
Operation updateSurface |
Declaration :
Operation getSurface |
Declaration :
Operation getCount |
Declaration :
All public operations : addSurface , addSurface , getCount , getInstance , getSurface , refresh , updateSurface , updateSurface
**************************************************************************
* \class Tile
\brief 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.
****************************************************************************
Declaration :
Artifact : Tile
Declaration :
nested in Tile
Stereotype: enum
Items :
Attribute m_sid |
SurfaceID
Declaration :
Attribute m_typ |
Declaration :
Attribute m_textureID |
Declaration :
Attribute m_name |
TODO: war vorher String
Declaration :
Attribute m_zoneTHIS |
Declaration :
Attribute m_zoneOTHER |
Declaration :
Attribute m_scrollFlag |
Declaration :
Attribute m_animationID |
Declaration :
Attribute m_d |
Distanz vom Ursprung zur Plane
Declaration :
Attribute m_numVertices |
Wird in der cpp-Datei auf 4 gesetzt
Declaration :
Relation m_vertexOrg (<unidirectional association>) |
Declaration :
Relation m_vertex (<unidirectional association>) |
Declaration :
Operation initialize |
Die Tile besteht aus 4 Punkten. Sie kann potentiell
4 Planes des Frustums schneiden, d.h es koennen max.
8 Liniensegmente entstehen (plus dem letzten pseudo punkt
Declaration :
Attribute m_numClipVertices |
Declaration :
Attribute m_maxFC |
Anzahl der tatsaechlich ermittelten Vertices:
Declaration :
Relation m_vFC (<unidirectional association>) |
Declaration :
Attribute m_x |
x' projiziert auf Plane
Declaration :
Attribute m_y |
y' projiziert auf Plane
Declaration :
Attribute m_u |
u Texelkoordinate in x-Richtung
Declaration :
Attribute m_v |
v Texelkoordinate in y-Richtung
Declaration :
Attribute m_numTriangles |
Declaration :
Attribute m_maxTri |
Anzahl der tatsaechlich ermittelten Triangles:
Declaration :
Relation m_tri (<unidirectional association>) |
Declaration :
Attribute m_ambientLight |
Declaration :
Attribute m_directionalLight |
Declaration :
Relation m_lightMap (<unidirectional association>) |
Declaration :
Attribute m_minXDist2D |
Declaration :
Attribute m_maxXDist2D |
Declaration :
Attribute m_minYDist2D |
Declaration :
Attribute m_maxYDist2D |
Declaration :
Attribute m_minXDist3D |
Declaration :
Attribute m_maxXDist3D |
Declaration :
Attribute m_minYDist3D |
Declaration :
Attribute m_maxYDist3D |
Declaration :
Attribute m_minZDist3D |
Declaration :
Attribute m_maxZDist3D |
Declaration :
Attribute m_hasLightMapGrid |
Declaration :
Attribute m_lightMapGrid |
Declaration :
Operation setLightMap |
Declaration :
Operation Tile |
Declaration :
Operation Tile |
Declaration :
Operation ~Tile |
Declaration :
Operation set |
Declaration :
Operation getZoneTHIS |
Declaration :
Operation getZoneOTHER |
Declaration :
Operation resetClipList |
Declaration :
Operation resetVertices |
Declaration :
Operation reverseVertices |
Declaration :
Operation clip |
Declaration :
Operation getTyp |
Declaration :
Operation intersect |
Declaration :
Operation transform |
Declaration :
Operation project |
Declaration :
Operation calcUV |
Declaration :
Operation calcTexelVertices |
Declaration :
Operation triangulate |
Declaration :
Operation calcDistances |
Declaration :
Operation getScrollFlag |
Declaration :
Operation setScrollFlag |
Declaration :
Operation dump |
Declaration :
Operation save |
Declaration :
Operation load |
Declaration :
All public operations : calcDistances , calcTexelVertices , calcUV , check , clear , clip , dump , dump , getInterLegth , getScrollFlag , getTyp , getZoneOTHER , getZoneTHIS , intersect , intersect , load , project , resetClipList , resetVertices , reverseVertices , save , set , set , setLightMap , setScrollFlag , transform , triangulate
**************************************************************************
* \class MaterialManager
\brief Container fuer alle Materialien
****************************************************************************
Declaration :
Artifact : MaterialManager
Operation getInstance |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation MaterialManager |
Declaration :
Operation ~MaterialManager |
Declaration :
Relation texList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Relation matList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Relation texDummy (<directional composition>) |
Declaration :
Operation clear |
Declaration :
Operation add |
Declaration :
Operation add |
Declaration :
Operation countTextures |
Declaration :
Operation get |
Declaration :
Operation load |
Declaration :
Operation save |
Declaration :
All public operations : add , add , clear , countTextures , get , getInstance , load , save
**************************************************************************
* \class Texture
\brief Eine Texture
****************************************************************************
Declaration :
Artifact : Texture
Attribute m_time |
Declaration :
Operation Texture |
Declaration :
Operation ~Texture |
Declaration :
Operation scroll |
Declaration :
Operation load |
Declaration :
Operation save |
throws IOException;
Declaration :
All public operations : getAlpha , getHeight , getWidth , load , save , scroll , setAlpha , setImage
**************************************************************************
* \class Image
\brief Generische Klasse fuer Images, Bitmaps
***************************************************************************
Declaration :
Directly inherited by : Sprite Surface Texture
Artifact : Image
Declaration :
nested in Image
Stereotype: enum
Items :
Attribute m_typ |
Declaration :
Attribute m_height |
Declaration :
Attribute m_width |
Declaration :
Attribute m_shift |
Declaration :
Attribute m_alpha |
Declaration :
Attribute m_rgbLUT |
Declaration :
Attribute m_indexArray |
Declaration :
Operation Image |
Declaration :
Operation ~Image |
Declaration :
Operation setImage |
Declaration :
Operation getHeight |
Declaration :
Operation getWidth |
Declaration :
Operation getAlpha |
Declaration :
Operation setAlpha |
Declaration :
Operation setShift |
Declaration :
All public operations : getAlpha , getHeight , getWidth , setAlpha , setImage
**************************************************************************
* \class Surface
\brief Eine Surface (Oberflaeche) besteht aus Textur + Lightmap
Die Datenablage erfolgt maximal performant fuer den TexturMapper
--> RGB pro Pixel
Bytes/Pixel: 1 3 4 ! 1000
--------------------------------!----------
64*64 = 4K 12K 16K ! 16M
128*128 = 16K 48K 64K ! 64M
256*256 = 64K 192K 256K ! 256M
***************************************************************************
Declaration :
Artifact : Surface
Attribute m_sid |
Declaration :
Attribute m_counter |
Declaration :
Operation Surface |
Declaration :
Operation Surface |
Declaration :
Operation ~Surface |
Declaration :
Operation init |
Declaration :
All public operations : getAlpha , getHeight , getWidth , setAlpha , setImage
**************************************************************************
* \class Animation
\brief Zustandklasse fuer eine Animation
****************************************************************************
Declaration :
Artifact : Animation
Declaration :
nested in Animation
Stereotype: enum
Items :
Relation m_stepVec (<directional composition>) |
Declaration :
Attribute m_aID |
Declaration :
Attribute m_aID2 |
Declaration :
Attribute m_dir |
Declaration :
Attribute m_len |
Declaration :
Attribute m_status |
Declaration :
Attribute m_mode |
Declaration :
Attribute m_waitMax |
Declaration :
Attribute m_waitCount |
Declaration :
Operation reset |
Declaration :
Relation m_dirVec (<directional composition>) |
Declaration :
Operation Animation |
Declaration :
Operation Animation |
Declaration :
Operation runForward |
Declaration :
Operation runForwardBackward |
Declaration :
Operation runForwardWaitBackwardStop |
Declaration :
Operation stop |
Declaration :
Operation doStep |
Declaration :
Operation translate |
Declaration :
Operation getID |
Declaration :
Operation getID2 |
Declaration :
Operation load |
Declaration :
Operation save |
throws IOException;
Declaration :
Operation ~Animation |
throws IOException;
Declaration :
All public operations : doStep , getID , getID2 , load , runForward , runForwardBackward , runForwardWaitBackwardStop , save , stop , translate
**************************************************************************
* \class Material
\brief Container fuer ein Material
****************************************************************************
Declaration :
Artifact : Material
Attribute m_mid |
Declaration :
Attribute m_textureList |
Declaration :
Stereotype: std::vector
Attribute m_time |
Declaration :
Attribute m_index |
Declaration :
Operation Material |
Declaration :
Operation ~Material |
Declaration :
Operation getID |
Declaration :
Operation getTID |
Declaration :
Operation load |
Declaration :
Operation save |
throws IOException;
Declaration :
Artifact Animation |
Stereotype: source
Artifact source associated with : Animation
Artifact AnimationManager |
Stereotype: source
Artifact source associated with : AnimationManager
Artifact Image |
Stereotype: source
Artifact source associated with : Image
Artifact Material |
Stereotype: source
Artifact source associated with : Material
Artifact MaterialManager |
Stereotype: source
Artifact source associated with : MaterialManager
Artifact SkyBox |
Stereotype: source
Artifact source associated with : SkyBox
Artifact Surface |
Stereotype: source
Artifact source associated with : Surface
Artifact SurfaceCache |
Stereotype: source
Artifact source associated with : SurfaceCache
Artifact Texture |
Stereotype: source
Artifact source associated with : Texture
Artifact Tile |
Stereotype: source
Artifact source associated with : Tile
**************************************************************************
* \class PartikelManager
\brief Muesste eigentlich PartikelSystemManger heissen. Es verwaltet alle
Partikelsysteme und alle Sprites, die fuer die Darstellung der
einzelnen Partikel gebraucht werden.
****************************************************************************
Declaration :
Artifact : PartikelManager
Operation getInstance |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation PartikelManager |
Declaration :
Operation ~PartikelManager |
Declaration :
Relation m_spriteList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Relation m_partikelSystemList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Operation clear |
Declaration :
Operation transform |
Declaration :
Operation project |
Declaration :
Operation load |
Declaration :
Operation save |
Declaration :
All public operations : getInstance , load , project , save , transform
**************************************************************************
* \class Partikel
\brief 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.
Bewegung:
- Keine Bewegung: Permanent AN, Blinkend=f(zeitintervall)
- Lineare Bewegung: Ueber die Zeit, oder ueber die Distanz zum Emitter
Bei Erreichen des Ende: Dead(Ausblenden), Respawn am Emitter, Respawn
am letzter Position mit Richtungsumkehr
- Parabel (z.B. Granatenwurf): Ueber die Zeit, ueber die Strecke)
Bei linearer Bewegung:
- Bewegung innerhalb einer BBox (ggf, mit Reflexion)
- Bewegung innerhalb eines Zylinders (ggf, mit Reflexion)
- Bewegung innerhalb einer Kugel (ggf, mit Reflexion)
- Bewegung auf einer BBox (Anwendungsfall??)
- Bewegung auf einem Zylinders (Beamer von Startrek)
- Bewegung auf einer Kugel (Kreis)
****************************************************************************
Declaration :
Artifact : Partikel
Declaration :
nested in Partikel
Stereotype: enum
Items :
Declaration :
nested in Partikel
Stereotype: enum
Items :
Operation Partikel |
Declaration :
Operation ~Partikel |
Declaration :
Operation setMotion |
Declaration :
Operation setMotion |
Declaration :
Operation setONtime |
Declaration :
Operation setOFFtime |
Declaration :
Operation getONtime |
Declaration :
Operation setFading |
Declaration :
Operation setROLLtime |
Declaration :
Operation animate |
Declaration :
Operation isON |
Declaration :
Operation addSprite |
Declaration :
Operation querySprite |
Declaration :
Attribute m_isScale |
Declaration :
Attribute m_isFading |
Declaration :
Relation m_sprite (<unidirectional association>) |
Declaration :
Operation calcVelocity |
Declaration :
Operation refreshStatus |
Declaration :
Attribute m_zone |
Declaration :
Relation m_emitterPos (<directional composition>) |
Position des Emitters
Declaration :
Relation m_velocity (<directional composition>) |
aktuelle Richtung- bzw. Geschwindigkeitsvektor
Declaration :
Relation m_randomMin (<directional composition>) |
Declaration :
Relation m_randomMax (<directional composition>) |
Declaration :
Relation m_force (<directional composition>) |
Kraftvektor, der auf das Partikel einwirkt (Wind, Gravitation)
Declaration :
Attribute m_frames |
Declaration :
Attribute m_useSpeed |
Declaration :
Attribute m_speed |
Declaration :
Attribute m_ONtime |
Dauer der ON-Zeit (0 == Unendlich!!)
Declaration :
Attribute m_ONstart |
Declaration :
Attribute m_OFFtime |
Dauer der OFF-Zeit
Declaration :
Attribute m_OFFstart |
Declaration :
Attribute m_ROLLtime |
Declaration :
Attribute m_ROLLstart |
Declaration :
Attribute m_status |
Declaration :
Attribute m_action |
Declaration :
Attribute m_spriteCount |
Declaration :
Relation m_spriteOrg (<unidirectional association>) |
Declaration :
Attribute m_currSpriteID |
Declaration :
All public operations : addSprite , animate , getONtime , isON , project , querySprite , scaleEnable , setFading , setMotion , setMotion , setOFFtime , setONtime , setPos , setROLLtime , setScale , setSize , transform
**************************************************************************
* \class Object2D
\brief Beschreibt ein rechteckiges 2D-Objekt im 3D-Raum (typ. Sprites,
Partikel...)
****************************************************************************
Declaration :
Directly inherited by : Partikel
Artifact : Object2D
Operation Object2D |
Declaration :
Operation ~Object2D |
Declaration :
Relation m_startPosOrg (<directional composition>) |
Position im 3D-Raum
Declaration :
Attribute m_height |
Hoehe des 2D-Objektes
Declaration :
Attribute m_width |
Breite des 2D-Objektes
Declaration :
Attribute m_scaleEnable |
Declaration :
Relation m_pos (<directional composition>) |
Position in 3D-Raum transformiert zur Camera
Declaration :
Attribute m_u |
Punkt Mitte
Declaration :
Attribute m_v |
Declaration :
Attribute m_u0 |
Punkt oben links
Declaration :
Attribute m_v0 |
Declaration :
Attribute m_u1 |
Punkt oben rechts
Declaration :
Attribute m_v1 |
Declaration :
Attribute m_u2 |
Punkt unten rechts
Declaration :
Attribute m_v2 |
Declaration :
Attribute m_u3 |
Punkt unten links
Declaration :
Attribute m_v3 |
Declaration :
Attribute m_scale |
Declaration :
Operation setPos |
Declaration :
Operation setSize |
Declaration :
Operation scaleEnable |
Declaration :
Operation setScale |
Declaration :
Operation transform |
Declaration :
Operation project |
Declaration :
All public operations : project , scaleEnable , setPos , setScale , setSize , transform
**************************************************************************
* \class Sprite
\brief Sprites werden fuer Partikel verwendet. Eine Sprite ist wie eine
Texture, nur einfacher gestrickt. Ausserdem sind die Pixel einer
Sprite semitransparent.
****************************************************************************
Declaration :
Artifact : Sprite
Attribute m_indexSize |
Declaration :
Attribute m_delta |
Declaration :
Operation Sprite |
Declaration :
Operation set |
Declaration :
Operation load |
Declaration :
Operation save |
throws IOException;
Declaration :
Operation ~Sprite |
throws IOException;
Declaration :
All public operations : getAlpha , getHeight , getWidth , load , save , set , setAlpha , setImage
**************************************************************************
* \class PartikelSystem
\brief Ein Partikelsystem beschreibt das Verhalten von Partikeln, die zu
diesem System gehoeren.
****************************************************************************
Declaration :
Artifact : PartikelSystem
Operation PartikelSystem |
Declaration :
Operation ~PartikelSystem |
Declaration :
Attribute m_zone |
Declaration :
Relation m_partikelList (<unidirectional association>) |
Declaration :
Stereotype: std::vector
Attribute m_typ |
Declaration :
Attribute m_respawn |
Declaration :
Attribute m_maxPartikel |
Declaration :
Attribute m_lifeTime |
Declaration :
Relation m_startPosOrg (<directional composition>) |
Declaration :
Relation m_startPos (<directional composition>) |
Declaration :
Attribute m_nearDist |
Declaration :
Attribute m_farDist |
Declaration :
Attribute m_spriteCount |
Declaration :
Attribute m_spriteID |
Declaration :
Operation clear |
Declaration :
Operation getRandom |
Declaration :
Operation init_0 |
Declaration :
Operation init_1 |
Declaration :
Operation init_2 |
Declaration :
Operation init_3 |
Declaration :
Operation init_4 |
Declaration :
Operation init_5 |
Declaration :
Operation init_6 |
Declaration :
Operation init_7 |
Declaration :
Operation animate |
Declaration :
Operation transform |
Declaration :
Operation project |
Declaration :
Operation load |
Declaration :
Operation init |
Declaration :
Operation save |
Declaration :
All public operations : animate , init , load , project , save , transform
Artifact Object2D |
Stereotype: source
Artifact source associated with : Object2D
Artifact Partikel |
Stereotype: source
Artifact source associated with : Partikel
Artifact PartikelManager |
Stereotype: source
Artifact source associated with : PartikelManager
Artifact PartikelSystem |
Stereotype: source
Artifact source associated with : PartikelSystem
Artifact Sprite |
Stereotype: source
Artifact source associated with : Sprite
**************************************************************************
* \class Renderer
\brief Die Hauptklasse der Renderer 3D Engine
Dieser Klasse beinhaltet ALLE Methoden, die fuer die Nutzung
der Engine benoetigt werden.
****************************************************************************
Declaration :
Artifact : Renderer
Operation getInstance |
Declaration :
Operation Renderer |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation ~Renderer |
Declaration :
Attribute m_drawInfo |
Declaration :
Relation m_frustum (<unidirectional association>) |
Declaration :
Relation m_textureMapper (<unidirectional association>) |
Declaration :
Relation m_textMapper (<unidirectional association>) |
Declaration :
Relation m_surfaceCache (<unidirectional association>) |
Declaration :
Relation m_spriteMapper (<unidirectional association>) |
Declaration :
Attribute m_height |
Declaration :
Attribute m_width |
Declaration :
Attribute m_PlanePixels |
Declaration :
Attribute m_ZBuffer |
Declaration :
Attribute m_isRendererInitialized |
Declaration :
Operation initRenderer |
Declaration :
Operation renderFrame |
Declaration :
Operation clearZBuffer |
Declaration :
Operation renderTiles |
Declaration :
Operation renderParticles |
Declaration :
Operation renderText |
Declaration :
Operation clearPlane |
Declaration :
All public operations : clearZBuffer , getInstance , initRenderer , renderFrame , renderParticles , renderText , renderTiles
**************************************************************************
* \class TextMapper
\brief TextMapper Klasse
****************************************************************************
Declaration :
Artifact : TextMapper
Operation getInstance |
Declaration :
Operation TextMapper |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation ~TextMapper |
Declaration :
Operation drawText |
Declaration :
Operation drawText |
Declaration :
Operation load |
Declaration :
Operation save |
Declaration :
Relation m_texture (<directional composition>) |
Declaration :
Attribute m_charWidth |
Declaration :
Attribute m_charHeight |
Declaration :
Attribute m_linespace |
Declaration :
Attribute m_charAscent |
Declaration :
Attribute m_charDescent |
Declaration :
All public operations : drawText , drawText , getInstance , load , save
**************************************************************************
* \class TextureMapper
\brief Projiziert eine Texture aus dem 3D Raum in den 2D Raum
****************************************************************************
Declaration :
Artifact : TextureMapper
Attribute m_xmax |
Declaration :
Attribute m_ymax |
Declaration :
Attribute m_tex_width |
Declaration :
Attribute m_tex_height |
Declaration :
Attribute m_rgbIntensity |
Declaration :
Attribute debugFlag |
Declaration :
Attribute msg_count |
Declaration :
Relation m_tex (<unidirectional association>) |
Declaration :
Relation m_surface (<unidirectional association>) |
Declaration :
Attribute m_height |
Declaration :
Attribute m_height_1 |
Declaration :
Attribute m_width |
Declaration :
Attribute m_alpha |
Declaration :
Attribute m_ZBuffer |
Declaration :
Relation m_p0 (<directional composition>) |
Declaration :
Relation m_p1 (<directional composition>) |
Declaration :
Relation m_p2 (<directional composition>) |
Declaration :
Attribute m_d |
Distanz vom Ursprung zur Plane
Declaration :
Attribute x0 |
x0' (projiziert auf Plane)
Declaration :
Attribute y0 |
y0' (projiziert auf Plane)
Declaration :
Attribute z0 |
z0-Koordinate (im Raum)
Declaration :
Attribute c0 |
c0 ==> 1/z0-Koordinate (im Raum)
Declaration :
Attribute uc0 |
u * c0 (u Texelkoordinate in x-Richtung)
Declaration :
Attribute vc0 |
v * c0 (v Texelkoordinate in y-Richtung)
Declaration :
Attribute x1 |
x1' (projiziert auf Plane)
Declaration :
Attribute y1 |
y1' (projiziert auf Plane)
Declaration :
Attribute z1 |
z1-Koordinate (im Raum)
Declaration :
Attribute c1 |
c1 ==> 1/z1-Koordinate (im Raum)
Declaration :
Attribute uc1 |
u * c1 (u Texelkoordinate in x-Richtung)
Declaration :
Attribute vc1 |
v * c1 (v Texelkoordinate in y-Richtung)
Declaration :
Attribute x2 |
x2' (projiziert auf Plane)
Declaration :
Attribute y2 |
y2' (projiziert auf Plane)
Declaration :
Attribute z2 |
z2-Koordinate (im Raum)
Declaration :
Attribute c2 |
c2 ==> 1/z2-Koordinate (im Raum)
Declaration :
Attribute uc2 |
u * c2 (u Texelkoordinate in x-Richtung)
Declaration :
Attribute vc2 |
v * c2 (v Texelkoordinate in y-Richtung)
Declaration :
Attribute dc_dx |
dc/dx' (mit dy = const!!)
Declaration :
Attribute dc_dy |
dc/dy' (mit dx = const!!)
Declaration :
Attribute duc_dx |
duc/dx
Declaration :
Attribute duc_dy |
duc/dy
Declaration :
Attribute dvc_dx |
dvc/dx
Declaration :
Attribute dvc_dy |
dvc/dy
Declaration :
Attribute dx_dy_a |
Steigung dx/dy der linken Seite
Declaration :
Attribute dc_dy_a |
Steigung dc/dy der linken Seite
Declaration :
Attribute duc_dy_a |
Steigung duc/dy der linken Seite
Declaration :
Attribute dvc_dy_a |
Steigung dvc/dy der linken Seite
Declaration :
Attribute dx_dy_b |
Steigung dx/dy der rechten Seite
Declaration :
Attribute dc_dy_b |
Steigung dc/dy der rechten Seite
Declaration :
Attribute duc_dy_b |
Steigung duc/dy der rechten Seite
Declaration :
Attribute dvc_dy_b |
Steigung dvc/dy der rechten Seite
Declaration :
Attribute xa |
Declaration :
Attribute xb |
Declaration :
Attribute ca |
Declaration :
Attribute uca |
Declaration :
Attribute vca |
Declaration :
Attribute m_planePixels |
Declaration :
Operation project |
Declaration :
Operation addOffset |
Declaration :
Operation sortVertices |
Declaration :
Operation gradients |
Declaration :
Operation gradients2 |
Declaration :
Operation gradients3 |
Declaration :
Operation doit |
Declaration :
Operation renderSegment |
Declaration :
Operation renderLine |
Declaration :
Operation dumpVertices |
Declaration :
Operation dumpProjection |
Declaration :
Operation dumpGradients |
Declaration :
Operation getInstance |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation TextureMapper |
Declaration :
Operation ~TextureMapper |
Declaration :
Operation render |
Declaration :
All public operations : dumpGradients , dumpProjection , dumpVertices , getInstance , render
**************************************************************************
* \class SpriteMapper
\brief Rendert die Sprites (2D-Objekte) auf die Canvas unter
Beruecksichtigung der Smitransparenz
****************************************************************************
Declaration :
Artifact : SpriteMapper
Attribute m_planePixels |
Declaration :
Attribute m_ZBuffer |
Declaration :
Operation getInstance |
Declaration :
Relation _instance (<unidirectional association>) |
Declaration :
Operation SpriteMapper |
Declaration :
Operation ~SpriteMapper |
Declaration :
Operation render |
Declaration :
Operation renderNeu |
Declaration :
All public operations : getInstance , render , renderNeu
Artifact Renderer |
Stereotype: source
Artifact source associated with : Renderer
Artifact SpriteMapper |
Stereotype: source
Artifact source associated with : SpriteMapper
Artifact TextMapper |
Stereotype: source
Artifact source associated with : TextMapper
Artifact TextureMapper |
Stereotype: source
Artifact source associated with : TextureMapper