from Objet3D_correction import Objet3D

#############################################################################
# Variables et fonctions fournies pour la question 3                        #
#############################################################################
parametres_imprimante = {'remplissage': 20,
                         'vitesse_extrusion': 8}  # 8mm3 / seconde


def volume_cube(cube):
    a, b = cube.sommets_adjacents()
    taille_cote = a.distance(b)  # distance donnee en mm
    return taille_cote ** 3

#############################################################################
# Écrire le code de la fonction estimation_impression de la question 3      #
#############################################################################

def estimation_impression(vol_reel, dico):
    """
    Estime le temps d'impression d'un objet 3D à partir de son volume réel et
    des paramètres de l'imprimante.
    """
    vol_impression = vol_reel * (dico['remplissage'] / 100)
    temps = vol_impression / dico['vitesse_extrusion']
    return temps

# Test à calculer à la main
assert estimation_impression(1000, parametres_imprimante) == 25.0

#############################################################################
# Programme à modifier de la question 4 et 5                                #
#############################################################################
objet = Objet3D()
objet.ajouter_sommet(0, 0, 0) # s1
objet.ajouter_sommet(0, 2, 0) # s2
objet.ajouter_sommet(2, 2, 0) # s3
objet.ajouter_sommet(2, 0, 0) # s4
objet.ajouter_face([1, 2, 3, 4])
objet.ajouter_sommet(1, 1, 2) # s5
objet.ajouter_face([1, 2, 5])
objet.ajouter_face([2, 3, 5])
objet.ajouter_face([3, 4, 5])
objet.ajouter_face([4, 1, 5])
objet.afficher()

# Test de la méthode transformer
nouv_obj = objet.transformer(2)
nouv_obj.afficher()