#ifndef _shape_
#define _shape_


class Shape {
  
protected:

  long int _x;
  long int _y;
  
public:
  Shape(long x,long y):_x(x),_y(y){};

  long get_x() const {return _x;}
  long get_y() const {return _y;}

  void move(long dx, long dy) {_x+=dx;_y+=dy;};
  virtual void rotate(double angle,long c_x ,long c_y) = 0 ;
  void  rotate(double angle) {rotate(angle,_x,_y);}    
  virtual void draw() = 0;

  virtual ~Shape() {};
};

#endif