Point.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "Point.h"
  2. Point::Point(int rayon,Uint32 couleur)
  3. :m_rayon(rayon)
  4. {
  5. m_pixel = SDL_CreateRGBSurface(SDL_HWSURFACE, 1, 1, 16, 0, 0, 0, 0);
  6. SDL_FillRect(m_pixel,NULL,couleur);
  7. if (!m_pixel)
  8. {
  9. std::cout << "Impossible de créer la surface dans l'objet Point " << SDL_GetError() << std::endl;
  10. }
  11. }///Constructeur standard
  12. Point::Point(int rayon,Uint32 couleur,int transparence)
  13. :m_rayon(rayon)
  14. {
  15. m_pixel = SDL_CreateRGBSurface(SDL_HWSURFACE, 1, 1, 16, 0, 0, 0, 0);
  16. SDL_FillRect(m_pixel,NULL,couleur);
  17. if (!m_pixel)
  18. {
  19. std::cout << "Impossible de créer la surface dans l'objet Point " << SDL_GetError() << std::endl;
  20. }
  21. }///Constructeur +transparence
  22. Point::~Point()
  23. {
  24. SDL_FreeSurface(m_pixel);
  25. m_pixel=0;
  26. std::cout << "Destruction du point effective. " << std::endl;
  27. }///Destructeur
  28. int Point::getRayon()
  29. {
  30. return m_rayon;
  31. }///getRayon
  32. void Point::afficherPoint(SDL_Surface *screen,int const x, int const y)
  33. {
  34. int distance(0);
  35. SDL_Rect position;
  36. for (int i(x-m_rayon); i<=x+m_rayon; i++)
  37. {
  38. for (int j(y-m_rayon); j<=y+m_rayon; j++)
  39. {
  40. distance = pow(i-x,2)+pow(j-y,2);
  41. if (distance <= pow(m_rayon,2))
  42. {
  43. position.x=i;
  44. position.y=j;
  45. SDL_BlitSurface(m_pixel, 0, screen, &position);
  46. }//test blit
  47. }//for j
  48. }//for i
  49. }///afficherPoint