= Notes de programmation pour PyMecavideo =

Ces notes donnent une direction qu'on va essayer de suivre pour continuer le développement de PyMecavideo. Elles peuvent être amendées.

== Le volet « vidéo » de l'application, vu comme un automate à plusieurs états ==

Quand un élève est dans le contexte du volet vidéo, le volet initial de PyMecavideo, il parcours les états suivants :

=== État 1 : attentes des images ===

Dans cet état, Pymecavideo ne dispose pas encore de données Vidéo, il n'y donc rien d'autre à faire que de capturer ou d'ouvrir une vidéo.

=== État 2, les images sont là, attente de l'initialisation du contexte ===

On dispose des images, leur nombre et la durée entre les trames est connue. Il s"agit d'initaliser quelques variables, dont la liste suit :

* échelle (pixels par mètre), initalement indéfinie
* origine du référentiel de caméra (initialement au centre de l'image)
* directions des axes de la caméra (initialement gauche droit et bas haut)
* nombre de points à suivre et mode de suivi (manuel ou automatique). Par défaut, un point, en mode manuel.
* numéro de la première image à considérer pour les mesures (1 par défaut). //pas sûr que ce soit nécessaire. On doit pouvoir faire commencer la vidéo où l'on souhaite et même se détacher
complètement de cette "premières image". On doit pouvoir prendre un point quelque soit l'image de départ.

On ne sort de cet état que quand tous les éléments de contexte sont définis.

=== État 3, les images et le contexte sont défini ===

Dans cet état, deux variables peuvent changer :

* le numéro de l'image à mesurer,
* le numéro de point à saisir dans l'image courante.

Selon le mode manuel ou automatique, le traitement des images varie.

En mode manuel, on met à disposition un « fanion » numéroté, à déplacer là où se trouve le point à suivre. Un cliquer-glisser gauche permet de bouger le fanion, un clic de droite permet de laisser tomber le fanion et incrémenter les compteurs.

Quand un des points est automatique, l'étape de placement du fanion est réalisée par l'ordinateur.
