#ifndef POLYGON_2D_H #define POLYGON_2D_H #include #include #include "point_2d.h" #include "line_2d.h" class Polygon_2D { private: std::list m_lstPoints; public: Polygon_2D(); Polygon_2D(const Line_2D &, const Point_2D &); Polygon_2D(const Point_2D &, const Line_2D &); Polygon_2D(const Line_2D &, const Line_2D &); std::list getPoints() const; Polygon_2D operator+(const Point_2D &); Polygon_2D operator+(const Line_2D &); Polygon_2D operator+(const Polygon_2D &); Polygon_2D &operator+=(const Point_2D &); Polygon_2D &operator+=(const Line_2D &); Polygon_2D &operator+=(const Polygon_2D &); }; Polygon_2D operator+(const Line_2D &, const Point_2D &); Polygon_2D operator+(const Point_2D &, const Line_2D &); Polygon_2D operator+(const Line_2D &, const Line_2D &); Polygon_2D operator+(const Point_2D &, const Polygon_2D &); Polygon_2D operator+(const Line_2D &, const Polygon_2D &); std::ostream &operator<<(std::ostream &, const Polygon_2D &); #endif