Zeichnung3D.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #pragma once
  2. #include "Mat4.h"
  3. namespace Framework
  4. {
  5. struct MausEreignis;
  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. public:
  19. // Konstruktor
  20. __declspec( dllexport ) Zeichnung3D();
  21. // Setzt die Position der Zeichnung in der Welt
  22. // p: Die Position
  23. __declspec( dllexport ) void setPosition( Vec3< float > &p );
  24. // Setzt die Position der Zeichnung in der Welt
  25. // x: Die x Position
  26. // y: Die y Position
  27. // z: Die z Position
  28. __declspec( dllexport ) void setPosition( float x, float y, float z );
  29. // Setzt die Position der Zeichnung in der Welt
  30. // x: Die x Position
  31. __declspec( dllexport ) void setX( float x );
  32. // Setzt die Position der Zeichnung in der Welt
  33. // y: Die y Position
  34. __declspec( dllexport ) void setY( float y );
  35. // Setzt die Position der Zeichnung in der Welt
  36. // z: Die z Position
  37. __declspec( dllexport ) void setZ( float z );
  38. // Setzt die Drehung der Zeichnung in der Welt
  39. // d: Die drehung um die x, y und z achse
  40. __declspec( dllexport ) void setDrehung( Vec3< float > &d );
  41. // Setzt die Drehung der Zeichnung in der Welt
  42. // xWinkel: Die drehung um die x achse
  43. // yWinkel: Die drehung um die y achse
  44. // zWinkel: Die drehung um die z achse
  45. __declspec( dllexport ) void setDrehung( float xWinkel, float yWinkel, float zWinkel );
  46. // Setzt die Drehung der Zeichnung in der Welt
  47. // winkel: Die drehung um die x achse
  48. __declspec( dllexport ) void setDrehungX( float winkel );
  49. // Setzt die Drehung der Zeichnung in der Welt
  50. // winkel: Die drehung um die y achse
  51. __declspec( dllexport ) void setDrehungY( float winkel );
  52. // Setzt die Drehung der Zeichnung in der Welt
  53. // winkel: Die drehung um die z achse
  54. __declspec( dllexport ) void setDrehungZ( float winkel );
  55. // Legt fest, ob das Objekt teilweise oder ganz transparente stellen enthält
  56. // a: true, wenn teilweise oder ganz transparente stellen vorhanden sind
  57. __declspec( dllexport ) void setAlpha( bool a );
  58. // Verarbeitet ein Mausereignis
  59. // me: Das Mausereignis, das verarbeitet werden soll
  60. __declspec( dllexport ) virtual void doMausEreignis( MausEreignis &me );
  61. // Verarbeitet ein Tastaturereignis
  62. // te: das Tastaturereignis, das verarbeitet werden soll
  63. __declspec( dllexport ) virtual void doTastaturEreignis( TastaturEreignis &te );
  64. // Verarbeitet die vergangene Zeit
  65. // tickval: Die zeit in sekunden, die seit dem letzten Aufruf der Funktion vergangen ist
  66. // return: true, wenn sich das Objekt verändert hat, false sonnst.
  67. __declspec( dllexport ) virtual bool tick( double tickval );
  68. // Zeichnet das Objekt
  69. // zRObj: Ein Zeiger auf das Objekt, das zum Zeichnen verwendet werden soll (ohne erhöhten Reference Counter)
  70. __declspec( dllexport ) virtual void render( Render3D *zRObj );
  71. // Gibt zurück, ob das Objekt teilweise oder ganz transparente stellen enthält
  72. __declspec( dllexport ) bool hatAlpha() const;
  73. // Gibt den radius einer Kugel zurück, die das gesammte Model umschließt
  74. __declspec( dllexport ) float getRadius() const;
  75. // Gibt einen Punkt zurück, der die Position der Zeichnung in der Welt darstellt
  76. const Vec3< float > &getPos() const;
  77. // Gibt die X Position der Zeichnung in der Welt zurück
  78. float getX() const;
  79. // Gibt die Y Position der Zeichnung in der Welt zurück
  80. float getY() const;
  81. // Gibt die Z Position der Zeichnung in der Welt zurück
  82. float getZ() const;
  83. // 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
  84. const Vec3< float > &getDrehung() const;
  85. // Gibt die Drehung um die X Achse im Bogenmaß zurück
  86. float getXDrehung() const;
  87. // Gibt die Drehung um die Y Achse im Bogenmaß zurück
  88. float getYDrehung() const;
  89. // Gibt die Drehung um die Z Achse im Bogenmaß zurück
  90. float getZDrehung() const;
  91. };
  92. }