52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
|
#ifndef POLYGON_H
|
||
|
#define POLYGON_H
|
||
|
#include <SFML/Graphics.hpp>
|
||
|
|
||
|
#include "Coordinate.h"
|
||
|
|
||
|
class APolygon {
|
||
|
public:
|
||
|
/**
|
||
|
* @brief Construct a new Polygon object, with a white color and 0 vertices
|
||
|
*/
|
||
|
APolygon();
|
||
|
/**
|
||
|
* @brief Destroy the APolygon object
|
||
|
*/
|
||
|
virtual ~APolygon();
|
||
|
|
||
|
/**
|
||
|
* @brief Sets the color of this polygon
|
||
|
*
|
||
|
* @param COLOR The color to change the polygon to
|
||
|
*/
|
||
|
void setColor(const sf::Color COLOR);
|
||
|
/**
|
||
|
* @brief Draws this polygon to a SFML render target
|
||
|
*
|
||
|
* @param window The render target to draw the polygon on
|
||
|
*/
|
||
|
void draw(sf::RenderTarget& window);
|
||
|
/**
|
||
|
* @brief Sets the coordinate point at a specific vertex of this polygon
|
||
|
*
|
||
|
* @param IDX The index of the vertex to change
|
||
|
* @param COORD The coordinate location to set the vertex to
|
||
|
*/
|
||
|
void setCoordinate(const int IDX, const Coordinate COORD);
|
||
|
/**
|
||
|
* @brief Returns if the created polygon is valid or not
|
||
|
*
|
||
|
* @return true All of the vertices of the polygon line up with the current polygon type
|
||
|
* @return false The vertices are invalid for the current polygon type
|
||
|
*/
|
||
|
virtual bool validate() = 0;
|
||
|
protected:
|
||
|
short mNumVertices;
|
||
|
Coordinate* mVertices;
|
||
|
private:
|
||
|
sf::Color _color;
|
||
|
};
|
||
|
|
||
|
#endif // POLYGON_H
|