Welt3D.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #include "Critical.h"
  3. namespace Framework
  4. {
  5. class Zeichnung3D; // Zeichnung.h
  6. class Render3D; // Render3D.h
  7. struct MausEreignis3D; // MausEreignis.h
  8. // Speichert alle 3D Zeichnungen einer Szene ab
  9. class Welt3D
  10. {
  11. private:
  12. Zeichnung3D **members;
  13. Zeichnung3D **membersAlpha;
  14. float *distSq;
  15. float *distSqSort;
  16. Zeichnung3D **alphaVS;
  17. Zeichnung3D **elementsSort;
  18. int arraySize;
  19. int arraySizeAlpha;
  20. bool rend;
  21. bool upd;
  22. Critical cs;
  23. int ref;
  24. public:
  25. // Konstructor
  26. __declspec( dllexport ) Welt3D();
  27. // Destruktor
  28. __declspec( dllexport ) virtual ~Welt3D();
  29. // Fügt der Welt ein Objekt hinzu
  30. // obj: Das Objekt, was hinzugefügt werden soll
  31. __declspec( dllexport ) void addZeichnung( Zeichnung3D *obj );
  32. // Entfernt ein Objekt aus der Welt
  33. // obj: Das Objekt, das entwernt werden soll (ohne erhöhten reference Counter)
  34. __declspec( dllexport ) void removeZeichnung( Zeichnung3D *zObj );
  35. // Verarbeitet ein Mausereignis
  36. // me: Das Mausereignis, das verarbeitet werden soll
  37. __declspec( dllexport ) void doMausEreignis( MausEreignis3D &me );
  38. // Verarbeitet die vergangene Zeit
  39. // tickval: Die zeit in sekunden, die seit dem letzten Aufruf der Funktion vergangen ist
  40. // return: true, wenn sich das Objekt verändert hat, false sonnst.
  41. __declspec( dllexport ) virtual bool tick( double tickval );
  42. // Zeichnet einen ausschnitt der Welt
  43. // zRObj: Enthällt alle Werkzeuge, die zum Zeichnen verwendet werden
  44. __declspec( dllexport ) void render( Render3D *zRObj );
  45. // Erhöht den Reference Counting Zähler.
  46. // return: this.
  47. __declspec( dllexport ) Welt3D *getThis();
  48. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  49. // return: 0.
  50. __declspec( dllexport ) Welt3D *release();
  51. };
  52. }