MapObjekt.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #pragma once
  2. #include <Bild.h>
  3. #include <TastaturEreignis.h>
  4. #include "../../Netzwerk/EditorKlient.h"
  5. using namespace Framework;
  6. class MapObjekt
  7. {
  8. class Style
  9. {
  10. public:
  11. const static int Verschiebbar = 0x01;
  12. const static int Sichtbar = 0x02;
  13. const static int Selected = 0x04;
  14. };
  15. protected:
  16. int style;
  17. EditorKlient *klient;
  18. Punkt pos;
  19. Punkt size;
  20. int ref;
  21. // Wird aufgerufen, wenn das Objekt durch den Nutzer verschoben wird
  22. virtual void onMoved() = 0;
  23. // Wird aufgerufen, wenn der Nutzer das Optionsfenster des Objekts aufrufen will
  24. virtual void onOpenOptionWindow() = 0;
  25. public:
  26. // Konstruktor
  27. // klient: Der Klient zum Editor Server
  28. MapObjekt( EditorKlient *klient );
  29. // Destructor
  30. ~MapObjekt();
  31. // Verarbeitet ein Maus Ereignis
  32. // me: Das Maus Ereignis
  33. virtual void doMausEreignis( MausEreignis me );
  34. // Verarbeitet ein Tastatur Ereignis
  35. // te: Das Tastaturereignis
  36. virtual void doTastaturEreignis( TastaturEreignis te );
  37. // Verarbeitet die vergangene Zeit
  38. // tv: Die vergangene Zeit in Sekunden seit dem letzten Aufruf der Funktion
  39. // return: 1, falls das objekt neu gezeichnet werden muss. 0 sonnst
  40. virtual bool tick( double tv );
  41. // Zeichnet das Objekt nach zRObj
  42. // zRObj: Das Bild in das gezeichnet werden soll
  43. virtual void render( Bild *zRObj );
  44. // Erhöht den reference Counter um 1
  45. // return this
  46. virtual MapObjekt *getThis();
  47. // Verringert den reference Counter um 1 und löscht das Objekt wenn er bei 0 ankommt
  48. // return 0
  49. virtual MapObjekt *release();
  50. };
  51. class MapObjektBitmap : public MapObjekt
  52. {
  53. protected:
  54. Bild *bmp;
  55. public:
  56. // Konstruktor
  57. // klient: Der Klient zum Editor Server
  58. MapObjektBitmap( EditorKlient *klient );
  59. // Destructor
  60. ~MapObjektBitmap();
  61. // Zeichnet das Objekt nach zRObj
  62. // zRObj: Das Bild in das gezeichnet werden soll
  63. void render( Bild *zRObj ) override;
  64. // Erhöht den reference Counter um 1
  65. // return this
  66. MapObjekt *getThis() override;
  67. // Verringert den reference Counter um 1 und löscht das Objekt wenn er bei 0 ankommt
  68. // return 0
  69. MapObjekt *release() override;
  70. };
  71. class MapObjekt2D : public MapObjekt
  72. {
  73. protected:
  74. Model2D *m2;
  75. public:
  76. // Konstruktor
  77. // klient: Der Klient zum Editor Server
  78. MapObjekt2D( EditorKlient *klient );
  79. // Destructor
  80. ~MapObjekt2D();
  81. // Zeichnet das Objekt nach zRObj
  82. // zRObj: Das Bild in das gezeichnet werden soll
  83. void render( Bild *zRObj ) override;
  84. // Erhöht den reference Counter um 1
  85. // return this
  86. MapObjekt *getThis() override;
  87. // Verringert den reference Counter um 1 und löscht das Objekt wenn er bei 0 ankommt
  88. // return 0
  89. MapObjekt *release() override;
  90. };