{
  "information": {
    "Title": "Geoboard template for workshop",
    "Author": [
      "weelookang@gmail.com",
      "Francisco Esquembre",
      "Felix J. Garcia Clemente"
    ],
    "AuthorLogo": [
      "./1authorlookangphoto5050.png",
      "./01authorPacoEsquembre2011.png",
      "./01authorFelix_J_Garcia_Clemente.png"
    ],
    "Password": "",
    "Keywords": "",
    "Abstract": "",
    "Copyright": "",
    "Level": "",
    "Language": "",
    "Logo": [
      "./geoboard/Screenshot 2024-07-11 at 11.15.08\u202fAM.png"
    ],
    "RunAlways": "true",
    "ModelTab": "",
    "ModelTabTitle": "",
    "ModelName": "",
    "FixedNavigationBar": "false",
    "CSSFile": "",
    "DetectedFiles": [
      "./01authorFelix_J_Garcia_Clemente.png",
      "./01authorPacoEsquembre2011.png",
      "./1authorlookangphoto5050.png",
      "./geoboard/Screenshot 2024-07-11 at 11.15.08\u202fAM.png"
    ],
    "AuxiliaryFiles": [
      "./geoboard/"
    ],
    "HTMLHead": "<style type=\"text/css\">\n.metadata { display: none; }\n</style>",
    "SaveInXMLFormat": "false",
    "IncludeSource": "true",
    "UseIndexHtml": "false",
    "IncludeLibrary": "true",
    "UglifyJS": "false",
    "PreviewFullModel": "false",
    "UseInterpreter": "true",
    "UseDeltaForODE": "false"
  },
  "description": {
    "pages": []
  },
  "model": {
    "variables": {
      "pages": [
        {
          "Name": "Var Table 5",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "gridSize",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "spacing",
              "Value": "1",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "x",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "y",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "elementInteracted",
              "Value": "-1",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "xLine",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "yLine",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "lineSizeX",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "lineSizeY",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "counter ",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "polColor",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "elementInteractedLine",
              "Value": "-1",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "visibleLine",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            }
          ]
        },
        {
          "Name": "midpoint",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "xMid",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "yMid",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "midpoint",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "dist",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            }
          ]
        },
        {
          "Name": "Var Table",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "t",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "dt",
              "Value": "0.05",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "pi",
              "Value": "Math.PI",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "font",
              "Value": "\"normal normal 2vw \"",
              "Type": "String",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "n",
              "Value": "32",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "angle",
              "Value": "pi",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "posX",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "posY",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "velX",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "velY",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "accX",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "accY",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "circle",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "theta",
              "Value": "pi/4",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "layout",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "Width",
              "Value": "(_isEPub)?\"400\":\"100%\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "display width",
              "Domain": "public"
            },
            {
              "Name": "Height",
              "Value": "(_isEPub)?\"500\":\"100%\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "Width1",
              "Value": "\"100%\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "display width",
              "Domain": "public"
            },
            {
              "Name": "Width2",
              "Value": "\"50%\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "display width",
              "Domain": "public"
            },
            {
              "Name": "world",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "graph",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "disabledworld",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "disabled",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "cells",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "xmin",
              "Value": "-10",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "xmax",
              "Value": "10",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ymin",
              "Value": "-10",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ymax",
              "Value": "10",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            }
          ]
        }
      ]
    },
    "initialization": {
      "pages": [
        {
          "Name": "undefined",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "// to hide the initial spawn of lines length at 0,0\nxLine[counter] = undefined;\nyLine[counter] = undefined;\nlineSizeX[counter] = undefined;\nlineSizeY[counter] = undefined;\n//counter = counter + 1;\n\n\nif (gridSize == undefined ){\n  gridSize = 10\n  }\n\n"
        },
        {
          "Name": "Init Page 1",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "for (var i = 0; i <= gridSize; i++) {\n    for (var j = 0; j <= gridSize; j++) {\n        x.push(i * spacing);\n        y.push(j * spacing);\n    }\n}"
        },
        {
          "Name": "colorPicker",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "function toggleInputType(id) {\n    var input = document.getElementById(id);\n    input.type = 'color';\n}\n\n// Change input type\ntoggleInputType('picker');\n\ndocument.getElementById('picker').value = '#ff0000';"
        }
      ]
    },
    "evolution": {
      "information": {
        "FPS": "20",
        "SPD": "1",
        "RealTimeVariable": "",
        "Autoplay": "false"
      },
      "pages": [
        {
          "Name": "Evol Page",
          "Active": "true",
          "Internal": "false",
          "Type": "ODE_EDITOR",
          "Comment": "",
          "IndependentVariable": "t",
          "Increment": "dt",
          "Equations": [
            {
              "state": "posX",
              "rate": "1"
            },
            {
              "state": "velX",
              "rate": "1"
            },
            {
              "state": "",
              "rate": ""
            }
          ],
          "Method": "RungeKutta",
          "AbsoluteTolerance": "0.00001",
          "PreliminaryCode": {
            "Code": "",
            "Comment": "Code to be executed before rate equations are evaluated"
          },
          "EventMaximumStep": "",
          "Events": {
            "pages": []
          },
          "ZenoEffect": {
            "Code": "",
            "Comment": "",
            "StopAfterEffect": "true"
          },
          "AccelerationIndependentOfVelocity": "false",
          "ForceSynchronization": "false",
          "UseBestInterpolation": "false",
          "EstimateFirstStep": "false",
          "MemoryLength": "",
          "InternalStep": "",
          "MaximumStep": "",
          "MaximumNumberOfSteps": "10000",
          "RelativeTolerance": "",
          "DelayList": "",
          "DelayMaximum": "",
          "DelayAddDiscont": "",
          "DelayInitialCondition": {
            "Code": "",
            "Comment": ""
          },
          "DirectIncidenceMatrix": "",
          "Discontinuities": {
            "pages": []
          },
          "ErrorHandling": {
            "pages": []
          }
        }
      ]
    },
    "fixed_relations": {
      "pages": [
        {
          "Name": "midpoint",
          "Active": "true",
          "Internal": "false",
          "Type": "undefined",
          "Comment": "",
          "Code": "if(counter > 1) {\n    xMid[counter-2] = (xLine[counter-2]+xLine[counter-1])/2\nyMid[counter-2] = (yLine[counter-2]+yLine[counter-1])/2\n}"
        },
        {
          "Name": "Distance",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "// Distance\nif (counter > 1) {\n    dist[counter-2]= Math.sqrt(Math.pow(xLine[counter-2] - xLine[counter-1], 2) + Math.pow(yLine[counter-2] - yLine[counter-1], 2)).toFixed(2);\n\n}"
        }
      ]
    },
    "custom": {
      "pages": [
        {
          "Name": "fullscreen",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "//https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode\n// does not work for iOS \n/*jslint browser:true */\nfunction toggleFullScreen() {\n  if (!document.fullscreenElement &&    // alternative standard method\n      !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) {  // current working methods\n    if (document.documentElement.requestFullscreen) {\n      document.documentElement.requestFullscreen();\n    } else if (document.documentElement.msRequestFullscreen) {\n      document.documentElement.msRequestFullscreen();\n    } else if (document.documentElement.mozRequestFullScreen) {\n      document.documentElement.mozRequestFullScreen();\n    } else if (document.documentElement.webkitRequestFullscreen) {\n      document.documentElement.webkitRequestFullscreen();\n    }\n  } else {\n    if (document.exitFullscreen) {\n      document.exitFullscreen();\n    } else if (document.msExitFullscreen) {\n      document.msExitFullscreen();\n    } else if (document.mozCancelFullScreen) {\n      document.mozCancelFullScreen();\n    } else if (document.webkitExitFullscreen) {\n      document.webkitExitFullscreen();\n    }\n  }\n}"
        },
        {
          "Name": "changeOrientation",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "// code to be copied to EJSS source code under Custom and used in drawingPanel3D and plottingPanel2D\n// address the problem is height difference is iOS app , epub, and Firefox\n// user need to change only k and kepub\n// copy %changeOrientation()% into the Height Field of drawingPanel3D and plottingPanel2D\nfunction changeOrientation() {\n \nvar k =0.90 ; // k control height 1 is for full screen, 0.9 shorten etc\nvar kapple =0.90 // control apple app height\nvar kepub =0.90 ;\n// check platform for Apps\ntry { // allow code to run in Student Learning Space \n  var iOSapp =  (typeof parent.device != 'undefined' && parent.device.platform == \"iOS\");\n  var Androidapp = (typeof parent.device != 'undefined' && parent.device.platform == \"Android\");\n} catch(e) {\n  var iOSapp = false;\n  var Androidapp = false;\n}\n// check platform for web browsers\nvar iOS =/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar iPad =/iPad/.test(navigator.userAgent) && !window.MSStream;\nvar iPhone = /iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar Android= /Android|android/i.test(navigator.userAgent);\n\n//navigator\nvar Firefox = navigator.userAgent.indexOf(\"Firefox\") != -1;\n \nswitch (window.orientation) { // using window.orientation as deciding factor\n  case 0:\n  case 180:\n    this.screenOrientation = 'portrait';\n    if (iOSapp){ // does not seems to work\n      \n      return window.screen.height*kapple;  //0.1 for app and 0.1 for nonfullscreenapp  \n    \n    }\n    else if (_isEPub){ // does not seems to work\n      //   return Math.max(window.screen.width,window.screen.height)*0.9;\n      return window.innerHeight*kepub;  //0.1 for app and 0.1 for nonfullscreenapp  \n      // return window.screen.height;\n      //  return window.innerHeight;\n      // return document.documentElement.clientHeight;\n    }\n   \n    else {\n     \n      return 100*k+\"vh\";\n    }\n    break;\n  case 90:\n  case -90:\n    this.screenOrientation = 'landscape';\n \n    if (iOSapp){ // App\n      return window.screen.width*kapple;  \n      // return window.screen.height;\n      //  return window.innerHeight;\n      //  return document.documentElement.clientHeight;\n    }\n    else if (_isEPub){ // does not seems to work\n      //   return Math.max(window.screen.width,window.screen.height)*0.9;\n      return window.innerHeight*kepub;  //0.1 for app and 0.1 for nonfullscreenapp  \n      // return window.screen.height;\n      //  return window.innerHeight;\n      // return document.documentElement.clientHeight;\n    }\n   \n    else {\n      return 100*k+\"vh\";\n      }\n    break;\n  default:\n    this.screenOrientation = 'unknown';\n    //       return (iPad)?\"\"+(window.screen.width+window.screen.height)*0.4:((iPhone)?\"\"+window.screen.width:_view._format(window.innerHeight*0.9,\"0\"));\n     if (Firefox){\n      return window.innerHeight*k;// number as of 20180831 Firefox does not support vh yet so need a separate line to handle\n      }\n   //   else if (iOS&&(window.orientation==0)||(window.orientation==180)){\n   //   return  window.screen.height*k;// number as of 20180831 Firefox does not support vh yet so need a separate line to handle\n   //   }\n    //  else if (iOS&&(window.orientation==90)||(window.orientation==-90)){\n   //   return  window.screen.width*k;// number as of 20180831 Firefox does not support vh yet so need a separate line to handle\n   //   }\n      else {\n      //alert();\n      // return 100*k+\"%\"; // work on fullscreen works in EJSS6.0beta\n        //  works in EjsS_5.3_180131\n      return  window.innerHeight*k; // work on panel \n       \n}\n\n}\n \n}"
        },
        {
          "Name": "speech",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "// copy this custom function\n// in iOS need to add speech to the play button as On iOS the API works but must be triggered by a user action callback, like a response to a tap event, to provide a better experience to users and avoid unexpected sounds out of your phone\nfunction speech (option) {\n\n\ntry { // allow code to run in Student Learning Space \nvar isCordova = (!!this.parent.cordova || !!window.cordova);\nif(isCordova) { // check it is running in Android or iOS\n       // parent.TTS.speak({text:option,locale:'zh-CN'});\n\tparent.TTS.speak({text:option,locale:'us-EN'});\n\t// parent.TTS.speak({text:option,locale:'en-US'});\n\t// parent.TTS.speak({text:option,locale:'id-ID'});\n} \n} \ncatch(e) {\n  var isCordova = false;\n  }\n  \n   var msg = new SpeechSynthesisUtterance(option);\n\n  //https://stackoverflow.com/questions/43983845/speechsynthesis-api-for-chinese-firefox\n  // Set the text.\n\t//msg.text = option; \n\t//https://forums.developer.apple.com/message/323564#323564\n\t// comment out the next 2 lines for english\n//msg.voice = speechSynthesis.getVoices().filter(function(voice) { return voice.name == 'Ting-Ting'; })[0];\n//msg.lang = 'zh-CH'; // need for android?\n//msg.lang = 'id-ID'; // need for android?\nmsg.lang = 'us-EN'; // need for android?\n\n//https://flaviocopes.com/speech-synthesis-api/\n//debug\n//console.log(`Voices #: ${speechSynthesis.getVoices().length}`)\n//speechSynthesis.getVoices().forEach(voice => {\n// console.log(voice.name, voice.lang)\n//})\n//debug\n\n// Queue this utterance.\nwindow.speechSynthesis.speak(msg);\n\n\n\n \n\n}"
        }
      ]
    },
    "elements": {
      "list": []
    }
  },
  "view": {
    "Tree": [
      {
        "Name": "fullscreen",
        "Type": "Panel",
        "Expanded": "true",
        "Properties": [
          {
            "name": "Width",
            "value": "Width"
          }
        ],
        "Children": [
          {
            "Name": "control",
            "Type": "Panel",
            "Expanded": "true",
            "Properties": [
              {
                "name": "BorderWidth",
                "value": "1"
              },
              {
                "name": "Visibility",
                "value": "true"
              }
            ],
            "Children": [
              {
                "Name": "controlPanel",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "CSS",
                    "value": "{\"display\":\"inline\"}"
                  },
                  {
                    "name": "Width",
                    "value": "\"100%\""
                  }
                ],
                "Children": [
                  {
                    "Name": "field",
                    "Type": "ParsedField",
                    "Properties": [
                      {
                        "name": "Format",
                        "value": "\"0\""
                      },
                      {
                        "name": "Value",
                        "value": "gridSize"
                      },
                      {
                        "name": "OnChange",
                        "value": "gridSize = Math.min (gridSize,10)\ngridSize = Math.max (gridSize,1)\n"
                      },
                      {
                        "name": "Width",
                        "value": "\"5vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      },
                      {
                        "name": "Visibility",
                        "value": "false"
                      }
                    ]
                  },
                  {
                    "Name": "picker",
                    "Type": "TextField",
                    "Properties": [
                      {
                        "name": "Font",
                        "value": "font"
                      },
                      {
                        "name": "Width",
                        "value": "\"10%\""
                      },
                      {
                        "name": "Height",
                        "value": "23"
                      },
                      {
                        "name": "Background",
                        "value": "\"White\""
                      },
                      {
                        "name": "Display",
                        "value": "\"inline-flex\""
                      }
                    ]
                  },
                  {
                    "Name": "newLine",
                    "Type": "Button",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"New Line\""
                      },
                      {
                        "name": "OnPress",
                        "value": "xLine[counter] = undefined;\nyLine[counter] = undefined;\nlineSizeX[counter] = undefined;\nlineSizeY[counter] = undefined;\ncounter = counter + 1;"
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      },
                      {
                        "name": "Width",
                        "value": "\"15%\""
                      }
                    ]
                  },
                  {
                    "Name": "DeleteLine",
                    "Type": "Button",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"select the line first and then click\""
                      },
                      {
                        "name": "Text",
                        "value": "\"Delete Line\""
                      },
                      {
                        "name": "OnPress",
                        "value": "visibleLine[elementInteractedLine] = false"
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      },
                      {
                        "name": "Width",
                        "value": "\"15%\""
                      }
                    ]
                  },
                  {
                    "Name": "playPauseButton2",
                    "Type": "TwoStateButton",
                    "Properties": [
                      {
                        "name": "OffClick",
                        "value": "_pause();\n//speech (\"paused\");"
                      },
                      {
                        "name": "TextOn",
                        "value": "\"Play\u25b6\""
                      },
                      {
                        "name": "State",
                        "value": "_isPaused"
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Play/Pause\""
                      },
                      {
                        "name": "TextOff",
                        "value": "\"Pause\u275a\u275a\""
                      },
                      {
                        "name": "Width",
                        "value": "\"20vw\""
                      },
                      {
                        "name": "OnClick",
                        "value": "_play();\n//speech (\"play\");"
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      },
                      {
                        "name": "Display",
                        "value": "\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "stepButton2",
                    "Type": "Button",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"Step|\u25ba\""
                      },
                      {
                        "name": "OnClick",
                        "value": "_step()"
                      },
                      {
                        "name": "Width",
                        "value": "\"20vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      },
                      {
                        "name": "Display",
                        "value": "\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "resetButton3",
                    "Type": "Button",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"Reset \u21bb\""
                      },
                      {
                        "name": "Width",
                        "value": "\"12%\""
                      },
                      {
                        "name": "OnClick",
                        "value": "_reset();//speech(reset);"
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Name": "panel",
            "Type": "Panel",
            "Expanded": "true",
            "Properties": [
              {
                "name": "Height",
                "value": "\"100%\""
              },
              {
                "name": "Width",
                "value": "\"100%\""
              },
              {
                "name": "Visibility",
                "value": "true"
              }
            ],
            "Children": [
              {
                "Name": "plottingPanel",
                "Type": "PlottingPanel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Gutters",
                    "value": "[20,0,0,20]"
                  },
                  {
                    "name": "ShowAreaRectangle",
                    "value": "false"
                  },
                  {
                    "name": "YScalePrecision",
                    "value": "0"
                  },
                  {
                    "name": "XFixedTick",
                    "value": "0"
                  },
                  {
                    "name": "OnDoubleClick",
                    "value": "toggleFullScreen();"
                  },
                  {
                    "name": "YFixedTick",
                    "value": "0"
                  },
                  {
                    "name": "XTickStep",
                    "value": "1"
                  },
                  {
                    "name": "YTickStep",
                    "value": "1"
                  },
                  {
                    "name": "XAutoTicks",
                    "value": "false"
                  },
                  {
                    "name": "Height",
                    "value": "%changeOrientation()%"
                  },
                  {
                    "name": "OnPress",
                    "value": "var position = _view.plottingPanel.getInteraction().getInteractionPoint();\n"
                  },
                  {
                    "name": "Width",
                    "value": "Width1"
                  },
                  {
                    "name": "Enabled",
                    "value": "true"
                  },
                  {
                    "name": "SquareAspect",
                    "value": "true"
                  },
                  {
                    "name": "MaximumY",
                    "value": "gridSize"
                  },
                  {
                    "name": "MaximumX",
                    "value": "gridSize"
                  },
                  {
                    "name": "EnabledDragging",
                    "value": "\"ENABLED_X\""
                  },
                  {
                    "name": "YAutoTicks",
                    "value": "false"
                  },
                  {
                    "name": "MinimumX",
                    "value": "0"
                  },
                  {
                    "name": "MinimumY",
                    "value": "0"
                  },
                  {
                    "name": "AutoScaleY",
                    "value": "false"
                  },
                  {
                    "name": "AutoScaleX",
                    "value": "false"
                  },
                  {
                    "name": "MarginX",
                    "value": "5"
                  },
                  {
                    "name": "MarginY",
                    "value": "5"
                  },
                  {
                    "name": "Visibility",
                    "value": "world===true"
                  },
                  {
                    "name": "XScalePrecision",
                    "value": "0"
                  },
                  {
                    "name": "GuttersLineColor",
                    "value": "\"White\""
                  },
                  {
                    "name": "GuttersColor",
                    "value": "\"White\""
                  },
                  {
                    "name": "ShowCoordinates",
                    "value": "true"
                  }
                ],
                "Children": [
                  {
                    "Name": "shapeSet2D",
                    "Type": "ShapeSet2D",
                    "Properties": [
                      {
                        "name": "Sensitivity",
                        "value": "10"
                      },
                      {
                        "name": "SizeX",
                        "value": "0.3"
                      },
                      {
                        "name": "ShapeType",
                        "value": "\"ELLIPSE\""
                      },
                      {
                        "name": "X",
                        "value": "x"
                      },
                      {
                        "name": "Y",
                        "value": "y"
                      },
                      {
                        "name": "OnPress",
                        "value": "elementInteracted =elementInteracted\nxLine[counter] = x[elementInteracted]\nyLine[counter] = y[elementInteracted]\nlineSizeX[counter] = xLine[counter-1] - xLine[counter]\nlineSizeY[counter] = yLine[counter-1] - yLine[counter]\n\n//initialise the color inside the line\npolColor[counter] = document.getElementById('picker').value;\nvisibleLine[counter] = true\n\ncounter = counter +1\n"
                      },
                      {
                        "name": "SizeY",
                        "value": "0.3"
                      },
                      {
                        "name": "EnabledPosition",
                        "value": "\"ENABLED_NO_MOVE\""
                      },
                      {
                        "name": "ElementInteracted",
                        "value": "elementInteracted"
                      },
                      {
                        "name": "FillColor",
                        "value": "\"Gray\""
                      }
                    ]
                  },
                  {
                    "Name": "segmentSet2D",
                    "Type": "SegmentSet2D",
                    "Properties": [
                      {
                        "name": "Sensitivity",
                        "value": "0"
                      },
                      {
                        "name": "SizeX",
                        "value": "lineSizeX"
                      },
                      {
                        "name": "X",
                        "value": "xLine"
                      },
                      {
                        "name": "LineColor",
                        "value": "%polColor%"
                      },
                      {
                        "name": "Y",
                        "value": "yLine"
                      },
                      {
                        "name": "OnPress",
                        "value": "polColor[elementInteractedLine] = document.getElementById('picker').value;"
                      },
                      {
                        "name": "Visibility",
                        "value": "visibleLine"
                      },
                      {
                        "name": "SizeY",
                        "value": "lineSizeY"
                      },
                      {
                        "name": "LineWidth",
                        "value": "5"
                      },
                      {
                        "name": "EnabledPosition",
                        "value": "\"ENABLED_NO_MOVE\""
                      },
                      {
                        "name": "ElementInteracted",
                        "value": "elementInteractedLine"
                      }
                    ]
                  },
                  {
                    "Name": "textSet2D",
                    "Type": "TextSet2D",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "dist"
                      },
                      {
                        "name": "X",
                        "value": "xMid"
                      },
                      {
                        "name": "Y",
                        "value": "yMid"
                      },
                      {
                        "name": "RelativePosition",
                        "value": "\"NORTH_EAST\""
                      },
                      {
                        "name": "FontSize",
                        "value": "14"
                      },
                      {
                        "name": "FillColor",
                        "value": "\"Black\""
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "RootProperties": []
  },
  "metadata": {
    "APP": "WebEJS",
    "CreatedWith": "WebEJS : the web version of Easy JavaScript Simulations",
    "MoreInfo": "1.0",
    "version": "https://t.um.es/webejs"
  }
}