#ifndef QUADRADO_H
#define QUADRADO_H
#include "forma.H"
/** Tipo específico de forma: quadrado aberto com lados paralelos aos eixos
coordenados. Posição é o canto superior direito. */
class Quadrado : public Forma {
public:
/** Constrói novo quadrado dadas a posição do canto superior esquerdo
e a dimensão do lado (em colunas do quadro). */
Quadrado(Posicao const& posicao, int lado);
/// Devolve dimensão do lado (em colunas do quadro).
int lado() const;
/** Desenha o quadrado no quadro, compensando o facto dos píxeis serem
rectangulares. */
virtual void desenhaEm(Quadro& quadro) const;
private:
// Dimensão do lado (em colunas):
int lado_;
};
#include "quadrado_impl.H"
#endif // QUADRADO_H