Welt3D.h 2.0 KB

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