adaptation au post traitement

This commit is contained in:
mpelissi 2023-03-29 18:10:51 +02:00
parent 82660e65c3
commit 0f95219fc3
11 changed files with 116 additions and 50 deletions

View File

@ -28,6 +28,7 @@
<script src="/static/LoaderSupport.js"></script>
<script src="/static/OBJLoader2.js"></script>
<script src="/static/OrbitControls.js"></script>
<script src="/static/interaction_messages.js"></script>
<script src="/static/fonctions_utiles.js"></script>
<script src="/static/fonctions_clavier.js"></script>
<script src="/static/fonctions_avertissement.js"></script>

View File

@ -34,7 +34,7 @@ function init_variable(premier_appel){
skiped = false
// Au premier appel on init : les interactions
if (premier_appel){interactions = [{"time" : new Date().getTime(), "type": "start"}]}
if (premier_appel){interactions = [{"time" : new Date().getTime(), "type": get_message("debut_etude", [])}]}
// Couleur
alpha_survol = 0.3
@ -43,7 +43,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 = 2 //3
nb_mesh = 4
// random nom mesh
obj_file = shuffle(['dragon_update_user_study_normed.obj', 'camel_update_user_study_normed.obj', 'gorgoile_update_user_study_centered_normed.obj', 'horse_update_user_study_normed.obj'])
@ -255,8 +255,8 @@ function setUp_3D(idx_mesh, idx_i_init, idx_j_init, explication=false){
choix_courant['delta_init'] = delta_init
// pour savoir quel mesh on affiche
interactions.push({"time": new Date().getTime(), "type": "Affichage Mesh random : "+mesh_courant+" en idx_i, idx_j : ("+idx_i_init+", "+idx_j_init+")"})
interactions.push({"time": new Date().getTime(), "type": "Affichage Mesh random : "+mesh_courant+" en theta, delta : ("+theta_init+", "+delta_init+")"})
interactions.push({"time": new Date().getTime(), "type": get_message('affichage_mesh_IJ', [mesh_courant, idx_i_init, idx_j_init])})
interactions.push({"time": new Date().getTime(), "type": get_message('affichage_mesh_TD', [mesh_courant, theta_init, delta_init])})//"Affichage Mesh random : "+mesh_courant+" en theta, delta : ("+theta_init+", "+delta_init+")"})
}
////////////////////////////////////////
@ -425,7 +425,8 @@ function animate() {
// page de choix
if (page_vues && num_tache <= nb_mesh){
//console.log("boucle choix")
if (skiped){document.removeEventListener("keydown", action_clavier_inscription)}
if (skiped){document.removeEventListener("keydown", action_clavier_inscription)
document.removeEventListener("keydown", action_clavier_explication)}
else{
// on enlève les touches du clavier associé à la page inscription
document.removeEventListener("keydown", action_clavier_explication)}
@ -436,6 +437,7 @@ function animate() {
// affichage ecran 3D de manière aléatoire
idx_i_init = Math.floor(Math.random()*8)
idx_j_init = Math.floor(Math.random()*5)
interactions.push({"time": new Date().getTime(), "type": get_message('debut_tache_i', [num_tache])})
setUp_3D(indice_mesh, idx_i_init, idx_j_init)
premier_tour_page_vues = false
}
@ -499,7 +501,7 @@ function animate() {
document.removeEventListener("keydown", action_clavier_explication_analyse)
// inti clavier
if(premier_tour_page_analyse){
interactions.push({"time": new Date().getTime(), "type": "debut analyse n°1"})
interactions.push({"time": new Date().getTime(), "type": get_message("debut_analyse", [])})
init_clavier_analyse()
init_variable_analyse()
old_renderer = document.getElementById('renderer')
@ -539,13 +541,14 @@ function animate() {
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
// Ajout du listener pour déclencer la suite lorsque la requête sera terminée.
xhr.onreadystatechange = function() {
//interactions.push({"time": new Date().getTime(), "type": get_message("fin_eetude", [])})
// 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. You can close the web page."
envoie_termine = true
update_texte_fin(message_fin)
interactions.push({"time": new Date().getTime(), "type": "fin etude"})
interactions.push({"time": new Date().getTime(), "type": get_message("fin_etude", [])})
return;
}
}

View File

@ -39,7 +39,7 @@ function affichage_legende(pos){
function affichage_texte(){
// Texte
//draw_rectangle(0,0,canvas.width, canvas.height, "rgb(3, 26, 33)", 1) // ou + clair 4, 38, 48
affichage_titre("Analysis your selections: why did you choose these viewpoints?", (0.015*window.innerWidth)+"pt Courier", "#EF476F", yt = 0.1*window.innerHeight)
affichage_titre("Analysis your selections: Why did you choose these viewpoints?", (0.015*window.innerWidth)+"pt Courier", "#EF476F", yt = 0.1*window.innerHeight)
}
// idx_tache est la num de la tache à aller chercher dans all_ctxMins
@ -106,7 +106,7 @@ function condition_valider(){
}
function action_bouton_valider_analyse(){
interactions.push({"time": new Date().getTime(), "type": "bouton valider analyse"})
interactions.push({"time": new Date().getTime(), "type": get_message("bouton_valider_analyse", []) })
// si au moins un mot est coché et qu'il reste des analyse à faire
if (condition_valider()){
// sauvegarde des checkbox clikée et les mesh
@ -126,7 +126,7 @@ function action_bouton_valider_analyse(){
// indice mesh da l'analyse suivante
idx_tache = idx_tache + 1
if (num_analyse<nb_analyse_demande){
interactions.push({"time": new Date().getTime(), "type": "debut analyse n°"+(num_analyse+1)})}
interactions.push({"time": new Date().getTime(), "type": get_message("debut_analyse_i", [num_analyse]) })}
}
}
@ -173,7 +173,7 @@ function check_ou_decheck(i_mot){
if (checkbox_clicked_courant.idx_checkbox.indexOf(i_mot) == -1){
checkbox_clicked_courant.idx_checkbox.push(i_mot)
checkbox_clicked_courant.mots.push(keywords[i_mot])
interactions.push({"time": new Date().getTime(), "type": "ajout check sur : analyse n°"+(num_analyse+1)+", mot "+keywords[i_mot]+" à "})
interactions.push({"time": new Date().getTime(), "type": get_message("ajout_check", [num_analyse, keywords[i_mot]])})
console.log("ajout "+keywords[i_mot])
// checkbox Other
if (i_mot == keywords.length-1){
@ -185,7 +185,7 @@ function check_ou_decheck(i_mot){
checkbox_clicked_courant.idx_checkbox.splice(position_i,1)
checkbox_clicked_courant.mots.splice(position_i,1)
console.log("retrait "+keywords[i_mot])
interactions.push({"time": new Date().getTime(), "type": "retrait check sur : analyse n°"+(num_analyse+1)+", mot "+keywords[i_mot]+" à "})
interactions.push({"time": new Date().getTime(), "type": get_message("retrait_check", [num_analyse, keywords[i_mot]])})
if (i_mot == keywords.length-1){
toto = document.getElementById('texte_area')
if (toto!= null){toto.parentElement.removeChild(toto)}
@ -267,7 +267,7 @@ function traitement_analyse(){
}
else{
page_analyse = false
interactions.push({"time": new Date().getTime(), "type": "fin analyse"})
interactions.push({"time": new Date().getTime(), "type": get_message("fin_etude", [])})
}
}

View File

@ -20,7 +20,7 @@ function action_bouton_commencer_avertissement(){
page_avertissement = false
page_contexte = true
//page_vues = true
interactions.push({"time": new Date().getTime(), "type": "fin avertissement - debut contexte"})
interactions.push({"time": new Date().getTime(), "type": get_message("fin_avertissement", [])})
}
function afficher_bouton_commencer_avertissement(){

View File

@ -44,8 +44,8 @@ function init_variable_fonction(dict_boutons, dict_imgs ){
function bloquer_pose(L_poses){
for (p=0; p<L_poses.length; p++){
idx_i_p = L_poses[p][3]
idx_j_p = L_poses[p][4]
idx_i_p = L_poses[p][3].idx_i
idx_j_p = L_poses[p][4].idx_j
// Si on est en train de voir une pose déjà choisie
if (idx_i== idx_i_p && idx_j==idx_j_p){
draw_rectangle(0, h_progress_bar, W_3D, H_3D-h_progress_bar, "rgb(0, 0, 0)", alpha_bloque)
@ -57,8 +57,8 @@ function bloquer_pose(L_poses){
function pose_deja_choisie(L_poses, i_choix, j_choix){
deja_choisie = false
for (p=0; p<L_poses.length; p++){
idx_i_p = L_poses[p][3]
idx_j_p = L_poses[p][4]
idx_i_p = L_poses[p][3].idx_i
idx_j_p = L_poses[p][4].idx_j
// Si on est en train de voir une pose déjà choisie
if (i_choix == idx_i_p && j_choix==idx_j_p){
deja_choisie = true
@ -138,7 +138,7 @@ function afficher_recap(){
swapElements(canvasMins, i, i-1)
swapElements(ctxMins, i, i-1)
swapElements(liste_poses, i, i-1)
interactions.push({"time": new Date().getTime(), "type": "fleche switch haut de la pose n°"+(i+1)})
interactions.push({"time": new Date().getTime(), "type": get_message('switch_haut_i', [num_tache, nb_choix_fait, i])})
clicked = false
}
}
@ -150,7 +150,7 @@ function afficher_recap(){
swapElements(canvasMins, i, i+1)
swapElements(ctxMins, i, i+1)
swapElements(liste_poses, i, i+1)
interactions.push({"time": new Date().getTime(), "type": "fleche switch bas de la pose n°"+(i+1)})
interactions.push({"time": new Date().getTime(), "type": get_message('switch_bas_i', [num_tache, nb_choix_fait, i])})
clicked = false
}
}
@ -162,7 +162,7 @@ function afficher_recap(){
if (clicked && click_inside(xyMouseDown, x_croix, y_croix, w_croix, h_croix)) {
liste_poses.splice(i, 1)
nb_choix_fait = nb_choix_fait-1
interactions.push({"time": new Date().getTime(), "type": "suppression de la pose n°"+(i+1)})
interactions.push({"time": new Date().getTime(), "type": get_message('supp_pose_i', [i])})
ctxMins[i].clearRect(0, 0, canvasMins[i].width, canvasMins[i].height)
for (let j = i; j < nb_choix_demande-1; j++) {
swapElements(canvasMins, j, j+1)
@ -268,23 +268,23 @@ function traitement_fleche(){
function action_fleche_gauche(){
idx_i = (idx_i+1)%8
interactions.push({"time": new Date().getTime(), "type": "fleche gauche"})}
interactions.push({"time": new Date().getTime(), "type": get_message('FG', [num_tache, nb_choix_fait, idx_i, idx_j])})}
function action_fleche_droite(){
idx_i = (idx_i+7)%8
interactions.push({"time": new Date().getTime(), "type": "fleche droite"})}
interactions.push({"time": new Date().getTime(), "type": get_message('FD', [num_tache, nb_choix_fait, idx_i, idx_j])})}
function action_fleche_haut(){
interactions.push({"time": new Date().getTime(), "type": "fleche haut"})
interactions.push({"time": new Date().getTime(), "type": get_message('FH', [num_tache, nb_choix_fait, idx_i, idx_j])})
if (idx_j == 0){
texte_temporaire = {"text": "You can't go any further, GO BACK DOWN.", "x": x_pop_up, "y": y_pop_up, "t_end": new Date().getTime()+temps_pop}
interactions.push({"time": new Date().getTime(), "type": "Affichage error a cause de fleche haut"})
interactions.push({"time": new Date().getTime(), "type": get_message("erreur_FH", []) })
}
idx_j = Math.max(idx_j-1,0)
}
function action_fleche_bas(){
interactions.push({"time": new Date().getTime(), "type": "fleche bas"})
interactions.push({"time": new Date().getTime(), "type": get_message('FB', [num_tache, nb_choix_fait, idx_i, idx_j])})
if (idx_j == 4){
texte_temporaire = {"text": "You can't go any further, GO UP.", "x": x_pop_up, "y": y_pop_up, "t_end": new Date().getTime()+temps_pop}
interactions.push({"time": new Date().getTime(), "type": "Affichage error a cause de fleche bas"})
interactions.push({"time": new Date().getTime(), "type": get_message("erreur_FB", []) })
}
idx_j = Math.min(idx_j+1,4)
}
@ -357,27 +357,28 @@ function get_clicked_bouton(){
}
if (clicked && click_inside(xyMouseMove, window.innerWidth-w_bouton-10, window.innerHeight-h_bouton-10, w_bouton, h_bouton)) {
which_clicked_bouton = "bouton_raz"
interactions.push({"time": new Date().getTime(), "type": "bouton raz"})
interactions.push({"time": new Date().getTime(), "type": get_message("bouton_raz", [num_tache, nb_choix_fait])})
}
}
function action_bouton_pose(){
interactions.push({"time": new Date().getTime(), "type": "bouton pose n°"+(nb_choix_fait+1)})
// on regarde si la pose sélectionnée n'a pas déjà été choisie avant
pose_deja_choisie(liste_poses, idx_i, idx_j)
if (deja_choisie && !(nb_choix_fait == nb_choix_demande)){
//console.log("Cette pose a déjà été sélectionnée.")
texte_temporaire = {"text": "This viewpoint has already been selected.", "x": x_pop_up, "y": y_pop_up, "t_end": new Date().getTime()+temps_pop}
interactions.push({"time": new Date().getTime(), "type": "Affichage error pose deja sélectionnee"})}
interactions.push({"time": new Date().getTime(), "type": get_message("erreur_pose_selectionnee", [])})}
// plus de choix possible
if (nb_choix_fait == nb_choix_demande) {
//console.log("Tu as déjà fait tes "+nb_choix_demande+" choix.")
texte_temporaire = {"text": "You have already selected your "+nb_choix_demande+" viewpoints.", "x": x_pop_up, "y": y_pop_up, "t_end": new Date().getTime()+temps_pop}
interactions.push({"time": new Date().getTime(), "type": "Affichage error "+nb_choix_demande+" deja fait"})}
interactions.push({"time": new Date().getTime(), "type": get_message("erreur_choix_fait", [nb_choix_fait])})}
// si on a pas encore choisie toutes nos poses, on peut en ajouter
if (nb_choix_fait < nb_choix_demande && !(deja_choisie)){
interactions.push({"time": new Date().getTime(), "type": get_message("bouton_select", [num_tache, nb_choix_fait, nb_choix_fait, idx_i, idx_j])})
liste_poses.push(['choix'+(nb_choix_fait+1), {'theta':theta}, {"delta":delta}, {'idx_i':idx_i}, {'idx_j':idx_j}])
// affichage de la vue sélectionnée dans le recap
ctxMins[nb_choix_fait].drawImage(canvasRenderer, 0.5*canvasRenderer.width-0.5*canvasRenderer.height, 0, canvasRenderer.height, canvasRenderer.height, 0, 0, canvasMins[0].width, canvasMins[0].height)//canvasRenderer.height*0.3, canvasRenderer.height*0.25)
@ -386,7 +387,7 @@ function action_bouton_pose(){
}
function action_bouton_retirer(){
interactions.push({"time": new Date().getTime(), "type": "bouton retirer"})
interactions.push({"time": new Date().getTime(), "type": get_message('bouton_remove', [num_tache, nb_choix_fait])})
// il y a des poses à retirer
if (liste_poses.length > 0){
liste_poses.pop()
@ -401,12 +402,12 @@ function action_bouton_retirer(){
else {
//console.log("Il n'y a pas de pose à retirer.")
texte_temporaire = {"text": "There are no selected viewpoints to remove.", "x": x_pop_up, "y": y_pop_up, "t_end": new Date().getTime()+temps_pop}
interactions.push({"time": new Date().getTime(), "type": "Affichage error pas de pose a retirer"})
interactions.push({"time": new Date().getTime(), "type": get_message("erreur_pas_de_pose", [])})
}
}
function action_bouton_reinitialiser(){
interactions.push({"time": new Date().getTime(), "type": "bouton renitialiser"})
interactions.push({"time": new Date().getTime(), "type": get_message("bouton_reset", [num_tache, nb_choix_fait])})
if (liste_poses.length>0){
liste_poses = []
nb_choix_fait = 0
@ -417,11 +418,11 @@ function action_bouton_reinitialiser(){
}
else {//console.log("Il n'y a pas de pose à reintialiser.")
texte_temporaire = {"text": "There are no selected viewpoints to resart.", "x":x_pop_up, "y": y_pop_up, "t_end": new Date().getTime()+temps_pop}
interactions.push({"time": new Date().getTime(), "type": "Affichage error aucun choix fait donc pas de reinitialisation possible"})}
interactions.push({"time": new Date().getTime(), "type": get_message("erreur_reset_impossible", [])})}
}
function action_bouton_valider(){
interactions.push({"time": new Date().getTime(), "type": "bouton valider"})
interactions.push({"time": new Date().getTime(), "type": get_message("bouton_valider", [num_tache, nb_choix_fait])})
// Si tous les mesh ont été vu
if (num_tache == nb_mesh && nb_choix_demande==nb_choix_fait){
choix_courant['choix_poses'] = liste_poses
@ -434,7 +435,8 @@ function action_bouton_valider(){
//page_analyse = true
page_explication_analyse = true
page_vues = false
interactions.push({"time": new Date().getTime(), "type": "fin choix vues - debut explication analyse"})
interactions.push({"time": new Date().getTime(), "type": get_message('fin_tache_i', [num_tache-1])})
interactions.push({"time": new Date().getTime(), "type": get_message("fin_choix", [])})
}
// Si le nombre de vue demandé a été fait et que ce n'est pas le dernier mesh à voir
@ -455,14 +457,17 @@ function action_bouton_valider(){
indice_mesh = indice_mesh + 1
num_tache = num_tache+1
idx_i_init = Math.floor(Math.random()*8); idx_j_init = Math.floor(Math.random()*5)
setUp_3D(indice_mesh, idx_i_init, idx_j_init)
interactions.push({"time": new Date().getTime(), "type": get_message('fin_tache_i', [num_tache-1])})
interactions.push({"time": new Date().getTime(), "type": get_message('debut_tache_i', [num_tache])})
setUp_3D(indice_mesh, idx_i_init, idx_j_init)
}
// Error : il reste des vues à sélectionner
else if (nb_choix_fait < nb_choix_demande){
//console.log("Tu n'as pas fait tes 3 choix")
texte_temporaire = {"text": "You did not select your "+nb_choix_demande+" viewpoints.", "x": x_pop_up, "y": y_pop_up, "t_end": new Date().getTime()+temps_pop}
interactions.push({"time": new Date().getTime(), "type": "Affichage error a cause du bouton valider"})
interactions.push({"time": new Date().getTime(), "type": get_message("erreur_valider", [])})
}
// Error : un pbl à identifier
else{
@ -486,11 +491,11 @@ function action_bouton_raz(){
init_variable(false);
idx_i_init = Math.floor(Math.random()*8); idx_j_init = Math.floor(Math.random()*5)
setUp_3D(indice_mesh, idx_i_init, idx_j_init)
interactions.push({"time": new Date().getTime(), "type": "bouton raz check"})}
interactions.push({"time": new Date().getTime(), "type": get_message("bouton_raz_check", [num_tache, nb_choix_fait])})}
// click sur la croix ou ailleurs : on clear
if(clicked){
bouton_raz_clicked = false
interactions.push({"time": new Date().getTime(), "type": "bouton raz croix"})}
interactions.push({"time": new Date().getTime(), "type": get_message("bouton_raz_croix", [num_tache, nb_choix_fait])})}
}

View File

@ -21,7 +21,7 @@ function action_bouton_commencer_contexte(){
page_contexte = false
page_inscription = true
//page_vues = true
interactions.push({"time": new Date().getTime(), "type": "fin contexte - debut inscription"})
interactions.push({"time": new Date().getTime(), "type": get_message("fin_contexte", [])})
}
function afficher_bouton_commencer_contexte(){
@ -179,7 +179,7 @@ function action_revenir_page_avant_contexte(){
num_avertissement = avertissements_a_afficher.length-1
init_clavier_avertissement()
document.removeEventListener("keydown", action_clavier_contexte)
interactions.push({"time": new Date().getTime(), "type": "retour avertissement"})
interactions.push({"time": new Date().getTime(), "type": get_message("retour_avertissement", [])})
}
////////////////////////////////////////////////////////////////////

View File

@ -19,7 +19,7 @@ function action_bouton_commencer_explication_analyse(){
page_explication_analyse = false
page_analyse = true
//page_vues = true
interactions.push({"time": new Date().getTime(), "type": "fin explication analyse - debut analyse"})
interactions.push({"time": new Date().getTime(), "type": get_message("fin_explication_analyse", [])})
}
function afficher_bouton_commencer_explication_analyse(){

View File

@ -485,7 +485,7 @@ function action_fin_explication(){
page_explication = false
//page_explication_bis = true
page_warning = true
interactions.push({"time": new Date().getTime(), "type": "fin tutorial - debut warning"})
interactions.push({"time": new Date().getTime(), "type": get_message("fin_tutorial", [])})
}
function action_previous_explication(){
@ -629,7 +629,7 @@ function afficher_bouton_commencer_explication(){
function action_bouton_commencer_explication(){
page_explication_bis = false
page_vues = true
interactions.push({"time": new Date().getTime(), "type": "debut choix vues"})
interactions.push({"time": new Date().getTime(), "type": get_message("debut_choix", []) })
}

View File

@ -53,7 +53,7 @@ function action_bouton_commencer_inscription(){
page_inscription = false
//page_vues = true
page_explication = true
interactions.push({"time": new Date().getTime(), "type": "debut tutorial"})
interactions.push({"time": new Date().getTime(), "type": get_message("debut_tutorial", [])})
//gestion des données personnelle de l'utilisateur
//gestion_donnees_personnelles()
@ -83,7 +83,7 @@ function action_bouton_skip_inscription(){
page_warning = true
//page_vues = true
skiped = true
interactions.push({"time": new Date().getTime(), "type": "skip tutorial - debut warning"})
interactions.push({"time": new Date().getTime(), "type": get_message("skip", []) })
document.removeEventListener("keydown", action_clavier_inscription)
num_action = 0
nb_action = 1
@ -114,7 +114,7 @@ function action_bouton_suivant_inscription(){
inscription_finie = true
gestion_donnees_personnelles()
ctx.clearRect(0, 0, canvas.width, canvas.height)
interactions.push({"time": new Date().getTime(), "type": "fin inscription - choix tutorial"})
interactions.push({"time": new Date().getTime(), "type":get_message("fin_inscription", []) })
}

View File

@ -28,7 +28,7 @@ function action_bouton_commencer_warning(){
page_warning = false
page_explication_bis = true
//page_vues = true
interactions.push({"time": new Date().getTime(), "type": "fin warning - bouton commencer choix vues"})
interactions.push({"time": new Date().getTime(), "type": get_message("fin_warning", [])})
}
function afficher_bouton_commencer_warning(){

View File

@ -0,0 +1,57 @@
function get_message(message_nom, arguments){
let interaction_messages = {}
interaction_messages['debut_etude'] = 'start'
interaction_messages['fin_avertissement'] = "fin avertissement - debut contexte"
interaction_messages['retour_avertissement'] = "retour avertissement"
interaction_messages['fin_contexte'] = "fin contexte - debut inscription"
interaction_messages['fin_inscription'] = "fin inscription - choix tutorial"
interaction_messages['skip'] = "skip tutorial - debut warning"
interaction_messages['debut_tutorial'] = "debut tutorial"
interaction_messages['fin_tutorial'] = "fin tutorial - debut warning"
interaction_messages['fin_warning'] = "fin warning - bouton commencer choix vues"
interaction_messages['debut_choix'] = "debut choix vues"
interaction_messages['debut_tache_i'] = "debut tache n°"+(arguments[0])
interaction_messages['fin_tache_i'] = "fin tache n°"+(arguments[0])
interaction_messages['fin_choix'] = "fin choix vues - debut explication analyse"
interaction_messages['affichage_mesh_IJ'] = "Affichage Mesh random : "+arguments[0]+" en idx_i, idx_j : ("+arguments[1]+", "+arguments[2]+")"
interaction_messages['affichage_mesh_TD'] = "Affichage Mesh random : "+arguments[0]+" en theta, delta : ("+arguments[1]+", "+arguments[2]+")"
interaction_messages['FG'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" fleche gauche ("+arguments[2]+","+arguments[3]+')'
interaction_messages['FD'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" fleche droite ("+arguments[2]+","+arguments[3]+')'
interaction_messages['FH'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" fleche haut ("+arguments[2]+","+arguments[3]+')'
interaction_messages['FB'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" fleche bas ("+arguments[2]+","+arguments[3]+')'
interaction_messages['erreur_FH'] = "Affichage error a cause de fleche haut"
interaction_messages['erreur_FB'] = "Affichage error a cause de fleche bas"
interaction_messages['switch_haut_i'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" fleche switch haut de la pose n°"+(arguments[2]+1)
interaction_messages['switch_bas_i'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" fleche switch bas de la pose n°"+(arguments[2]+1)
interaction_messages['supp_pose_i'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" suppression de la pose n°"+(arguments[2]+1)
interaction_messages['bouton_select'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" choix n°"+(arguments[2]+1)+" bouton pose :("+arguments[3]+", "+arguments[4]+")"
interaction_messages['bouton_remove'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" bouton retirer"
interaction_messages['bouton_reset'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" bouton reinitialiser"
interaction_messages['bouton_valider'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" bouton valider"
interaction_messages['bouton_raz'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" bouton raz"
interaction_messages['bouton_raz_check'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" bouton raz check"
interaction_messages['bouton_raz_croix'] = "T"+arguments[0]+" Ch_fait"+arguments[1]+" bouton raz croix"
interaction_messages['erreur_reset_impossible'] = "Affichage error aucun choix fait donc pas de reinitialisation possible"
interaction_messages['erreur_pas_de_pose'] = "Affichage error pas de pose a retirer"
interaction_messages['erreur_choix_fait'] = "Affichage error "+arguments[0]+" deja fait"
interaction_messages['erreur_pose_selectionnee'] = "Affichage error pose deja sélectionnee"
interaction_messages['erreur_valider'] = "Affichage error a cause du bouton valider"
interaction_messages['fin_explication_analyse'] = "fin explication analyse - debut analyse"
interaction_messages['debut_analyse'] = "debut analyse n°1"
interaction_messages['bouton_valider_analyse'] = "bouton valider analyse"
interaction_messages['debut_analyse_i'] = "debut analyse n°"+(arguments[0]+1)
interaction_messages['ajout_check'] = "ajout check sur : analyse n°"+(arguments[0]+1)+", mot "+arguments[1]
interaction_messages['retrait_check'] = "retrait check sur : analyse n°"+(arguments[0]+1)+", mot "+arguments[1]
interaction_messages['fin_analyse'] = "fin analyse"
interaction_messages['fin_etude'] = "envoie des donnees - fin etude"
return interaction_messages[message_nom]
}