1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #pragma once
- #include "Critical.h"
- #include "Array.h"
- #include "Vec3.h"
- namespace Framework
- {
- class Zeichnung3D; // Zeichnung.h
- class Render3D; // Render3D.h
- struct MausEreignis3D; // MausEreignis.h
- class Model3D;
- // Speichert alle 3D Zeichnungen einer Szene ab
- class Welt3D
- {
- private:
- RCArray< Model3D > *members;
- bool rend;
- Critical cs;
- int ref;
- public:
- // Konstructor
- __declspec( dllexport ) Welt3D();
- // Destruktor
- __declspec( dllexport ) virtual ~Welt3D();
- // Blockiert den zugriff auf das Objekt und wartet gegebenfalls auf den Zugriff
- __declspec( dllexport ) void lock();
- // Gibt das Objekt für andere Threads frei
- __declspec( dllexport ) void unlock();
- // Fügt der Welt ein Objekt hinzu
- // obj: Das Objekt, was hinzugefügt werden soll
- __declspec( dllexport ) void addZeichnung( Model3D *obj );
- // Entfernt ein Objekt aus der Welt
- // obj: Das Objekt, das entwernt werden soll (ohne erhöhten reference Counter)
- __declspec( dllexport ) void removeZeichnung( Model3D *zObj );
- // Verarbeitet ein Mausereignis
- // me: Das Mausereignis, das verarbeitet werden soll
- __declspec( dllexport ) void doMausEreignis( MausEreignis3D &me );
- // Verarbeitet die vergangene Zeit
- // tickval: Die zeit in sekunden, die seit dem letzten Aufruf der Funktion vergangen ist
- // return: true, wenn sich das Objekt verändert hat, false sonnst.
- __declspec( dllexport ) virtual bool tick( double tickval );
- // brerechnet die Farbe eines Sichtstrahls, der von einem bestimmten punkt aus in eine bestimmte richtung schaut
- // point: Der ursprung des Strahls,
- // dir: Die Richtung des Strahls
- // return: Die Farbe des Strahls
- __declspec( dllexport ) virtual int traceRay( Vec3< float > &point, Vec3< float > &dir );
- // Gibt einen Iterator zurück, mit dem alle Members aufgezählt werden können
- __declspec( dllexport ) Iterator< Model3D * > getMembers();
- // Erhöht den Reference Counting Zähler.
- // return: this.
- __declspec( dllexport ) Welt3D *getThis();
- // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
- // return: 0.
- __declspec( dllexport ) Welt3D *release();
- };
- }
|