Punkt.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #include "Punkt.h"
  2. #include "Fenster.h"
  3. using namespace Framework;
  4. // Inhalt der Punkt Klasse aus Punkt.h
  5. // Konstroktor
  6. Punkt::Punkt()
  7. {
  8. x = 0;
  9. y = 0;
  10. ref = 1;
  11. }
  12. Punkt::Punkt( int x, int y )
  13. {
  14. this->x = x;
  15. this->y = y;
  16. ref = 1;
  17. }
  18. // Destruktor
  19. Punkt::~Punkt()
  20. {
  21. }
  22. // nicht constant
  23. void Punkt::setP( int x, int y ) // setzt x und y
  24. {
  25. this->x = x;
  26. this->y = y;
  27. }
  28. void Punkt::setX( int x ) // setzt x
  29. {
  30. this->x = x;
  31. }
  32. void Punkt::setY( int y ) // setzt y
  33. {
  34. this->y = y;
  35. }
  36. // constant
  37. int Punkt::getX() const // gibt x zurück
  38. {
  39. return x;
  40. }
  41. int Punkt::getY() const // gibt y zurück
  42. {
  43. return y;
  44. }
  45. // Reference Counting
  46. Punkt *Punkt::getThis()
  47. {
  48. ref++;
  49. return this;
  50. }
  51. Punkt *Punkt::release()
  52. {
  53. ref--;
  54. if( ref == 0 )
  55. delete this;
  56. return 0;
  57. }
  58. // andere Funktionen
  59. Punkt *Framework::BildschirmGröße() // Gibt die Größe des Bildschirms zurück
  60. {
  61. RECT r;
  62. GetWindowRect( GetDesktopWindow(), &r );
  63. return new Punkt( r.right, r.bottom );
  64. }
  65. Punkt *Framework::Bildschirmmitte() // Giebt die Mitte des Bildschirms zurück
  66. {
  67. RECT r;
  68. GetWindowRect( GetDesktopWindow(), &r ); // Bildschirmgröße herausfinden
  69. return new Punkt( r.right / 2, r.bottom / 2 );
  70. }
  71. Punkt *Framework::Bildschirmmitte( WFenster *f ) // Giebt die Mitte des Bildschirms zurück
  72. {
  73. Punkt *p = Bildschirmmitte();
  74. Punkt *p2 = f->getGröße();
  75. Punkt *ret = new Punkt( p->getX() - p2->getX() / 2, p->getY() - p2->getY() / 2 );
  76. f = f->release();
  77. p->release();
  78. p2->release();
  79. return ret;
  80. }
  81. bool Framework::operator >( Punkt &a, Punkt &b ) // Gibt an, ob a > als b ist
  82. {
  83. return a.getX() > b.getX() && a.getY() > b.getY();
  84. }
  85. bool Framework::operator <( Punkt &a, Punkt &b ) // Gibt an, ob a < als b ist
  86. {
  87. return a.getX() < b.getX() && a.getY() < b.getY();
  88. }
  89. bool Framework::operator <=( Punkt &a, Punkt &b ) // Gibt an, ob a <= als b ist
  90. {
  91. return a.getX() <= b.getX() && a.getY() <= b.getY();
  92. }
  93. bool Framework::operator >=( Punkt &a, Punkt &b ) // Gibt an, ob a >= als b ist
  94. {
  95. return a.getX() >= b.getX() && a.getY() >= b.getY();
  96. }