M2DVorschau.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include "Zeichnung.h"
  3. namespace Framework
  4. {
  5. class Model2D; // Model2D.h
  6. class Model2DData; // Model2D.h
  7. class LRahmen; // Rahmen.h
  8. class AlphaFeld; // AlphaFeld.h
  9. struct MausEreignis; // MausEreignis.h
  10. // Eine Zeichnung des 2D GUI Frameworkd, die ein 2D Modell anzeigt
  11. class M2DVorschau : public ZeichnungHintergrund
  12. {
  13. public:
  14. class Style : public ZeichnungHintergrund::Style
  15. {
  16. public:
  17. const static __int64 UsrScale = 0x001000; // Wenn dieser Style gesetzt ist, kann der Benutzer das Model Skallieren, indem er scrollt
  18. const static __int64 UsrMove = 0x002000; // Wenn dieser Style gesetzt ist, kann der Benutzer das Model per Drag and Drop verschieben
  19. const static __int64 UsrRot = 0x004000; // Wenn dieser Style gesetzt idt, kann der Benutzer das Model mit der rechten Maustaste drehen
  20. };
  21. private:
  22. Model2D *mdl;
  23. LRahmen *ram;
  24. AlphaFeld *af;
  25. int bgF;
  26. int mx;
  27. int my;
  28. int ref;
  29. public:
  30. // Konstruktor
  31. __declspec( dllexport ) M2DVorschau();
  32. // Destruktor
  33. __declspec( dllexport ) ~M2DVorschau();
  34. // Setzt einen Zeiger auf das Model, das angezeigt werden soll
  35. // mdl: Das Model
  36. __declspec( dllexport ) void setModel2DZ( Model2D *mdl );
  37. // Setzt die Daten des Models, das angezeigt werden soll
  38. // mdl: Die Daten
  39. __declspec( dllexport ) void setModel2D( Model2DData *mdl );
  40. // Verarbeitet Maus Nachrichten
  41. // me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
  42. __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
  43. // Aktualisiert das Objekt. Wird vom Framework aufgerufen
  44. // tickVal: Die Zeit in sekunden, die seit dem lezten Aufruf dieser Funktion vergangen ist
  45. // return: 1, wenn sich etwas verändert hat und das Bild neu gezeichnet werden muss. 0 sonst
  46. __declspec( dllexport ) bool tick( double tv ) override;
  47. // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
  48. // zRObj: Das Bild, in welches gezeichnet werden soll
  49. __declspec( dllexport ) void render( Bild &rb ) override;
  50. // Gibt das angezeigte Model ohne erhöhten Reference Counter zurück
  51. __declspec( dllexport ) Model2D *zModel() const;
  52. // Gibt das angezeigte Model zurück
  53. __declspec( dllexport ) Model2D *getModel() const;
  54. // Erzeugt eine Komplette Kopie der Zeichnung, die ohne auswirkungen auf die Originale verändert werden kann
  55. __declspec( dllexport ) Zeichnung *dublizieren() const override;
  56. // Erhöht den Reference Counting Zähler.
  57. // return: this.
  58. __declspec( dllexport ) M2DVorschau *getThis();
  59. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
  60. // return: 0.
  61. __declspec( dllexport ) M2DVorschau *release();
  62. };
  63. }