diff --git a/html/index3D.html b/html/index3D.html index 15acdcc..021e1ce 100644 --- a/html/index3D.html +++ b/html/index3D.html @@ -15,23 +15,28 @@ - -
- - Votre navigateur ne supporte pas les canvas, essayez-en un autre. - -
+ + +
+ + Votre navigateur ne supporte pas les canvas, essayez-en un autre. + +
+ + - + + - + + diff --git a/outputs/095a0d83-38a6-47e7-9537-ad6697c9aa59.json b/outputs/095a0d83-38a6-47e7-9537-ad6697c9aa59.json new file mode 100644 index 0000000..6e5f6c8 --- /dev/null +++ b/outputs/095a0d83-38a6-47e7-9537-ad6697c9aa59.json @@ -0,0 +1,17 @@ +{ + "Analyse": {}, + "Interactions": [ + { + "time": 1677933160714, + "type": "start" + }, + { + "time": 1677933160753, + "type": "Affichage Mesh random : dragon en idx_i, idx_j : (2, 3)" + }, + { + "time": 1677933160753, + "type": "Affichage Mesh random : dragon en theta, delta : (-0.7853981633974483, 1.5707963267948966)" + } + ] +} \ No newline at end of file diff --git a/outputs/16c3df6a-3f60-4bab-9e81-98d2aa9bf45f.json b/outputs/16c3df6a-3f60-4bab-9e81-98d2aa9bf45f.json new file mode 100644 index 0000000..f4659fe --- /dev/null +++ b/outputs/16c3df6a-3f60-4bab-9e81-98d2aa9bf45f.json @@ -0,0 +1,17 @@ +{ + "Analyse": {}, + "Interactions": [ + { + "time": 1677933050608, + "type": "start" + }, + { + "time": 1677933050631, + "type": "Affichage Mesh random : dragon en idx_i, idx_j : (3, 0)" + }, + { + "time": 1677933050631, + "type": "Affichage Mesh random : dragon en theta, delta : (1.5707963267948966, 2.356194490192345)" + } + ] +} \ No newline at end of file diff --git a/outputs/27410937-839d-4d37-8e00-8158ae9e3f9c.json b/outputs/27410937-839d-4d37-8e00-8158ae9e3f9c.json new file mode 100644 index 0000000..0ac7d74 --- /dev/null +++ b/outputs/27410937-839d-4d37-8e00-8158ae9e3f9c.json @@ -0,0 +1,17 @@ +{ + "Analyse": {}, + "Interactions": [ + { + "time": 1677933035767, + "type": "start" + }, + { + "time": 1677933035927, + "type": "Affichage Mesh random : dragon en idx_i, idx_j : (2, 0)" + }, + { + "time": 1677933035927, + "type": "Affichage Mesh random : dragon en theta, delta : (1.5707963267948966, 1.5707963267948966)" + } + ] +} \ No newline at end of file diff --git a/outputs/2fef2424-fa18-44d0-a0e1-aa23660bcb01.json b/outputs/2fef2424-fa18-44d0-a0e1-aa23660bcb01.json new file mode 100644 index 0000000..d7cbd17 --- /dev/null +++ b/outputs/2fef2424-fa18-44d0-a0e1-aa23660bcb01.json @@ -0,0 +1,114 @@ +{ + "tache_N1": { + "obj_file": "dragon_update_user_study.obj", + "mesh": "dragon", + "position_init_idx_i": 4, + "position_init_idx_j": 4, + "theta_init": -1.5707963267948966, + "delta_init": 3.141592653589793, + "choix_poses": [ + [ + "choix1", + -1.5707963267948966, + 2.356194490192345, + 3, + 4 + ], + [ + "choix2", + -1.5707963267948966, + 1.5707963267948966, + 2, + 4 + ], + [ + "choix3", + -1.5707963267948966, + 0.7853981633974483, + 1, + 4 + ] + ] + }, + "Analyse": { + "analyse_N1": { + "mesh": "dragon", + "idx": [ + 0 + ], + "mots": [ + "1. De face" + ] + } + }, + "Interactions": [ + { + "time": 1677933651027, + "type": "start" + }, + { + "time": 1677933651516, + "type": "bouton commencerclavier" + }, + { + "time": 1677933651551, + "type": "Affichage Mesh random : dragon en idx_i, idx_j : (4, 4)" + }, + { + "time": 1677933651551, + "type": "Affichage Mesh random : dragon en theta, delta : (-1.5707963267948966, 3.141592653589793)" + }, + { + "time": 1677933652003, + "type": "fleche droite" + }, + { + "time": 1677933652114, + "type": "bouton pose n°1" + }, + { + "time": 1677933652211, + "type": "fleche droite" + }, + { + "time": 1677933652306, + "type": "bouton pose n°2" + }, + { + "time": 1677933652404, + "type": "fleche droite" + }, + { + "time": 1677933652490, + "type": "bouton pose n°3" + }, + { + "time": 1677933652611, + "type": "fleche droite" + }, + { + "time": 1677933652955, + "type": "bouton valider" + }, + { + "time": 1677933652955, + "type": "fin des choix." + }, + { + "time": 1677933652962, + "type": "Début analyse n°1" + }, + { + "time": 1677933654098, + "type": "ajout check sur : analyse n°1, mot 1. De face" + }, + { + "time": 1677933654571, + "type": "Bouton valider analyse." + }, + { + "time": 1677933654579, + "type": "Fin analyse" + } + ] +} \ No newline at end of file diff --git a/outputs/4ef30ff5-d325-4f10-827f-ed52cb6c9bd7.json b/outputs/4ef30ff5-d325-4f10-827f-ed52cb6c9bd7.json new file mode 100644 index 0000000..c1b3c5b --- /dev/null +++ b/outputs/4ef30ff5-d325-4f10-827f-ed52cb6c9bd7.json @@ -0,0 +1,174 @@ +{ + "identite": { + "Firstname": "", + "Name": "", + "Age:": "" + }, + "tache_N1": { + "obj_file": "dragon_update_user_study.obj", + "mesh": "dragon", + "position_init_idx_i": 2, + "position_init_idx_j": 2, + "theta_init": 0, + "delta_init": 1.5707963267948966, + "choix_poses": [ + [ + "choix1", + 0, + 1.5707963267948966, + 2, + 2 + ], + [ + "choix2", + 0, + 0.7853981633974483, + 1, + 2 + ], + [ + "choix3", + 0, + 0, + 0, + 2 + ] + ] + }, + "tache_N2": { + "obj_file": "camel_update_user_study_normed.obj", + "mesh": "camel", + "position_init_idx_i": 5, + "position_init_idx_j": 2, + "theta_init": 0, + "delta_init": 3.9269908169872414, + "choix_poses": [ + [ + "choix1", + 0, + 3.9269908169872414, + 5, + 2 + ], + [ + "choix2", + 0, + 3.141592653589793, + 4, + 2 + ], + [ + "choix3", + 0, + 2.356194490192345, + 3, + 2 + ] + ] + }, + "Analyse": { + "analyse_N1": { + "mesh": "dragon", + "idx": [ + 0 + ], + "mots": [ + "1. De face" + ] + } + }, + "Interactions": [ + { + "time": 1677942867337, + "type": "start" + }, + { + "time": 1677942868455, + "type": "bouton commencerclavier" + }, + { + "time": 1677942868519, + "type": "Affichage Mesh random : dragon en idx_i, idx_j : (2, 2)" + }, + { + "time": 1677942868519, + "type": "Affichage Mesh random : dragon en theta, delta : (0, 1.5707963267948966)" + }, + { + "time": 1677942869968, + "type": "bouton pose n°1" + }, + { + "time": 1677942870097, + "type": "fleche droite" + }, + { + "time": 1677942870223, + "type": "bouton pose n°2" + }, + { + "time": 1677942870287, + "type": "fleche droite" + }, + { + "time": 1677942870407, + "type": "bouton pose n°3" + }, + { + "time": 1677942870731, + "type": "bouton valider" + }, + { + "time": 1677942870769, + "type": "Affichage Mesh random : camel en idx_i, idx_j : (5, 2)" + }, + { + "time": 1677942870769, + "type": "Affichage Mesh random : camel en theta, delta : (0, 3.9269908169872414)" + }, + { + "time": 1677942871471, + "type": "bouton pose n°1" + }, + { + "time": 1677942871553, + "type": "fleche droite" + }, + { + "time": 1677942871655, + "type": "bouton pose n°2" + }, + { + "time": 1677942871718, + "type": "fleche droite" + }, + { + "time": 1677942871832, + "type": "bouton pose n°3" + }, + { + "time": 1677942872039, + "type": "bouton valider" + }, + { + "time": 1677942872039, + "type": "fin des choix." + }, + { + "time": 1677942872043, + "type": "Début analyse n°1" + }, + { + "time": 1677942872471, + "type": "ajout check sur : analyse n°1, mot 1. De face" + }, + { + "time": 1677942872664, + "type": "Bouton valider analyse." + }, + { + "time": 1677942872677, + "type": "Fin analyse" + } + ] +} \ No newline at end of file diff --git a/outputs/4fee1388-57e2-4f51-b45d-751c6bef179d.json b/outputs/4fee1388-57e2-4f51-b45d-751c6bef179d.json new file mode 100644 index 0000000..13bb5ec --- /dev/null +++ b/outputs/4fee1388-57e2-4f51-b45d-751c6bef179d.json @@ -0,0 +1,198 @@ +{ + "identite": { + "Firstname": "marie", + "Name": "peliss", + "Age:": "12" + }, + "tache_N1": { + "obj_file": "dragon_update_user_study.obj", + "mesh": "dragon", + "position_init_idx_i": 4, + "position_init_idx_j": 1, + "theta_init": 0.7853981633974483, + "delta_init": 3.141592653589793, + "choix_poses": [ + [ + "choix1", + 0.7853981633974483, + 3.141592653589793, + 4, + 1 + ], + [ + "choix2", + 0.7853981633974483, + 2.356194490192345, + 3, + 1 + ], + [ + "choix3", + 0.7853981633974483, + 1.5707963267948966, + 2, + 1 + ] + ] + }, + "tache_N2": { + "obj_file": "camel_update_user_study_normed.obj", + "mesh": "camel", + "position_init_idx_i": 5, + "position_init_idx_j": 4, + "theta_init": -1.5707963267948966, + "delta_init": 3.9269908169872414, + "choix_poses": [ + [ + "choix1", + -1.5707963267948966, + 3.9269908169872414, + 5, + 4 + ], + [ + "choix2", + -1.5707963267948966, + 3.141592653589793, + 4, + 4 + ], + [ + "choix3", + -1.5707963267948966, + 2.356194490192345, + 3, + 4 + ] + ] + }, + "Analyse": { + "analyse_N1": { + "mesh": "dragon", + "idx": [ + 0 + ], + "mots": [ + "1. De face" + ] + } + }, + "Interactions": [ + { + "time": 1677942897472, + "type": "start" + }, + { + "time": 1677942901527, + "type": "bouton commencerclavier" + }, + { + "time": 1677942901586, + "type": "Affichage Mesh random : dragon en idx_i, idx_j : (4, 1)" + }, + { + "time": 1677942901586, + "type": "Affichage Mesh random : dragon en theta, delta : (0.7853981633974483, 3.141592653589793)" + }, + { + "time": 1677942903561, + "type": "bouton pose n°1" + }, + { + "time": 1677942903639, + "type": "fleche droite" + }, + { + "time": 1677942903735, + "type": "bouton pose n°2" + }, + { + "time": 1677942903817, + "type": "fleche droite" + }, + { + "time": 1677942903910, + "type": "bouton pose n°3" + }, + { + "time": 1677942904048, + "type": "fleche droite" + }, + { + "time": 1677942904080, + "type": "bouton pose n°4" + }, + { + "time": 1677942904080, + "type": "Affichage error 3 déjà fait" + }, + { + "time": 1677942904527, + "type": "bouton pose n°4" + }, + { + "time": 1677942904527, + "type": "Affichage error 3 déjà fait" + }, + { + "time": 1677942905622, + "type": "bouton valider" + }, + { + "time": 1677942905651, + "type": "Affichage Mesh random : camel en idx_i, idx_j : (5, 4)" + }, + { + "time": 1677942905651, + "type": "Affichage Mesh random : camel en theta, delta : (-1.5707963267948966, 3.9269908169872414)" + }, + { + "time": 1677942905895, + "type": "bouton pose n°1" + }, + { + "time": 1677942906559, + "type": "fleche droite" + }, + { + "time": 1677942906638, + "type": "bouton pose n°2" + }, + { + "time": 1677942906734, + "type": "fleche droite" + }, + { + "time": 1677942906814, + "type": "bouton pose n°3" + }, + { + "time": 1677942906947, + "type": "fleche droite" + }, + { + "time": 1677942907530, + "type": "bouton valider" + }, + { + "time": 1677942907530, + "type": "fin des choix." + }, + { + "time": 1677942907542, + "type": "Début analyse n°1" + }, + { + "time": 1677942908262, + "type": "ajout check sur : analyse n°1, mot 1. De face" + }, + { + "time": 1677942908471, + "type": "Bouton valider analyse." + }, + { + "time": 1677942908475, + "type": "Fin analyse" + } + ] +} \ No newline at end of file diff --git a/outputs/70048ef6-49aa-42ac-ac75-b9a71ded729d.json b/outputs/70048ef6-49aa-42ac-ac75-b9a71ded729d.json deleted file mode 100644 index 5bb3513..0000000 --- a/outputs/70048ef6-49aa-42ac-ac75-b9a71ded729d.json +++ /dev/null @@ -1,282 +0,0 @@ -{ - "tache_N1": { - "obj_file": "dragon_update_user_study.obj", - "mesh": "dragon", - "position_init_idx_i": 5, - "position_init_idx_j": 3, - "theta_init": -0.7853981633974483, - "delta_init": 3.9269908169872414, - "choix_poses": [ - [ - "choix1", - -0.7853981633974483, - 3.9269908169872414, - 5, - 3 - ], - [ - "choix2", - -0.7853981633974483, - 3.141592653589793, - 4, - 3 - ], - [ - "choix3", - -0.7853981633974483, - 2.356194490192345, - 3, - 3 - ] - ] - }, - "tache_N2": { - "obj_file": "camel_update_user_study_normed.obj", - "mesh": "camel", - "position_init_idx_i": 2, - "position_init_idx_j": 0, - "theta_init": 1.5707963267948966, - "delta_init": 1.5707963267948966, - "choix_poses": [ - [ - "choix1", - 1.5707963267948966, - 1.5707963267948966, - 2, - 0 - ], - [ - "choix2", - 1.5707963267948966, - 0.7853981633974483, - 1, - 0 - ], - [ - "choix3", - 1.5707963267948966, - 0, - 0, - 0 - ] - ] - }, - "tache_N3": { - "obj_file": "gorgoile_update_user_study_centered_normed.obj", - "mesh": "gorgoile", - "position_init_idx_i": 1, - "position_init_idx_j": 4, - "theta_init": -1.5707963267948966, - "delta_init": 0.7853981633974483, - "choix_poses": [ - [ - "choix1", - -1.5707963267948966, - 0.7853981633974483, - 1, - 4 - ], - [ - "choix2", - -1.5707963267948966, - 0, - 0, - 4 - ], - [ - "choix3", - -1.5707963267948966, - 5.497787143782138, - 7, - 4 - ] - ] - }, - "Analyse": { - "analyse_N1": { - "mesh": "dragon", - "idx": [ - 0 - ], - "mots": [ - "1. De face" - ] - }, - "analyse_N2": { - "mesh": "camel", - "idx": [ - 0 - ], - "mots": [ - "1. De face" - ] - }, - "analyse_N3": { - "mesh": "gorgoile", - "idx": [ - 0 - ], - "mots": [ - "1. De face" - ] - } - }, - "Interactions": [ - { - "time": 1677871014699, - "type": "start" - }, - { - "time": 1677871014724, - "type": "Affichage Mesh random : dragon en idx_i, idx_j : (5, 3)" - }, - { - "time": 1677871014724, - "type": "Affichage Mesh random : dragon en theta, delta : (-0.7853981633974483, 3.9269908169872414)" - }, - { - "time": 1677871015384, - "type": "bouton commencerclavier" - }, - { - "time": 1677871016519, - "type": "bouton pose n°1" - }, - { - "time": 1677871016598, - "type": "fleche droite" - }, - { - "time": 1677871016710, - "type": "bouton pose n°2" - }, - { - "time": 1677871016814, - "type": "fleche droite" - }, - { - "time": 1677871016902, - "type": "bouton pose n°3" - }, - { - "time": 1677871017030, - "type": "fleche droite" - }, - { - "time": 1677871017894, - "type": "bouton valider" - }, - { - "time": 1677871017945, - "type": "Affichage Mesh random : camel en idx_i, idx_j : (2, 0)" - }, - { - "time": 1677871017945, - "type": "Affichage Mesh random : camel en theta, delta : (1.5707963267948966, 1.5707963267948966)" - }, - { - "time": 1677871018438, - "type": "bouton pose n°1" - }, - { - "time": 1677871018542, - "type": "fleche droite" - }, - { - "time": 1677871018646, - "type": "bouton pose n°2" - }, - { - "time": 1677871018726, - "type": "fleche droite" - }, - { - "time": 1677871018806, - "type": "bouton pose n°3" - }, - { - "time": 1677871018998, - "type": "fleche droite" - }, - { - "time": 1677871019486, - "type": "bouton valider" - }, - { - "time": 1677871019526, - "type": "Affichage Mesh random : gorgoile en idx_i, idx_j : (1, 4)" - }, - { - "time": 1677871019526, - "type": "Affichage Mesh random : gorgoile en theta, delta : (-1.5707963267948966, 0.7853981633974483)" - }, - { - "time": 1677871019926, - "type": "bouton pose n°1" - }, - { - "time": 1677871020030, - "type": "fleche droite" - }, - { - "time": 1677871020150, - "type": "bouton pose n°2" - }, - { - "time": 1677871020246, - "type": "fleche droite" - }, - { - "time": 1677871020334, - "type": "bouton pose n°3" - }, - { - "time": 1677871020950, - "type": "bouton valider" - }, - { - "time": 1677871020950, - "type": "fin des choix." - }, - { - "time": 1677871020951, - "type": "Début analyse n°1" - }, - { - "time": 1677871023750, - "type": "ajout check sur : analyse n°1, mot 1. De face" - }, - { - "time": 1677871024262, - "type": "Bouton valider analyse." - }, - { - "time": 1677871024262, - "type": "Début analyse n°2" - }, - { - "time": 1677871024735, - "type": "ajout check sur : analyse n°2, mot 1. De face" - }, - { - "time": 1677871025006, - "type": "Bouton valider analyse." - }, - { - "time": 1677871025006, - "type": "Début analyse n°3" - }, - { - "time": 1677871025358, - "type": "ajout check sur : analyse n°3, mot 1. De face" - }, - { - "time": 1677871025678, - "type": "Bouton valider analyse." - }, - { - "time": 1677871025684, - "type": "Fin analyse" - } - ] -} \ No newline at end of file diff --git a/outputs/73541429-1302-41a1-b32b-d011e02caf70.json b/outputs/73541429-1302-41a1-b32b-d011e02caf70.json deleted file mode 100644 index 21b8838..0000000 --- a/outputs/73541429-1302-41a1-b32b-d011e02caf70.json +++ /dev/null @@ -1,674 +0,0 @@ -{ - "tache_N1": { - "obj_file": "dragon_update_user_study.obj", - "mesh": "dragon", - "position_init_idx_i": 5, - "position_init_idx_j": 1, - "theta_init": 0.7853981633974483, - "delta_init": 3.9269908169872414, - "choix_poses": [ - [ - "choix1", - 0.7853981633974483, - 2.356194490192345, - 3, - 1 - ], - [ - "choix3", - 0.7853981633974483, - 0.7853981633974483, - 1, - 1 - ], - [ - "choix3", - 0.7853981633974483, - 0, - 0, - 1 - ] - ] - }, - "tache_N2": { - "obj_file": "camel_update_user_study_normed.obj", - "mesh": "camel", - "position_init_idx_i": 7, - "position_init_idx_j": 2, - "theta_init": 0, - "delta_init": 5.497787143782138, - "choix_poses": [ - [ - "choix1", - 0, - 5.497787143782138, - 7, - 2 - ], - [ - "choix2", - 0, - 4.71238898038469, - 6, - 2 - ], - [ - "choix3", - 0, - 0, - 0, - 2 - ] - ] - }, - "tache_N3": { - "obj_file": "gorgoile_update_user_study_centered_normed.obj", - "mesh": "gorgoile", - "position_init_idx_i": 3, - "position_init_idx_j": 0, - "theta_init": 1.5707963267948966, - "delta_init": 2.356194490192345, - "choix_poses": [ - [ - "choix1", - 1.5707963267948966, - 2.356194490192345, - 3, - 0 - ], - [ - "choix2", - 1.5707963267948966, - 1.5707963267948966, - 2, - 0 - ], - [ - "choix3", - 1.5707963267948966, - 0.7853981633974483, - 1, - 0 - ] - ] - }, - "Analyse": { - "analyse_N1": { - "mesh": "dragon", - "idx": [ - 1 - ], - "mots": [ - "2. De profil" - ] - }, - "analyse_N2": { - "mesh": "camel", - "idx": [ - 1 - ], - "mots": [ - "2. De profil" - ] - }, - "analyse_N3": { - "mesh": "gorgoile", - "idx": [ - 2 - ], - "mots": [ - "3. Debout" - ] - } - }, - "Interactions": [ - { - "time": 1677869301854, - "type": "start" - }, - { - "time": 1677869301901, - "type": "Affichage Mesh random : dragon en idx_i, idx_j : (5, 1)" - }, - { - "time": 1677869301902, - "type": "Affichage Mesh random : dragon en theta, delta : (0.7853981633974483, 3.9269908169872414)" - }, - { - "time": 1677869337042, - "type": "bouton commencerclavier" - }, - { - "time": 1677869344042, - "type": "fleche haut" - }, - { - "time": 1677869344234, - "type": "fleche haut" - }, - { - "time": 1677869344234, - "type": "Affichage error à cause de fleche haut" - }, - { - "time": 1677869344506, - "type": "fleche bas" - }, - { - "time": 1677869344826, - "type": "fleche bas" - }, - { - "time": 1677869345050, - "type": "fleche bas" - }, - { - "time": 1677869345226, - "type": "fleche gauche" - }, - { - "time": 1677869345450, - "type": "fleche gauche" - }, - { - "time": 1677869345690, - "type": "fleche haut" - }, - { - "time": 1677869346026, - "type": "fleche bas" - }, - { - "time": 1677869346282, - "type": "fleche droite" - }, - { - "time": 1677869346538, - "type": "fleche bas" - }, - { - "time": 1677869347018, - "type": "fleche haut" - }, - { - "time": 1677869347178, - "type": "fleche haut" - }, - { - "time": 1677869347386, - "type": "fleche gauche" - }, - { - "time": 1677869347546, - "type": "fleche gauche" - }, - { - "time": 1677869347706, - "type": "fleche gauche" - }, - { - "time": 1677869347850, - "type": "fleche gauche" - }, - { - "time": 1677869348002, - "type": "fleche gauche" - }, - { - "time": 1677869348098, - "type": "fleche droite" - }, - { - "time": 1677869348258, - "type": "fleche bas" - }, - { - "time": 1677869348434, - "type": "fleche bas" - }, - { - "time": 1677869348578, - "type": "fleche bas" - }, - { - "time": 1677869348578, - "type": "Affichage error à cause de fleche bas" - }, - { - "time": 1677869349162, - "type": "fleche bas" - }, - { - "time": 1677869349162, - "type": "Affichage error à cause de fleche bas" - }, - { - "time": 1677869349466, - "type": "fleche bas" - }, - { - "time": 1677869349466, - "type": "Affichage error à cause de fleche bas" - }, - { - "time": 1677869349738, - "type": "fleche bas" - }, - { - "time": 1677869349738, - "type": "Affichage error à cause de fleche bas" - }, - { - "time": 1677869350042, - "type": "fleche bas" - }, - { - "time": 1677869350042, - "type": "Affichage error à cause de fleche bas" - }, - { - "time": 1677869350298, - "type": "fleche bas" - }, - { - "time": 1677869350298, - "type": "Affichage error à cause de fleche bas" - }, - { - "time": 1677869350674, - "type": "fleche haut" - }, - { - "time": 1677869350850, - "type": "fleche haut" - }, - { - "time": 1677869351010, - "type": "fleche haut" - }, - { - "time": 1677869351154, - "type": "fleche haut" - }, - { - "time": 1677869351426, - "type": "fleche haut" - }, - { - "time": 1677869351426, - "type": "Affichage error à cause de fleche haut" - }, - { - "time": 1677869351634, - "type": "fleche haut" - }, - { - "time": 1677869351634, - "type": "Affichage error à cause de fleche haut" - }, - { - "time": 1677869352394, - "type": "fleche bas" - }, - { - "time": 1677869352586, - "type": "fleche bas" - }, - { - "time": 1677869353162, - "type": "fleche gauche" - }, - { - "time": 1677869353386, - "type": "fleche haut" - }, - { - "time": 1677869356386, - "type": "bouton pose n°1" - }, - { - "time": 1677869358378, - "type": "fleche droite" - }, - { - "time": 1677869358826, - "type": "fleche gauche" - }, - { - "time": 1677869359490, - "type": "bouton pose n°2" - }, - { - "time": 1677869359490, - "type": "Affichage error pose déjà sélectionnée" - }, - { - "time": 1677869359714, - "type": "bouton pose n°2" - }, - { - "time": 1677869359714, - "type": "Affichage error pose déjà sélectionnée" - }, - { - "time": 1677869361146, - "type": "fleche droite" - }, - { - "time": 1677869361450, - "type": "bouton pose n°2" - }, - { - "time": 1677869362522, - "type": "fleche droite" - }, - { - "time": 1677869362730, - "type": "bouton pose n°3" - }, - { - "time": 1677869364500, - "type": "fleche switch bas de la pose n°2" - }, - { - "time": 1677869365334, - "type": "fleche switch haut de la pose n°3" - }, - { - "time": 1677869366034, - "type": "fleche switch haut de la pose n°2" - }, - { - "time": 1677869367101, - "type": "suppression de la pose n°1" - }, - { - "time": 1677869368610, - "type": "fleche droite" - }, - { - "time": 1677869368722, - "type": "bouton pose n°3" - }, - { - "time": 1677869370986, - "type": "bouton valider" - }, - { - "time": 1677869371040, - "type": "Affichage Mesh random : camel en idx_i, idx_j : (7, 2)" - }, - { - "time": 1677869371040, - "type": "Affichage Mesh random : camel en theta, delta : (0, 5.497787143782138)" - }, - { - "time": 1677869373650, - "type": "bouton pose n°1" - }, - { - "time": 1677869373730, - "type": "fleche droite" - }, - { - "time": 1677869373842, - "type": "bouton pose n°2" - }, - { - "time": 1677869373922, - "type": "fleche droite" - }, - { - "time": 1677869374018, - "type": "bouton pose n°3" - }, - { - "time": 1677869374114, - "type": "fleche droite" - }, - { - "time": 1677869377517, - "type": "fleche switch haut de la pose n°2" - }, - { - "time": 1677869379783, - "type": "bouton renitialiser" - }, - { - "time": 1677869381362, - "type": "fleche droite" - }, - { - "time": 1677869381530, - "type": "fleche droite" - }, - { - "time": 1677869381658, - "type": "fleche droite" - }, - { - "time": 1677869381946, - "type": "bouton pose n°1" - }, - { - "time": 1677869382410, - "type": "fleche droite" - }, - { - "time": 1677869382730, - "type": "fleche droite" - }, - { - "time": 1677869383533, - "type": "bouton retirer" - }, - { - "time": 1677869384498, - "type": "bouton pose n°1" - }, - { - "time": 1677869384626, - "type": "fleche droite" - }, - { - "time": 1677869384818, - "type": "bouton pose n°2" - }, - { - "time": 1677869385154, - "type": "fleche gauche" - }, - { - "time": 1677869385298, - "type": "fleche gauche" - }, - { - "time": 1677869385634, - "type": "bouton pose n°3" - }, - { - "time": 1677869385746, - "type": "fleche gauche" - }, - { - "time": 1677869386394, - "type": "bouton pose n°4" - }, - { - "time": 1677869386394, - "type": "Affichage error 3 déjà fait" - }, - { - "time": 1677869388730, - "type": "bouton pose n°4" - }, - { - "time": 1677869388730, - "type": "Affichage error 3 déjà fait" - }, - { - "time": 1677869389162, - "type": "bouton pose n°4" - }, - { - "time": 1677869389162, - "type": "Affichage error 3 déjà fait" - }, - { - "time": 1677869389506, - "type": "bouton pose n°4" - }, - { - "time": 1677869389506, - "type": "Affichage error 3 déjà fait" - }, - { - "time": 1677869389794, - "type": "bouton pose n°4" - }, - { - "time": 1677869389794, - "type": "Affichage error 3 déjà fait" - }, - { - "time": 1677869391658, - "type": "bouton pose n°4" - }, - { - "time": 1677869391658, - "type": "Affichage error 3 déjà fait" - }, - { - "time": 1677869392432, - "type": "bouton raz" - }, - { - "time": 1677869398116, - "type": "bouton raz croix" - }, - { - "time": 1677869403965, - "type": "bouton valider" - }, - { - "time": 1677869404011, - "type": "Affichage Mesh random : gorgoile en idx_i, idx_j : (3, 0)" - }, - { - "time": 1677869404011, - "type": "Affichage Mesh random : gorgoile en theta, delta : (1.5707963267948966, 2.356194490192345)" - }, - { - "time": 1677869412986, - "type": "bouton pose n°1" - }, - { - "time": 1677869413138, - "type": "fleche droite" - }, - { - "time": 1677869413250, - "type": "bouton pose n°2" - }, - { - "time": 1677869413378, - "type": "fleche droite" - }, - { - "time": 1677869414146, - "type": "bouton pose n°3" - }, - { - "time": 1677869414386, - "type": "fleche droite" - }, - { - "time": 1677869415314, - "type": "bouton valider" - }, - { - "time": 1677869415314, - "type": "fin des choix." - }, - { - "time": 1677869415315, - "type": "Début analyse n°1" - }, - { - "time": 1677869457626, - "type": "ajout check sur : analyse n°1, mot 1. De face" - }, - { - "time": 1677869458106, - "type": "retrait check sur : analyse n°1, mot 1. De face" - }, - { - "time": 1677869458426, - "type": "ajout check sur : analyse n°1, mot 2. De profil" - }, - { - "time": 1677869458642, - "type": "ajout check sur : analyse n°1, mot 3. Debout" - }, - { - "time": 1677869458930, - "type": "retrait check sur : analyse n°1, mot 2. De profil" - }, - { - "time": 1677869459090, - "type": "ajout check sur : analyse n°1, mot 1. De face" - }, - { - "time": 1677869459746, - "type": "retrait check sur : analyse n°1, mot 1. De face" - }, - { - "time": 1677869460082, - "type": "ajout check sur : analyse n°1, mot 2. De profil" - }, - { - "time": 1677869460434, - "type": "retrait check sur : analyse n°1, mot 3. Debout" - }, - { - "time": 1677869460890, - "type": "retrait check sur : analyse n°1, mot 2. De profil" - }, - { - "time": 1677869461882, - "type": "ajout check sur : analyse n°1, mot 2. De profil" - }, - { - "time": 1677869465322, - "type": "Bouton valider analyse." - }, - { - "time": 1677869465322, - "type": "Début analyse n°2" - }, - { - "time": 1677869466658, - "type": "ajout check sur : analyse n°2, mot 2. De profil" - }, - { - "time": 1677869467249, - "type": "Bouton valider analyse." - }, - { - "time": 1677869467249, - "type": "Début analyse n°3" - }, - { - "time": 1677869481386, - "type": "ajout check sur : analyse n°3, mot 3. Debout" - }, - { - "time": 1677869482193, - "type": "Bouton valider analyse." - }, - { - "time": 1677869482196, - "type": "Fin analyse" - } - ] -} \ No newline at end of file diff --git a/outputs/8e068382-ebb4-4d44-91e5-dc9b7eefe3aa.json b/outputs/8e068382-ebb4-4d44-91e5-dc9b7eefe3aa.json deleted file mode 100644 index a884117..0000000 --- a/outputs/8e068382-ebb4-4d44-91e5-dc9b7eefe3aa.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "tache_N1": { - "obj_file": "dragon_update_user_study.obj", - "mesh": "dragon", - "position_init_idx_i": 7, - "position_init_idx_j": 1, - "theta_init": 0.7853981633974483, - "delta_init": 5.497787143782138, - "choix_poses": [ - [ - "choix1", - 0.7853981633974483, - 4.71238898038469, - 6, - 1 - ], - [ - "choix2", - 0.7853981633974483, - 3.9269908169872414, - 5, - 1 - ], - [ - "choix3", - 0.7853981633974483, - 3.141592653589793, - 4, - 1 - ] - ] - }, - "tache_N2": { - "obj_file": "camel_update_user_study_normed.obj", - "mesh": "camel", - "position_init_idx_i": 6, - "position_init_idx_j": 3, - "theta_init": -0.7853981633974483, - "delta_init": 4.71238898038469, - "choix_poses": [ - [ - "choix1", - -0.7853981633974483, - 4.71238898038469, - 6, - 3 - ], - [ - "choix2", - -0.7853981633974483, - 3.9269908169872414, - 5, - 3 - ], - [ - "choix3", - -0.7853981633974483, - 3.141592653589793, - 4, - 3 - ] - ] - }, - "tache_N3": { - "obj_file": "gorgoile_update_user_study_centered_normed.obj", - "mesh": "gorgoile", - "position_init_idx_i": 7, - "position_init_idx_j": 1, - "theta_init": 0.7853981633974483, - "delta_init": 5.497787143782138, - "choix_poses": [ - [ - "choix1", - 0.7853981633974483, - 5.497787143782138, - 7, - 1 - ], - [ - "choix2", - 0.7853981633974483, - 4.71238898038469, - 6, - 1 - ], - [ - "choix3", - 0.7853981633974483, - 3.9269908169872414, - 5, - 1 - ] - ] - } -} \ No newline at end of file diff --git a/outputs/b3474b5b-7433-4259-8d4a-57e3bf1cd49e.json b/outputs/b3474b5b-7433-4259-8d4a-57e3bf1cd49e.json new file mode 100644 index 0000000..0071eac --- /dev/null +++ b/outputs/b3474b5b-7433-4259-8d4a-57e3bf1cd49e.json @@ -0,0 +1,173 @@ +{ + "tache_N1": { + "obj_file": "dragon_update_user_study.obj", + "mesh": "dragon", + "position_init_idx_i": 2, + "position_init_idx_j": 4, + "theta_init": -1.5707963267948966, + "delta_init": 1.5707963267948966, + "choix_poses": [ + [ + "choix1", + -1.5707963267948966, + 0.7853981633974483, + 1, + 4 + ], + [ + "choix2", + -1.5707963267948966, + 0, + 0, + 4 + ], + [ + "choix3", + -1.5707963267948966, + 5.497787143782138, + 7, + 4 + ] + ] + }, + "tache_N2": { + "obj_file": "camel_update_user_study_normed.obj", + "mesh": "camel", + "position_init_idx_i": 3, + "position_init_idx_j": 1, + "theta_init": 0.7853981633974483, + "delta_init": 2.356194490192345, + "choix_poses": [ + [ + "choix1", + 0.7853981633974483, + 2.356194490192345, + 3, + 1 + ], + [ + "choix2", + 0.7853981633974483, + 1.5707963267948966, + 2, + 1 + ], + [ + "choix3", + 0.7853981633974483, + 0.7853981633974483, + 1, + 1 + ] + ] + }, + "Analyse": { + "analyse_N1": { + "mesh": "dragon", + "idx": [ + 0 + ], + "mots": [ + "1. De face" + ] + } + }, + "Interactions": [ + { + "time": 1677933673225, + "type": "start" + }, + { + "time": 1677933673756, + "type": "bouton commencerclavier" + }, + { + "time": 1677933673807, + "type": "Affichage Mesh random : dragon en idx_i, idx_j : (2, 4)" + }, + { + "time": 1677933673807, + "type": "Affichage Mesh random : dragon en theta, delta : (-1.5707963267948966, 1.5707963267948966)" + }, + { + "time": 1677933673900, + "type": "fleche droite" + }, + { + "time": 1677933674149, + "type": "bouton pose n°1" + }, + { + "time": 1677933674259, + "type": "fleche droite" + }, + { + "time": 1677933674370, + "type": "bouton pose n°2" + }, + { + "time": 1677933674490, + "type": "fleche droite" + }, + { + "time": 1677933674644, + "type": "bouton pose n°3" + }, + { + "time": 1677933675090, + "type": "bouton valider" + }, + { + "time": 1677933675109, + "type": "Affichage Mesh random : camel en idx_i, idx_j : (3, 1)" + }, + { + "time": 1677933675109, + "type": "Affichage Mesh random : camel en theta, delta : (0.7853981633974483, 2.356194490192345)" + }, + { + "time": 1677933675787, + "type": "bouton pose n°1" + }, + { + "time": 1677933675899, + "type": "fleche droite" + }, + { + "time": 1677933675995, + "type": "bouton pose n°2" + }, + { + "time": 1677933676099, + "type": "fleche droite" + }, + { + "time": 1677933676186, + "type": "bouton pose n°3" + }, + { + "time": 1677933676538, + "type": "bouton valider" + }, + { + "time": 1677933676538, + "type": "fin des choix." + }, + { + "time": 1677933676544, + "type": "Début analyse n°1" + }, + { + "time": 1677933676970, + "type": "ajout check sur : analyse n°1, mot 1. De face" + }, + { + "time": 1677933677194, + "type": "Bouton valider analyse." + }, + { + "time": 1677933677194, + "type": "Fin analyse" + } + ] +} \ No newline at end of file diff --git a/outputs/caf4dd00-d24f-4b9a-bdfb-3960f12e96a3.json b/outputs/caf4dd00-d24f-4b9a-bdfb-3960f12e96a3.json deleted file mode 100644 index 4be3133..0000000 --- a/outputs/caf4dd00-d24f-4b9a-bdfb-3960f12e96a3.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "tache_N1": { - "obj_file": "dragon_update_user_study.obj", - "mesh": "dragon", - "position_init_idx_i": 6, - "position_init_idx_j": 4, - "theta_init": -1.5707963267948966, - "delta_init": 4.71238898038469, - "choix_poses": [ - [ - "choix1", - -1.5707963267948966, - 3.9269908169872414, - 5, - 4 - ], - [ - "choix3", - -1.5707963267948966, - 2.356194490192345, - 3, - 4 - ], - [ - "choix2", - -1.5707963267948966, - 3.141592653589793, - 4, - 4 - ] - ] - }, - "tache_N2": { - "obj_file": "camel_update_user_study_normed.obj", - "mesh": "camel", - "position_init_idx_i": 1, - "position_init_idx_j": 3, - "theta_init": -0.7853981633974483, - "delta_init": 0.7853981633974483, - "choix_poses": [ - [ - "choix1", - -0.7853981633974483, - 0.7853981633974483, - 1, - 3 - ], - [ - "choix2", - -0.7853981633974483, - 0, - 0, - 3 - ], - [ - "choix3", - -0.7853981633974483, - 5.497787143782138, - 7, - 3 - ] - ] - }, - "tache_N3": { - "obj_file": "gorgoile_update_user_study_centered_normed.obj", - "mesh": "gorgoile", - "position_init_idx_i": 2, - "position_init_idx_j": 1, - "theta_init": 0.7853981633974483, - "delta_init": 1.5707963267948966, - "choix_poses": [ - [ - "choix1", - 0.7853981633974483, - 1.5707963267948966, - 2, - 1 - ], - [ - "choix3", - 0.7853981633974483, - 0, - 0, - 1 - ], - [ - "choix3", - 0.7853981633974483, - 5.497787143782138, - 7, - 1 - ] - ] - }, - "Analyse": { - "analyse_N1": { - "mesh": "dragon", - "idx": [ - 0 - ], - "mots": [ - "1. De face" - ] - }, - "analyse_N2": { - "mesh": "camel", - "idx": [ - 1 - ], - "mots": [ - "2. De profil" - ] - }, - "analyse_N3": { - "mesh": "gorgoile", - "idx": [ - 2 - ], - "mots": [ - "3. Debout" - ] - } - }, - "Interactions": [ - { - "time": 1677838666856, - "type": "start" - }, - { - "time": 1677838666879, - "type": "Affichage Mesh random : dragon en idx_i, idx_j : (6, 4)" - }, - { - "time": 1677838666879, - "type": "Affichage Mesh random : dragon en theta, delta : (-1.5707963267948966, 4.71238898038469)" - }, - { - "time": 1677838667858, - "type": "bouton commencerclavier" - }, - { - "time": 1677838668905, - "type": "fleche droite" - }, - { - "time": 1677838669074, - "type": "bouton pose n°1" - }, - { - "time": 1677838669233, - "type": "fleche droite" - }, - { - "time": 1677838669350, - "type": "bouton pose n°2" - }, - { - "time": 1677838669826, - "type": "fleche droite" - }, - { - "time": 1677838670273, - "type": "bouton pose n°3" - }, - { - "time": 1677838679013, - "type": "fleche switch bas de la pose n°2" - }, - { - "time": 1677838680695, - "type": "bouton valider" - }, - { - "time": 1677838680718, - "type": "Affichage Mesh random : camel en idx_i, idx_j : (1, 3)" - }, - { - "time": 1677838680718, - "type": "Affichage Mesh random : camel en theta, delta : (-0.7853981633974483, 0.7853981633974483)" - }, - { - "time": 1677838681793, - "type": "bouton pose n°1" - }, - { - "time": 1677838681906, - "type": "fleche droite" - }, - { - "time": 1677838682049, - "type": "bouton pose n°2" - }, - { - "time": 1677838682153, - "type": "fleche droite" - }, - { - "time": 1677838682258, - "type": "bouton pose n°3" - }, - { - "time": 1677838682858, - "type": "bouton valider" - }, - { - "time": 1677838682883, - "type": "Affichage Mesh random : gorgoile en idx_i, idx_j : (2, 1)" - }, - { - "time": 1677838682883, - "type": "Affichage Mesh random : gorgoile en theta, delta : (0.7853981633974483, 1.5707963267948966)" - }, - { - "time": 1677838684417, - "type": "bouton pose n°1" - }, - { - "time": 1677838684594, - "type": "fleche droite" - }, - { - "time": 1677838684737, - "type": "bouton pose n°2" - }, - { - "time": 1677838685642, - "type": "fleche droite" - }, - { - "time": 1677838686474, - "type": "bouton pose n°3" - }, - { - "time": 1677838688278, - "type": "suppression de la pose n°2" - }, - { - "time": 1677838689177, - "type": "bouton pose n°3" - }, - { - "time": 1677838689177, - "type": "Affichage error pose déjà sélectionnée" - }, - { - "time": 1677838689289, - "type": "fleche droite" - }, - { - "time": 1677838689450, - "type": "bouton pose n°3" - }, - { - "time": 1677838716760, - "type": "bouton valider" - }, - { - "time": 1677838716760, - "type": "fin des choix." - }, - { - "time": 1677838716761, - "type": "Début analyse n°1" - }, - { - "time": 1677838718112, - "type": "ajout check sur : analyse n°1, mot 1. De face" - }, - { - "time": 1677838718641, - "type": "Bouton valider analyse." - }, - { - "time": 1677838718641, - "type": "Début analyse n°2" - }, - { - "time": 1677838719650, - "type": "ajout check sur : analyse n°2, mot 2. De profil" - }, - { - "time": 1677838720057, - "type": "Bouton valider analyse." - }, - { - "time": 1677838720057, - "type": "Début analyse n°3" - }, - { - "time": 1677838720729, - "type": "ajout check sur : analyse n°3, mot 3. Debout" - }, - { - "time": 1677838721384, - "type": "Bouton valider analyse." - }, - { - "time": 1677838721393, - "type": "Fin analyse" - } - ] -} \ No newline at end of file diff --git a/outputs/e1218f1a-12ea-43e6-a19b-baaa8ed79987.json b/outputs/e1218f1a-12ea-43e6-a19b-baaa8ed79987.json new file mode 100644 index 0000000..abef0f6 --- /dev/null +++ b/outputs/e1218f1a-12ea-43e6-a19b-baaa8ed79987.json @@ -0,0 +1,17 @@ +{ + "Analyse": {}, + "Interactions": [ + { + "time": 1677933175395, + "type": "start" + }, + { + "time": 1677933175421, + "type": "Affichage Mesh random : dragon en idx_i, idx_j : (1, 1)" + }, + { + "time": 1677933175421, + "type": "Affichage Mesh random : dragon en theta, delta : (0.7853981633974483, 0.7853981633974483)" + } + ] +} \ No newline at end of file diff --git a/server.js b/server.js index 1d6205a..bc01fb7 100644 --- a/server.js +++ b/server.js @@ -32,7 +32,7 @@ async function main() { file.write(JSON.stringify(req.body, undefined, 4)); // Envoi de la réponse pour terminer la requête. - res.send('Ok'); + res.send('Enregistrement terminé.'); }); // Création du dossier où les données seront stockées. diff --git a/static/fonctions_analyse.js b/static/fonctions_analyse.js index efa1bbf..2a27b4f 100644 --- a/static/fonctions_analyse.js +++ b/static/fonctions_analyse.js @@ -12,7 +12,7 @@ function init_variable_analyse(){ // Analayse des choix avec les checkboxs keywords = ["1. De face", "2. De profil", "3. Debout", "4. Eyes contact", "5. toto"] - nb_analyse_demande = 3 + nb_analyse_demande = 1//3 w_valider = w_bouton*1.2 h_valider = h_bouton*1.2 diff --git a/static/fonctions_choix_vues.js b/static/fonctions_choix_vues.js index ddd65ab..d53f54a 100644 --- a/static/fonctions_choix_vues.js +++ b/static/fonctions_choix_vues.js @@ -31,55 +31,6 @@ function init_variable_fonction(dict_boutons, dict_imgs ){ } -function new_image(src) { - img = new Image() - img.src = src - return img -} - -function getMousePos(c, event) { - var rect = c.getBoundingClientRect() - return { - x: event.clientX - rect.left, - y: event.clientY - rect.top - } -} - -function is_inside(xyMove, x, y, w, h) { - return (xyMove.x > x && xyMove.x < x+w && xyMove.y > y && xyMove.y < y +h) -} - -function click_inside(xyClick, x, y, w, h) { - return (xyClick.x > x && xyClick.x < x+w && xyClick.y > y && xyClick.y < y +h) -} - -function draw_rectangle(originex, originey, largeur, hauteur, couleur, alpha){ - ctx.beginPath() - ctx.moveTo(originex, originey) - ctx.lineTo(originex+largeur, originey) - ctx.lineTo(originex+largeur, originey+hauteur) - ctx.lineTo(originex, originey+hauteur) - ctx.lineTo(originex, originey) - ctx.fillStyle = couleur - ctx.globalAlpha = alpha - ctx.fill() - ctx.globalAlpha = 1 -} - -function draw_contour(originex, originey, largeur, hauteur, couleur, alpha=1){ - ctx.beginPath() - ctx.moveTo(originex, originey) - ctx.lineTo(originex+largeur, originey) - ctx.lineTo(originex+largeur, originey+hauteur) - ctx.lineTo(originex, originey+hauteur) - ctx.lineTo(originex, originey) - ctx.lineWidth = 5 - ctx.strokeStyle = couleur - ctx.globalAlpha = alpha - ctx.stroke() - ctx.lineWidth = 1 -} - function bloquer_pose(L_poses){ for (p=0; p 0) { - l = lettres.splice(0, 1)[0] - if (l === " ") { - if (x >= l_max) { - - x = 0 - y += 40 - for (let i = 0; i < mot.length; i++) { - message[message.length-mot.length+i].x = x_start+x - message[message.length-mot.length+i].y = y - x += ctx.measureText(message[message.length-mot.length+i].lettre).width - } - } - message.push({"lettre": " ", "x": x_start+x, "y": y, "fill": current_fill, "stroke": current_fill}) - x += ctx.measureText(" ").width - mot = "" - } else { - mot += l - message.push({"lettre": l, "x": x_start+x, "y": y, "fill": current_fill, "stroke": current_fill}) - x += ctx.measureText(l).width - } - } - - if (x >= l_max) { - x = 0 - y += 40 - for (let i = 0; i < mot.length; i++) { - message[message.length-mot.length+i].x = x_start+x - message[message.length-mot.length+i].y = y - x += ctx.measureText(message[message.length-mot.length+i].lettre).width - } - } - - return {"texte": message} -} /////////////////////////////////////////////////////////////// diff --git a/static/fonctions_fin.js b/static/fonctions_fin.js new file mode 100644 index 0000000..d43820d --- /dev/null +++ b/static/fonctions_fin.js @@ -0,0 +1,35 @@ +function affichage_texte_fin(M_fin, E_termine){ + ctx.strokeStyle = "rgb(255, 255, 255)" + ctx.fillStyle = "rgb(255, 255, 255)" + //Message de remerciement + texte = "Done, thx you :)" + font = "100pt Courier" + ctx.font = font + largeur = ctx.measureText(texte).width + print_text(handle_text(texte, (window.innerWidth/2)-(largeur/2), 150, font, window.innerWidth, 1000, color="#FFFFFF")) + + // Texte WAIT + texte = "Please a moment" + font = "70pt Courier" + ctx.font = font + largeur = ctx.measureText(texte).width + print_text(handle_text(texte, (window.innerWidth/2)-(largeur/2), 350, font, window.innerWidth, 1000, color="#FFFFFF")) + + ctx.strokeStyle = "rgb(239, 71, 111)" + ctx.fillStyle = "rgb(239, 71, 111)" + texte = " WAIT " + largeur = ctx.measureText(texte).width + print_text(handle_text(texte, (window.innerWidth/2)-(largeur/2), 350, font, window.innerWidth, 1000)) + + // Texte d'envoie + ctx.strokeStyle = "rgb(255, 255, 255)" + ctx.fillStyle = "rgb(255, 255, 255)" + if (!E_termine){ + print_text(handle_text(M_fin, (window.innerWidth/2)-450, innerHeight/2 +100, "26pt Courier", 1000)) + } + else { + print_text(handle_text(M_fin, (window.innerWidth/2)-450, innerHeight/2 +200, "26pt Courier", 1000)) + } + + +} \ No newline at end of file diff --git a/static/fonctions_inscription.js b/static/fonctions_inscription.js new file mode 100644 index 0000000..0d6a5a2 --- /dev/null +++ b/static/fonctions_inscription.js @@ -0,0 +1,183 @@ +scale_bouton_commencer = 0.6 + +function affichage_inscription(){ + // Texte + draw_rectangle(0,0,canvas.width, canvas.height, "rgb(3, 26, 33)", 1) // ou + clair 4, 38, 48 + ctx.strokeStyle = "rgb(255, 255, 255)" // Pour que le contour soit rouge + ctx.fillStyle = "rgb(255, 255, 255)" // Pour que l'intérieur soit bleu + texte = "Are you ready ??????" + font = "58pt Courier" + ctx.font = font + largeur = ctx.measureText(texte).width + ctx.fillText(texte, (window.innerWidth/2)- (largeur/2), 100) + + // Pour les zones de textes + ctx.strokeStyle = "rgb(255, 255, 255)" + ctx.fillStyle = "rgb(255, 255, 255)" + ctx.font = "28pt Courier" + ctx.fillText("Firstname:", x_texte_zone, parseInt(document.getElementById("Firstname").style.top) -10) + ctx.fillText("Name:", x_texte_zone, parseInt(document.getElementById("Name").style.top) - 10) + ctx.fillText("Age:", x_texte_zone, parseInt(document.getElementById("Age").style.top) - 10) + ctx.fillText("Sexe:", parseInt(document.getElementById("SexeM").style.left), parseInt(document.getElementById("SexeM").style.top) - 10) + ctx.fillText("Sexe:", parseInt(document.getElementById("SexeM").style.left), parseInt(document.getElementById("SexeM").style.top) - 10) + ctx.font = "24pt Courier" + ctx.fillText("Male", parseInt(document.getElementById("SexeM").style.left)+40, parseInt(document.getElementById("SexeM").style.top)+34) + ctx.fillText("Female", parseInt(document.getElementById("SexeF").style.left)+40, parseInt(document.getElementById("SexeM").style.top)+34) +} + + +function afficher_bouton_commencer(){ + w_bouton_commencer = scale_bouton_commencer*boutons["commencer"].width + h_bouton_commencer = scale_bouton_commencer*boutons["commencer"].height + x_bouton_commencer = (window.innerWidth/2)-(w_bouton_commencer/2) + y_bouton_commencer = innerHeight*0.75 + // Bouton commencer + ctx.drawImage(boutons["commencer"], x_bouton_commencer, y_bouton_commencer , w_bouton_commencer, h_bouton_commencer) + + // Survol + if(xyMouseMove.x >= x_bouton_commencer && xyMouseMove.x <= x_bouton_commencer + w_bouton_commencer && xyMouseMove.y > y_bouton_commencer && xyMouseMove.y < y_bouton_commencer + h_bouton_commencer){ + draw_rectangle(x_bouton_commencer, y_bouton_commencer , w_bouton_commencer, h_bouton_commencer, "rgb(200, 200, 200)", 0.6) + } +} + +function action_bouton_commencer(s){ + page_inscription = false + page_vues = true + interactions.push({"time": new Date().getTime(), "type": "bouton commencer"+s}) + +} + + +function traitement_inscription(){ + affichage_inscription() + if (champs_remplis_correctment()){ + afficher_bouton_commencer() + if (clicked && click_inside(xyMouseDown, x_bouton_commencer, y_bouton_commencer , w_bouton_commencer, h_bouton_commencer)){ + // on passe aux choix + action_bouton_commencer("titi") + } + } +} + +////////////////////////////////////////////////////////////// +/// CHAMPS INSCRIPTION + +function champs_remplis_correctment(){ + firstname_ok = false + name_ok = false + age_ok = false + sexe_ok = false + if (document.getElementById("Firstname").value.length >0){firstname_ok = true} + if (document.getElementById("Name").value.length >0){name_ok = true} + if (document.getElementById("Age").value.length >0){age_ok = true} + if (document.getElementById("SexeM").checked || document.getElementById("SexeF").checked){ sexe_ok= true} + return firstname_ok && name_ok && age_ok && sexe_ok +} + +function afficher_champs_inscription() { + w_text_zone = 30 + h_text_zone = 42 + nb_caract_min = 1 + nb_caract_max = 30 + x_texte_zone = (window.innerWidth/3) + y_texte_zone = 200 + ecart_texte_zone = 160 + + // Zone de texte : Firstname + var input = document.createElement('input'); + input.type = 'text'; + input.id = 'Firstname'; + input.minLength = nb_caract_min + input.maxLength = nb_caract_max + input.size = w_text_zone + input.style.position = 'fixed'; + input.style.left = x_texte_zone+'px'; + input.style.top = y_texte_zone+'px'; + input.style.textAlign = 'left' + input.style.height = h_text_zone + input.style.font = "24pt Courier" + document.body.appendChild(input); + input.focus(); + + // Zone de texte : Name + var input2 = document.createElement('input'); + input2.type = 'text'; + input2.id = 'Name'; + input2.minLength = nb_caract_min + input2.maxLength = nb_caract_max + input2.size = w_text_zone + // style + input2.style.position = 'fixed'; + input2.style.left = x_texte_zone+'px'; + input2.style.top = ecart_texte_zone+y_texte_zone+'px'; + input2.style.textAlign = 'left' + input2.style.height = h_text_zone + input2.style.font = "24pt Courier" + document.body.appendChild(input2); + input2.focus(); + + // Zone de texte : Age + var input3 = document.createElement('input'); + input3.type = 'number'; + input3.id = 'Age'; + input3.min = 1 + input3.max = 99 + input3.size = w_text_zone + // style + input3.style.position = 'fixed'; + input3.style.left = x_texte_zone+'px'; + input3.style.top = 2*ecart_texte_zone + y_texte_zone+'px'; + input3.style.textAlign = 'left' + input3.style.height = h_text_zone + input3.style.font = "24pt Courier" + document.body.appendChild(input3); + input3.focus(); + + // Zone de texte : Sexe + var input4 = document.createElement('input'); + input4.type = 'radio'; + input4.id = 'SexeM'; + input4.name = "sexe" + //input4.size = w_text_zone + // style + input4.style.position = 'fixed'; + input4.style.left = x_texte_zone + 250; + input4.style.top = 2*ecart_texte_zone + y_texte_zone+'px'; + input4.style.height = h_text_zone + document.body.appendChild(input4); + input4.focus(); + + var input5 = document.createElement('input'); + input5.type = 'radio'; + input5.id = 'SexeF'; + input5.name = "sexe" + //input4.size = w_text_zone + // style + input5.style.position = 'fixed'; + input5.style.left = x_texte_zone + 400; + input5.style.top = 2*ecart_texte_zone + y_texte_zone+'px'; + input5.style.height = h_text_zone + document.body.appendChild(input5); + input5.focus(); + + +} + +function gestion_donnees_personnelles(){ + // Sauvegarde des infos + if (document.getElementById("SexeM").checked){sexe = "M"} + else if (document.getElementById("SexeF").checked){sexe = "F"} + else {sexe='None'} + choix['identite'] = {"Firstname":document.getElementById("Firstname").value, + "Name": document.getElementById("Name").value, + "Age": document.getElementById("Age").value, + "Sexe": sexe} + document.getElementById("Firstname").style.display = 'none' + document.getElementById("Name").style.display = 'none' + document.getElementById("Age").style.display = 'none' + document.getElementById("SexeM").style.display = 'none' + document.getElementById("SexeF").style.display = 'none' + + + +} diff --git a/static/fonctions_tuto.js b/static/fonctions_tuto.js deleted file mode 100644 index 920c8c4..0000000 --- a/static/fonctions_tuto.js +++ /dev/null @@ -1,38 +0,0 @@ -scale_bouton_commencer = 0.6 - -function affichage_tuto(){ - w_bouton_commencer = scale_bouton_commencer*boutons["commencer"].width - h_bouton_commencer = scale_bouton_commencer*boutons["commencer"].height - // Texte - draw_rectangle(0,0,canvas.width, canvas.height, "rgb(3, 26, 33)", 1) // ou + clair 4, 38, 48 - ctx.strokeStyle = "rgb(255, 255, 255)" // Pour que le contour soit rouge - ctx.fillStyle = "rgb(255, 255, 255)" // Pour que l'intérieur soit bleu - ctx.font = "bold 58pt Courier"; - ctx.fillText("Are you ready ??????", (window.innerWidth/2)-450, innerHeight/2 -100) - - // Bouton commencer - ctx.drawImage(boutons["commencer"], (window.innerWidth/2)-(w_bouton_commencer/2), innerHeight/2, w_bouton_commencer, h_bouton_commencer) -} - -function survol_commencer(){ - if(xyMouseMove.x >= (window.innerWidth/2)-(w_bouton_commencer/2) && xyMouseMove.x <= (window.innerWidth/2)-(w_bouton_commencer/2) + w_bouton_commencer && xyMouseMove.y > innerHeight/2 && xyMouseMove.y < innerHeight/2 + h_bouton_commencer){ - draw_rectangle((window.innerWidth/2)-(w_bouton_commencer/2), innerHeight/2, w_bouton_commencer, h_bouton_commencer, "rgb(200, 200, 200)", 0.6) - } -} - -function action_bouton_commencer(s){ - page_tuto = false - page_vues = true - interactions.push({"time": new Date().getTime(), "type": "bouton commencer"+s}) -} - - -function traitement_tuto(){ - affichage_tuto() - survol_commencer() - if (clicked && click_inside(xyMouseDown, (window.innerWidth/2)-(w_bouton_commencer/2), innerHeight/2, w_bouton_commencer, h_bouton_commencer)){ - // on passe aux choix - action_bouton_commencer("titi") - } -} - diff --git a/static/fonctions_utiles.js b/static/fonctions_utiles.js new file mode 100644 index 0000000..b46a0e8 --- /dev/null +++ b/static/fonctions_utiles.js @@ -0,0 +1,130 @@ +function new_image(src) { + img = new Image() + img.src = src + return img +} + +function getMousePos(c, event) { + var rect = c.getBoundingClientRect() + return { + x: event.clientX - rect.left, + y: event.clientY - rect.top + } +} + +function is_inside(xyMove, x, y, w, h) { + return (xyMove.x > x && xyMove.x < x+w && xyMove.y > y && xyMove.y < y +h) +} + +function click_inside(xyClick, x, y, w, h) { + return (xyClick.x > x && xyClick.x < x+w && xyClick.y > y && xyClick.y < y +h) +} + +function draw_rectangle(originex, originey, largeur, hauteur, couleur, alpha){ + ctx.beginPath() + ctx.moveTo(originex, originey) + ctx.lineTo(originex+largeur, originey) + ctx.lineTo(originex+largeur, originey+hauteur) + ctx.lineTo(originex, originey+hauteur) + ctx.lineTo(originex, originey) + ctx.fillStyle = couleur + ctx.globalAlpha = alpha + ctx.fill() + ctx.globalAlpha = 1 +} + +function draw_contour(originex, originey, largeur, hauteur, couleur, alpha=1){ + ctx.beginPath() + ctx.moveTo(originex, originey) + ctx.lineTo(originex+largeur, originey) + ctx.lineTo(originex+largeur, originey+hauteur) + ctx.lineTo(originex, originey+hauteur) + ctx.lineTo(originex, originey) + ctx.lineWidth = 5 + ctx.strokeStyle = couleur + ctx.globalAlpha = alpha + ctx.stroke() + ctx.lineWidth = 1 +} + +function print_text(dialogue) { + + s = dialogue.texte + for (let i = 0; i < s.length; i++) { + if (s[i].lettre !== undefined) { + ctx.strokeStyle = s[i].stroke + ctx.fillStyle = s[i].fill + ctx.strokeText(s[i].lettre, s[i].x, s[i].y) + ctx.fillText(s[i].lettre, s[i].x, s[i].y) + } + } + +} + +function handle_text(dialogue, x_start, y_start, font, l_max, color="#FFFFFF") { + let s = dialogue + + let x = 0 + let y = y_start + + let mot = "" + let img_to_print = "" + let lettres = s.split("") + let message = [] + + let current_fill = color + + ctx.textAlign = "left" + ctx.font = font + + while (lettres.length > 0) { + l = lettres.splice(0, 1)[0] + if (l === " ") { + if (x >= l_max) { + + x = 0 + y += 40 + for (let i = 0; i < mot.length; i++) { + message[message.length-mot.length+i].x = x_start+x + message[message.length-mot.length+i].y = y + x += ctx.measureText(message[message.length-mot.length+i].lettre).width + } + } + message.push({"lettre": " ", "x": x_start+x, "y": y, "fill": current_fill, "stroke": current_fill}) + x += ctx.measureText(" ").width + mot = "" + } else { + mot += l + message.push({"lettre": l, "x": x_start+x, "y": y, "fill": current_fill, "stroke": current_fill}) + x += ctx.measureText(l).width + } + } + + if (x >= l_max) { + x = 0 + y += 40 + for (let i = 0; i < mot.length; i++) { + message[message.length-mot.length+i].x = x_start+x + message[message.length-mot.length+i].y = y + x += ctx.measureText(message[message.length-mot.length+i].lettre).width + } + } + + return {"texte": message} +} + + +function progress_bar(N_tache, N_mesh){ + if (N_tache<=N_mesh){ + // background + draw_rectangle(x_progress_bar, y_progress_bar, w_progress_bar, h_progress_bar, "rgb(255,255,255)", 1) + // bar + w_bar = ((N_tache-1)/N_mesh)*w_progress_bar + draw_rectangle(x_progress_bar, y_progress_bar, w_bar, h_progress_bar, "rgb(17, 138, 178)", 1) + // // numero de tache + // ctx.strokeStyle = "rgb(255, 255, 255)" // Pour que le contour soit rouge + // ctx.fillStyle = "rgb(255, 255, 255)" // Pour que l'intérieur soit bleu + // ctx.font = "18pt Courier"; + // ctx.fillText((N_tache)+"/"+(N_mesh), x_progress_bar+w_progress_bar+10, h_progress_bar) + } +} \ No newline at end of file diff --git a/static/interface3D.js b/static/interface3D.js index 0314190..24de92f 100644 --- a/static/interface3D.js +++ b/static/interface3D.js @@ -4,7 +4,13 @@ // initialisation des variables init_variable(true) // initialisation du canvas : load des images -setUp_3D(indice_mesh) +//setUp_3D(indice_mesh) + +canvas = document.getElementById("canvas") +canvas.width = window.innerWidth; +canvas.height = window.innerHeight; +ctx = canvas.getContext("2d") + init_data() //init_clavier() // action @@ -42,7 +48,7 @@ function init_variable(premier_appel){ indice_mesh = 0 // indice du premier mesh à visionner mesh_courant = "nope" // nom des mesh // nombre de mesh a visionner AU TOTAL - nb_mesh = 3 + nb_mesh = 2 //3 // Choix des N poses demandé pour les mesh courant choix_courant = {} @@ -74,7 +80,7 @@ function init_variable(premier_appel){ R = 2.5 // Enchainement des pages - page_tuto = true // true + page_inscription = true // true page_vues = false // false page_analyse = false @@ -83,10 +89,14 @@ function init_variable(premier_appel){ all_canvasMins = {} // pour initialiser les claviers à chaque page - premier_tour_page_tuto = true + premier_tour_page_inscription = true premier_tour_page_vues = true premier_tour_page_analyse = true + // message de fin + message_fin = "> Sending data in progress ..." + envoie_termine = false + } //////////////////////////////////////// @@ -213,15 +223,17 @@ function setUp_3D(idx_mesh){ //////////////////////////////////////// // CLAVIER -function action_clavier_tuto(event){ +function action_clavier_inscription(event){ switch (event.key){ // selectionner pose case ' ' : - action_bouton_commencer('clavier') + if (champs_remplis_correctment()){ + action_bouton_commencer('clavier')} break; // valider case 'Enter': - action_bouton_commencer('clavier') + if (champs_remplis_correctment()){ + action_bouton_commencer('clavier')} break; } } @@ -294,8 +306,8 @@ function action_clavier_analyse(event){ -function init_clavier_tuto(){ - document.addEventListener("keydown", action_clavier_tuto) +function init_clavier_inscription(){ + document.addEventListener("keydown", action_clavier_inscription) } function init_clavier_vues(){ @@ -351,21 +363,27 @@ function animate() { // Temps à chaque animate time_animate = new Date().getTime() - // page tuto - if (page_tuto){ - if (premier_tour_page_tuto){ - init_clavier_tuto() - premier_tour_page_tuto=false} - traitement_tuto() + // page inscription + if (page_inscription){ + if (premier_tour_page_inscription){ + init_clavier_inscription() + afficher_champs_inscription() + premier_tour_page_inscription=false} + traitement_inscription() } // page de choix if (page_vues && num_tache <= nb_mesh){ - // on enlève les touches du clavier associé à la page tuto - document.removeEventListener("keydown", action_clavier_tuto) + // on enlève les touches du clavier associé à la page inscription + document.removeEventListener("keydown", action_clavier_inscription) //init touche clavier if(premier_tour_page_vues){ + //gestion des données personnelle de l'utilisateur + gestion_donnees_personnelles() + // init clavier pour les vues init_clavier_vues() + // affichage ecran 3D + setUp_3D(indice_mesh) premier_tour_page_vues = false } // Variable pour les fonctions @@ -403,7 +421,7 @@ function animate() { which_clicked_fleche = -1 which_clicked_bouton = -1 } - + // page analyse if (page_analyse){ // on enlève les touches du clavier associé à la page vues document.removeEventListener("keydown", action_clavier_vues) @@ -415,18 +433,14 @@ function animate() { init_variable_analyse() traitement_fin() } - // page finale - if (!page_tuto && !page_vues && !page_analyse){ + // page fin + if (!page_inscription && !page_vues && !page_analyse){ // on enlève les touches du clavier associé à la page vues document.removeEventListener("keydown", action_clavier_analyse) ctx.clearRect(0, 0, window.innerWidth, window.innerHeight) draw_rectangle(0,0,canvas.width, canvas.height, "rgb(3, 26, 33)", 1) - ctx.strokeStyle = "rgb(255, 255, 255)" // Pour que le contour soit rouge - ctx.fillStyle = "rgb(255, 255, 255)" // Pour que l'intérieur soit bleu - ctx.font = "bold 58pt Courier"; - ctx.fillText("Done, thx you :)", (window.innerWidth/2)-450, innerHeight/2 -100) - console.log('Fin interface3DD') - + // Texte + affichage_texte_fin(message_fin, envoie_termine) // ECRITURE DES RESULTATS choix['Analyse'] = checkbox_clicked choix['Interactions'] = interactions @@ -441,12 +455,19 @@ function animate() { // Si la requête est terminée, et que la réponse n'est pas une erreur. if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { console.log(xhr.responseText); + message_fin = "> It's done." + //print_text(handle_text(message_fin, (window.innerWidth/2)-450, innerHeight/2+150 , "26pt Courier", 1000)) + envoie_termine = true + affichage_texte_fin(message_fin, envoie_termine) + return; } } // Envoi de la requête vers le serveur, avec les données. xhr.send(JSON.stringify(choix)); - return; + return + + } // Boucle sur animate diff --git a/static/style.css b/static/style.css index 550023b..a82ea04 100644 --- a/static/style.css +++ b/static/style.css @@ -16,3 +16,5 @@ body { background-color: #CCC; position: relative } + +