diff --git a/public_html/js/action-script.js b/public_html/js/action-script.js
index fde0710..ca4df82 100644
--- a/public_html/js/action-script.js
+++ b/public_html/js/action-script.js
@@ -11,6 +11,7 @@
* http://seekdasky.ovh/ *
**************************/
+
{ /* [0] Initialisation
=========================================================*/
@@ -21,9 +22,6 @@
imageLoader: $('#image-loader')
};
- /* (2) dat.GUI initialization */
- var Controller = new dat.GUI();
-
/* (3) Canvas initialisation */
var _CAN = DOM.canvas;
_CAN.width = _CAN.height = 1000;
@@ -39,211 +37,230 @@
var trackerTask;
var trackerTask;
+ var Controller,
+ init,
+ zones,
+ track,
+ tracker,
+ initialized = false;
+
}
-{ /* [1] Initialisation du process
- =========================================================*/
+var ControllerRememberer = new PermanentStorage();
+ControllerRememberer.fetch(function(loaded_data){
+ log('Preset loaded.', '[PermanentStorage]')
- var init = function(){
- /* (1) Image par défaut */
- this.src = 'front/male/1.jpg';
+ { /* [1] Initialisation du process
+ =========================================================*/
+ /* (1) dat.GUI initialization */
+ Controller = new dat.GUI({ load: JSON.parse(loaded_data), preset: 'default' });
- /* (2) Attachement de dat.GUI */
- Controller.addFolder('Source Picture');
- Controller.add(this, 'src', this._images).listen();
+ init = function(){
+ /* (1) Image par défaut */
+ this.src = 'front/male/1.jpg';
- last = this.src;
- };
+ /* (2) Attachement de dat.GUI */
+ Controller.addFolder('Source Picture');
+ Controller.remember(this);
+ Controller.add(this, 'src', this._images).listen();
- /* (2) Gestion de tracking.js */
- var zones;
+ last = this.src;
- /* (3) Gestion du track de l'image */
- var track = {
- track: function(){
- zones = [];
- trackerTask = tracking.track(_CAN, tracker);
- }
- };
+ initialized = true;
+ };
- var tracker = new tracking.ObjectTracker(['face', 'eye', 'mouth']);
+ /* (2) Gestion de tracking.js */
+ zones;
- tracker.setStepSize(1.9);
+ /* (3) Gestion du track de l'image */
+ track = {
+ track: function(){
+ zones = [];
+ trackerTask = tracking.track(_CAN, tracker);
+ }
+ };
- Controller.addFolder('Tracking.js');
- Controller.add(track, 'track');
+ tracker = new tracking.ObjectTracker(['face', 'eye', 'mouth']);
- tracker.on('track', function(event){
+ tracker.setStepSize(1.9);
- event.data.forEach(function(rect){
+ Controller.addFolder('Tracking.js');
+ Controller.add(track, 'track');
+
+ tracker.on('track', function(event){
+
+ event.data.forEach(function(rect){
+
+ zones.push({
+ x: rect.x / _CAN.width,
+ y: rect.y / _CAN.height,
+ w: rect.width / _CAN.width,
+ h: rect.height / _CAN.height
+ });
- zones.push({
- x: rect.x / _CAN.width,
- y: rect.y / _CAN.height,
- w: rect.width / _CAN.width,
- h: rect.height / _CAN.height
});
+ // On enregistre dans `zones` les zones trackées
+ log('Recognition done', '[Tracking.js]');
+
+ // On met à jour le rendu (affichage des zones)
+ process.bind(DOM.imageLoader)();
+
});
- // On enregistre dans `zones` les zones trackées
- log('Recognition done', '[Tracking.js]');
-
- // On met à jour le rendu (affichage des zones)
- process.bind(DOM.imageLoader)();
-
- });
-
-}
+ }
-/* [2] Routine principale
-=========================================================*/
-process = function(){
- // Si erreur de `bind()`, on quitte
- if( !(this instanceof HTMLImageElement) )
- return;
-
- console.time('PROCESS');
-
- /* [0.0] Gestion du changement d'image
+ /* [2] Routine principale
=========================================================*/
- if( this.src != last ){
- zones = [];
- exec = false;
- last = this.src;
- }
+ process = function(){
+ // Si erreur de `bind()`, on quitte
+ if( !initialized || !(this instanceof HTMLImageElement) )
+ return;
+ console.time('PROCESS');
- /* [0.1] Gestion de la première exécution (par image)
- =========================================================*/
- if( !exec ){
-
- /* (1) On enregistre les dimensions par défaut
- ---------------------------------------------------------*/
- this.defaultWidth = this.width;
- this.defaultHeight = this.height;
- log('Image copied', '[Canvas]');
-
- // On change la valeur de `exec` pour qu'il n'entre plus dans ce `if`
- exec = true;
- }
-
-
- /* [1] On initialise/efface le `