# -*- coding:utf-8 -*-
__projet__ = "CoursS6"
__nom_fichier__ = "classeForme"
__author__ = "Anne-Julie TINET"
__date__ = "février 2023"

# =====================================================================================================================

#                                           Ex 3 - Formes Géométriques
#                                                   Classe FORME

# =====================================================================================================================

# Import des bibliothèques
from classePoint import Point

# Définition de la classe
class Forme:

    def __init__(self, couleur, centre = None):
        """
        Méthode constructeur
        :param couleur: chaîne de caractères, couleur (en anglais)
        :param centre: objet Point, centre de la forme, par défaut 0,0
        """
        self.couleur_ = couleur
        if centre is None:
            self.centre_ = Point()
        else:
            self.centre_ = centre

    def __str__(self):
        """
        Surcharge de print() et de str()
        :return: Chaîne de caractère
        """
        return "Forme de centre " + str(self.centre_) + " et de couleur " + self.couleur_

    def deplacer(self, dx = 0, dy = 0):
        """
        Déplace la forme.
        :param dx: Déplacement selon les abscisses
        :param dy: Déplacement selon les ordonnées
        :return: None
        """
        self.centre_.deplacer(dx, dy)

    def setCouleur(self, couleur):
        """
        Méthode mutateur. Modifie la couleur
        :param couleur: chaîne de caractères, nouvelle couleur
        :return: None
        """
        self.couleur_ = couleur

# Programme principal
if __name__ == '__main__':

    # Instanciation
    f = Forme("white")

    # Test de __str__
    print(f)

    # Test de deplace
    f.deplace(5,10)
    print(f)

    # Test de setCouleur
    f.setCouleur("black")
    print(f)