Welt3D.h 1.7 KB

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