Zeichnung3D.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #pragma once
  2. #include "Mat4.h"
  3. namespace Framework
  4. {
  5. struct MausEreignis3D;
  6. struct TastaturEreignis;
  7. class Render3D; // Render3D.h
  8. // Ein Objekt, das von der Bildschirm3D Klasse gezeichnet werden kann.
  9. class Zeichnung3D
  10. {
  11. protected:
  12. Vec3< float > pos; // Position des Objekts
  13. Vec3< float > angle; // Drehungswinkel für x, y und z
  14. Mat4< float > welt; // Wlet translation matrix
  15. float radius; // Der radius einer Kugel, der das gesamte Objekt umschließt
  16. bool alpha; // Speichert ob das Objekt teilweise oder ganz transparente stellen enthält
  17. bool rend;
  18. float size;
  19. int ref;
  20. public:
  21. // Konstruktor
  22. __declspec( dllexport ) Zeichnung3D();
  23. __declspec( dllexport ) virtual ~Zeichnung3D();
  24. // Setzt die Position der Zeichnung in der Welt
  25. // p: Die Position
  26. __declspec( dllexport ) void setPosition( Vec3< float > &p );
  27. // Setzt die Position der Zeichnung in der Welt
  28. // x: Die x Position
  29. // y: Die y Position
  30. // z: Die z Position
  31. __declspec( dllexport ) void setPosition( float x, float y, float z );
  32. // Setzt die Position der Zeichnung in der Welt
  33. // x: Die x Position
  34. __declspec( dllexport ) void setX( float x );
  35. // Setzt die Position der Zeichnung in der Welt
  36. // y: Die y Position
  37. __declspec( dllexport ) void setY( float y );
  38. // Setzt die Position der Zeichnung in der Welt
  39. // z: Die z Position
  40. __declspec( dllexport ) void setZ( float z );
  41. // Setzt die Drehung der Zeichnung in der Welt
  42. // d: Die drehung um die x, y und z achse
  43. __declspec( dllexport ) void setDrehung( Vec3< float > &d );
  44. // Setzt die Drehung der Zeichnung in der Welt
  45. // xWinkel: Die drehung um die x achse
  46. // yWinkel: Die drehung um die y achse
  47. // zWinkel: Die drehung um die z achse
  48. __declspec( dllexport ) void setDrehung( float xWinkel, float yWinkel, float zWinkel );
  49. // Setzt die Drehung der Zeichnung in der Welt
  50. // winkel: Die drehung um die x achse
  51. __declspec( dllexport ) void setDrehungX( float winkel );
  52. // Setzt die Drehung der Zeichnung in der Welt
  53. // winkel: Die drehung um die y achse
  54. __declspec( dllexport ) void setDrehungY( float winkel );
  55. // Setzt die Drehung der Zeichnung in der Welt
  56. // winkel: Die drehung um die z achse
  57. __declspec( dllexport ) void setDrehungZ( float winkel );
  58. // Legt fest, ob das Objekt teilweise oder ganz transparente stellen enthält
  59. // a: true, wenn teilweise oder ganz transparente stellen vorhanden sind
  60. __declspec( dllexport ) void setAlpha( bool a );
  61. // Errechnet die Matrizen aller Knochen des Skeletts der Zeichnung
  62. // viewProj: Die miteinander multiplizierten Kameramatrizen
  63. // matBuffer: Ein Array mit Matrizen, der gefüllt werden soll
  64. // return: Die Anzahl der Matrizen, die die Zeichnung benötigt
  65. __declspec( dllexport ) virtual int errechneMatrizen( Mat4< float > &viewProj, Mat4< float > *matBuffer );
  66. // Verarbeitet ein Mausereignis
  67. // me: Das Mausereignis, das verarbeitet werden soll
  68. __declspec( dllexport ) virtual void doMausEreignis( MausEreignis3D &me );
  69. // Verarbeitet ein Tastaturereignis
  70. // te: das Tastaturereignis, das verarbeitet werden soll
  71. __declspec( dllexport ) virtual void doTastaturEreignis( TastaturEreignis &te );
  72. // Verarbeitet die vergangene Zeit
  73. // tickval: Die zeit in sekunden, die seit dem letzten Aufruf der Funktion vergangen ist
  74. // return: true, wenn sich das Objekt verändert hat, false sonnst.
  75. __declspec( dllexport ) virtual bool tick( double tickval );
  76. // Gibt zurück, ob das Objekt teilweise oder ganz transparente stellen enthält
  77. __declspec( dllexport ) bool hatAlpha() const;
  78. // Gibt den radius einer Kugel zurück, die das gesammte Model umschließt
  79. __declspec( dllexport ) float getRadius() const;
  80. // Gibt einen Punkt zurück, der die Position der Zeichnung in der Welt darstellt
  81. __declspec( dllexport ) const Vec3< float > &getPos() const;
  82. // Gibt die X Position der Zeichnung in der Welt zurück
  83. __declspec( dllexport ) float getX() const;
  84. // Gibt die Y Position der Zeichnung in der Welt zurück
  85. __declspec( dllexport ) float getY() const;
  86. // Gibt die Z Position der Zeichnung in der Welt zurück
  87. __declspec( dllexport ) float getZ() const;
  88. // Gibt einen Vektor zurück, der die drehung der Zeichnung in der Welt darstellt. x ist die Drehung um die X Achse im Bogenmaß usw
  89. __declspec( dllexport ) const Vec3< float > &getDrehung() const;
  90. // Gibt die Drehung um die X Achse im Bogenmaß zurück
  91. __declspec( dllexport ) float getXDrehung() const;
  92. // Gibt die Drehung um die Y Achse im Bogenmaß zurück
  93. __declspec( dllexport ) float getYDrehung() const;
  94. // Gibt die Drehung um die Z Achse im Bogenmaß zurück
  95. __declspec( dllexport ) float getZDrehung() const;
  96. // Gibt die Matrix zurück, die die Zeichnung in den Welt Raum übersetzt
  97. __declspec( dllexport ) const Mat4< float > &getMatrix() const;
  98. // Erhöht den Reference Counting Zähler.
  99. // return: this.
  100. __declspec( dllexport ) Zeichnung3D *getThis();
  101. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  102. // return: 0.
  103. __declspec( dllexport ) virtual Zeichnung3D *release();
  104. };
  105. }