liriodendron 0.2.0

Procedural Pixellized 2D Textures Generator with TUI
Sprint 1
--------

L'objectif du Sprint 1 est de réaliser les fonctionnalités décrites comme
étant basiques dans le README:

 - Une grille de génération servant à définir la forme générale de la texture à
génerer. Elle est par défaut remplie de pixels vides.
 - Un bouton «Generate» générant la(les) texture(s) en fonction de la grille de
génération et des paramètres sélectionnés.
 - Une brosse sur la grille permettant de changer un pixel selectionné par: un
pixel bordure (Pixel pouvant se trouver à côté de tout type de pixel même s’il
est vide. Sa couleur est plus sombre que le pixel corps.), un pixel corps
(Pixel ne pouvant pas se trouver à côté d’un pixel vide. Sa couleur est plus
vive que celle d’un pixel bordure.), un pixel corps/vide (Pixel pouvant être
soit un pixel vide, soit un pixel corps.), un pixel corps/bordure (Pixel
pouvant être soit un pixel corps, soit un pixel bordure.), un pixel de couleur
spécifique ou un pixel vide.
 - Un nombre de textures à générer (500 au maximum.).
 - Une option permettant de définir la taille de la grille (Par défaut 10x10).

---------------------------------------------------------------------

## Issues à réaliser

id | User story | Difficulté | Priorité | Planification
:---: | :--- | :---: | :---: | :---:
HELP | En tant qu'Utilisateur, je souhaite pouvoir lancer l'application en ligne de commande sans argument ou avec l'argument "-h" ou "--help". Lorsque c'est le cas, l'application imprime une aide concernant les différentes commandes que je peux utiliser en lançant l'application. Afin de savoir comment l'application peut répondre à mes besoins, je souhaite que cette fonctionnalité soit mise à ma disposition. | 1 | Elevée | Sprint 1
GRAPHIC | En qu'Utilisateur, je souhaite pouvoir lancer l'application en ligne de commande avec l'argument "-u" ou "--userinterface". Lorsque c'est le cas, l'application ouvre l'interface utilisateur dans le terminal pour générer des textures. J'ai accès à une grille de génération où chaque cellule représente un certain nombre de pixels de la texture pixellisée que je veux generer. Au démarrage de l'application, la grille de génération est composée de cellules représentant des pixels vides et est de taille 10x10. Afin de générer une texture qui réponde à mes besoins et qui puisse être représentée graphiquement, cette fonctionnalité doit être mise à ma disposition. | 2 | Elevée | Sprint 1
RESIZE GRID | En tant qu'Utilisateur, je souhaite avoir accès à deux champs de caractère ne pouvant comporter que des caractères numériques me permettant d'ajuster la largeur et la hauteur de toutes les grilles de génération. La largeur et la hauteur sont les mêmes pour toutes les grilles de génération. Une ligne de pixels vides est ajoutée par le bas de l'espace de travail et une colonne de pixels vides est ajoutée par la droite de l'espace de travail. Par défaut, la taille d'une grille de génération est de 10x10. L'espace de travail a une taille limitée (20x20). Si la taille de l'espace de travail (en largeur et/ou en hauteur) est inférieure à la taille des grilles de génération alors des manivelles sont mises à disposition aux côtés gauche et bas des grilles de génération pour naviguer dessus quelque soit leur taille. Afin de générer des textures plus ou moins grandes, cette fonctionnalité doit être mise à ma disposition. | 1 | Elevée | Sprint 1
GENERATE | En tant qu'Utilisateur, je souhaite avoir accès à un raccourci clavier me permettant de générer des textures. En l'utilisant, la(les) texture(s) est(sont) générée(s) dans le dossier où l'application a été lancée. Le nom des textures générées sont choisis selon les disponiblités dans le dossier courant et suivent un ordre numérique (décimal, hexadecimal ou alphanumérique). Afin de pouvoir générer la(les) texture(s) à partir de mon espace de travail, des grilles de génération, des options et des paramètres selectionnés, cette fonctionnalité doit être mise à ma disposition. | 2 | Elevée | Sprint 1
QUIT | En tant qu'Utilisateur, je souhaite avoir accès à un raccourci clavier pour quitter l'application. En l'utilisant, l'application propose de sauver l'espace de travail courant ou d'annuler mon action via un message. Si l'action n'est pas annulée, l'application se ferme. Afin de pouvoir fermer l'application facilement, cette fonctionnalité doit être mise à ma disposition. | 1 | Elevée | Sprint 1
NB GENERATION | En tant qu'Utilisateur je souhaite avoir accès à un champs de caractères ne comportant que des caractères numériques. Ce champs de caractère représente le nombre de textures que l'application génère lorsque j'utilise le raccourci clavier de génération. Par défaut, la valeur de champs de caractère est 1. Au maximum, la valeur de ce champs de caractère est 500. Afin de pouvoir générer un nombre plus ou moins grand de textures, cette fonctionnalité doit être mise à ma disposition. | 1 | Elevée | Sprint 1
BRUSH | En tant qu'Utilisateur, je souhaite avoir accès à une brosse. Celle-ci permet, à l'aide de la souris, de remplir/vider les cellules de la grille de génération ou de colorer/blanchir la grille de pattern. Un clic gauche remplit la cellule de la grille de génération ou modifie une cellule de la grille de pattern sur laquelle la souris se trouve. Un clic droit efface le contenu de la cellule de la grille de génération ou blanchit la cellule de la grille de pattern sur laquelle la souris se trouve. La brosse peut remplir une cellule de la grille de generation par: un pixel Corps/Vide, un pixel Corps/Bordure, un pixel Bordure, un pixel Corps ou un pixel Specifique de couleur. Ces options sont présentes dans un selecteur et definissent les actions possibles que la brosse peut effectuer. L'action courante de la brosse est mise en évidence dans le selecteur. La brosse peut uniquement modifier une cellule de la grille de pattern par un pixel Specifique de couleur. Afin de pouvoir modifier le contenu de mes grilles de generations ou de ma grille de pattern, cette fonctionnalité doit être mise à ma disposition. | 5 | Elevée | Sprint 1
SWITCH VIEW | En tant qu'Utilisateur, je souhaite avoir accès à un raccourci clavier me permettant de modifier l'application pour qu'elle passe entre la "vue Génération" et la "vue Edition". Par défaut l'application est en "vue Edition". En "vue Edition" j'ai accès à la grille de génération, à la section raccourcis clavier et à la section Brosse. En "vue Génération", j'ai accès à toutes les sections sauf à celle de la grille de génération. En utilisant la combinaison de touches, l'application passe d'une vue à l'autre. Afin d'avoir une meilleur visibilité de mes grilles de generation et des différentes fonctionnalités de l'application, cette fonctionnalité doit être mise à ma disposition | 3 | Elevée | Sprint 1
LOG VALUES | En tant qu'Utilisateur, je souhaite avoir accès à un compteur me permettant de savoir le nombre de pixels que je peux encore remplir sur les grilles de generation et de pattern. Lorsque j'ai franchi ce seuil, un message apparait et me dit qu'il n'est pas possible de remplir plus de cellules sur les grilles lorsque je tente de remplir une cellule d'une grille. Il propose les solutions suivantes: effacer le contenu de certaines cellules, ou quitter l'application et la relancer en paramétrant le log avec une meilleure capacité. Afin d'avoir une application performante je souhaite que cette fonctionnalité soit mise à ma disposition. | 3 | Elevée | Sprint 1