Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1.  
  2. Point::Point(int x, int y) {
  3. _x=x;
  4. _y=y;
  5. }
  6. int Point::getX() const {
  7. return _x;
  8. }
  9. int Point::getY() const {
  10. return _y;
  11. }
  12. void Point::setX(int x) {
  13. _x=x;
  14. }
  15. void Point::setY(int y) {
  16. _y=y;
  17. }
  18. void Point::shift(int shf) {
  19. _x+=shf;
  20. _y+=shf;
  21. }
  22. void Point::shift(int xSh, int ySh) {
  23. _x+=xSh;
  24. _y+=ySh;
  25. }
  26. void Point::shift(const Point &pt) {
  27. _x+=pt.getX();
  28. _y+=pt.getY();
  29. }
  30. PointArray::PointArray() {
  31. _size=0;
  32. _arr=new Point[0];
  33. }
  34. PointArray::PointArray(const Point *points, const Uint n) {
  35. _size=n;
  36. _arr=new Point[n];
  37. for(int i=0;i<n;i++)
  38. _arr[i]=points[i];
  39. }
  40. PointArray::PointArray(const PointArray &pv) {
  41. this->_size=pv._size;
  42. this->_arr=new Point[pv._size];
  43. for(int i=0;i<pv._size;i++)
  44. _arr[i]=Point(pv._arr[i].getX(),pv._arr[i].getY());
  45. }
  46. PointArray::~PointArray() {
  47. delete[] _arr;
  48. }
  49. void PointArray::append(const Point &pt) {
  50. resize(++_size);
  51. _arr[_size-1]=pt;
  52. }
  53. void PointArray::insert(const Point &pt, Uint pos) {
  54. _size++;
  55. Point* temp=_arr;
  56. _arr=new Point[_size];
  57. for(int i=0;i<pos;i++)
  58. _arr[i]=temp[i];
  59. _arr[pos]=pt;
  60. for(int i=pos;i<_size-1;i++)
  61. _arr[i+1]=temp[i];
  62. }
  63. void PointArray::remove(const Uint pos) {
  64. if(pos>_size)
  65. return;
  66. _size--;
  67. Point* temp=_arr;
  68. _arr=new Point[_size];
  69. for(int i=0;i<pos;i++)
  70. _arr[i]=temp[i];
  71. for(int i=pos;i<_size;i++)
  72. _arr[i]=temp[i+1];
  73. }
  74. void PointArray::clear() {
  75. delete[] _arr;
  76. _arr= nullptr;
  77. _size=0;
  78. }
  79. const Uint PointArray::getSize() const {
  80. return _size;
  81. }
  82. const Point* PointArray::get(Uint pos) const {
  83. if(pos>=_size)
  84. return nullptr;
  85.  
  86. return &(_arr[pos]);
  87. }
  88. Point* PointArray::get(Uint pos) {
  89. if(pos>=_size)
  90. return nullptr;
  91.  
  92. return &(_arr[pos]);
  93. }
  94. void PointArray::resize(Uint n) {
  95. Uint sizeToCopy=Uint(std::min(n,_size));
  96. Point* temp=new Point[n];//nullptr
  97. for(int i=0;i<sizeToCopy;i++)
  98. temp[i]=_arr[i];
  99. _arr=temp;
  100. _size=n;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement