#ifndef POLYGON_3D_H #define POLYGON_3D_H #include #include #include "point_3d.h" #include "line_3d.h" class Polygon_3D { private: std::list m_lstPoints; public: Polygon_3D(); Polygon_3D(const Line_3D &, const Point_3D &); Polygon_3D(const Point_3D &, const Line_3D &); Polygon_3D(const Line_3D &, const Line_3D &); std::list getPoints() const; Polygon_3D operator+(const Point_3D &); Polygon_3D operator+(const Line_3D &); Polygon_3D operator+(const Polygon_3D &); Polygon_3D &operator+=(const Point_3D &); Polygon_3D &operator+=(const Line_3D &); Polygon_3D &operator+=(const Polygon_3D &); }; Polygon_3D operator+(const Line_3D &, const Point_3D &); Polygon_3D operator+(const Point_3D &, const Line_3D &); Polygon_3D operator+(const Line_3D &, const Line_3D &); Polygon_3D operator+(const Point_3D &, const Polygon_3D &); Polygon_3D operator+(const Line_3D &, const Polygon_3D &); std::ostream &operator<<(std::ostream &, const Polygon_3D &); #endif