Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Point::Point(int x, int y) {
- _x=x;
- _y=y;
- }
- int Point::getX() const {
- return _x;
- }
- int Point::getY() const {
- return _y;
- }
- void Point::setX(int x) {
- _x=x;
- }
- void Point::setY(int y) {
- _y=y;
- }
- void Point::shift(int shf) {
- _x+=shf;
- _y+=shf;
- }
- void Point::shift(int xSh, int ySh) {
- _x+=xSh;
- _y+=ySh;
- }
- void Point::shift(const Point &pt) {
- _x+=pt.getX();
- _y+=pt.getY();
- }
- PointArray::PointArray() {
- _size=0;
- _arr=new Point[0];
- }
- PointArray::PointArray(const Point *points, const Uint n) {
- _size=n;
- _arr=new Point[n];
- for(int i=0;i<n;i++)
- _arr[i]=points[i];
- }
- PointArray::PointArray(const PointArray &pv) {
- this->_size=pv._size;
- this->_arr=new Point[pv._size];
- for(int i=0;i<pv._size;i++)
- _arr[i]=Point(pv._arr[i].getX(),pv._arr[i].getY());
- }
- PointArray::~PointArray() {
- delete[] _arr;
- }
- void PointArray::append(const Point &pt) {
- resize(++_size);
- _arr[_size-1]=pt;
- }
- void PointArray::insert(const Point &pt, Uint pos) {
- _size++;
- Point* temp=_arr;
- _arr=new Point[_size];
- for(int i=0;i<pos;i++)
- _arr[i]=temp[i];
- _arr[pos]=pt;
- for(int i=pos;i<_size-1;i++)
- _arr[i+1]=temp[i];
- }
- void PointArray::remove(const Uint pos) {
- if(pos>_size)
- return;
- _size--;
- Point* temp=_arr;
- _arr=new Point[_size];
- for(int i=0;i<pos;i++)
- _arr[i]=temp[i];
- for(int i=pos;i<_size;i++)
- _arr[i]=temp[i+1];
- }
- void PointArray::clear() {
- delete[] _arr;
- _arr= nullptr;
- _size=0;
- }
- const Uint PointArray::getSize() const {
- return _size;
- }
- const Point* PointArray::get(Uint pos) const {
- if(pos>=_size)
- return nullptr;
- return &(_arr[pos]);
- }
- Point* PointArray::get(Uint pos) {
- if(pos>=_size)
- return nullptr;
- return &(_arr[pos]);
- }
- void PointArray::resize(Uint n) {
- Uint sizeToCopy=Uint(std::min(n,_size));
- Point* temp=new Point[n];//nullptr
- for(int i=0;i<sizeToCopy;i++)
- temp[i]=_arr[i];
- _arr=temp;
- _size=n;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement