<?xml version="1.0" encoding="UTF-16"?>
<!-- This XML file has been created by WebEJS 1.0. Visit http://t.um.es/webejs -->
<!-- Please, open it with WebEJS or save the file to your hard disk on your EJS' user directory and open it with Desktop Ejs 6.01 or later. -->
<Osejs version="7.0" password="">
<Osejs.Information>
<Title><![CDATA[Math_1_Thinking_Aloud]]></Title>
<Copyright><![CDATA[]]></Copyright>
<Keywords><![CDATA[]]></Keywords>
<Password><![CDATA[unused]]></Password>
<Level><![CDATA[]]></Level>
<Language><![CDATA[]]></Language>
<Abstract><![CDATA[]]></Abstract>
<FixedNavigationBar>false</FixedNavigationBar>
<RunAlways>true</RunAlways>
<UseInterpreter>true</UseInterpreter>
<UseDeltaForODE>false</UseDeltaForODE>
<PreviewFullModel>false</PreviewFullModel>
<ModelTab></ModelTab>
<ModelTabTitle><![CDATA[]]></ModelTabTitle>
<ModelName><![CDATA[]]></ModelName>
<CSSFile></CSSFile>
<HTMLHead><![CDATA[]]></HTMLHead>
<SaveInXMLFormat>true</SaveInXMLFormat>
<IncludeSource>true</IncludeSource>
<IncludeLibrary>true</IncludeLibrary>
<UglifyJS>false</UglifyJS>
<Logo>./images/screenshot.png</Logo>
<Author><![CDATA[kangrui;lookang;meiyoke]]></Author>
<AuthorLogo>;;</AuthorLogo>
<DetectedFiles><![CDATA[./images/screenshot.png]]></DetectedFiles>
<AuxiliaryFiles><![CDATA[./image.png;./images/screenshot.png]]></AuxiliaryFiles>
</Osejs.Information>
<Osejs.Description>
</Osejs.Description>
<Osejs.Model>
<Osejs.Model.FramesPerSecond>20</Osejs.Model.FramesPerSecond>
<Osejs.Model.StepsPerDisplay>1</Osejs.Model.StepsPerDisplay>
<Osejs.Model.RealTimeVariable></Osejs.Model.RealTimeVariable>
<Osejs.Model.Autostart>false</Osejs.Model.Autostart>
<Osejs.Model.Variables>
<Osejs.Model.Variables.Page>
<Type>VARIABLE_EDITOR</Type>
<Name>coordinates</Name>
<Active>true</Active>
<Internal>false</Internal>
<Content>
<PageComment><![CDATA[]]></PageComment>
<Variable>
<Name><![CDATA[vx]]></Name>
<Value><![CDATA[]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[vy]]></Name>
<Value><![CDATA[]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[destination]]></Name>
<Value><![CDATA[{x: 0, y: 0}]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[home]]></Name>
<Value><![CDATA[{name: "home", x: 12.84, y: 16.83, allowed: [50, 40, 80]}]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[postbox]]></Name>
<Value><![CDATA[{name: "postbox", x: 3.10, y: 14.48, allowed: [50, 28, 68]}]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[market]]></Name>
<Value><![CDATA[{name: "market", x: 4, y: 2.23, allowed: [68, 58, 92]}]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[grandmaHouse]]></Name>
<Value><![CDATA[{name: "grandmaHouse", x: 8.47, y: 11.48, allowed: [28, 40, 58, 70]}]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[cafe]]></Name>
<Value><![CDATA[{name: "cafe", x: 17.95, y: 3.92, allowed: [80, 70, 92]}]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[x]]></Name>
<Value><![CDATA[home.x]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[y]]></Name>
<Value><![CDATA[home.y]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[current]]></Name>
<Value><![CDATA[{name: "home", x: 12.84, y: 16.83, allowed: [50, 40, 80]}]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[pathTaken]]></Name>
<Value><![CDATA[[]]]></Value>
<Type><![CDATA[String]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[distance_travelled]]></Name>
<Value><![CDATA[0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[locationHistory]]></Name>
<Value><![CDATA[[]]]></Value>
<Type><![CDATA[String]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[]]></Name>
<Value><![CDATA[]]></Value>
<Type><![CDATA[String]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
</Content>
</Osejs.Model.Variables.Page>
<Osejs.Model.Variables.Page>
<Type>undefined</Type>
<Name>styling</Name>
<Active>true</Active>
<Internal>false</Internal>
<Content>
<PageComment><![CDATA[]]></PageComment>
<Variable>
<Name><![CDATA[lineColor]]></Name>
<Value><![CDATA["rgba(0,0,0,0.5)"]]></Value>
<Type><![CDATA[String]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[t]]></Name>
<Value><![CDATA[0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dt]]></Name>
<Value><![CDATA[0.05]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[]]></Name>
<Value><![CDATA[]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Domain><![CDATA[]]></Domain>
<Comment><![CDATA[]]></Comment>
</Variable>
</Content>
</Osejs.Model.Variables.Page>
</Osejs.Model.Variables>
<Osejs.Model.Initialization>
<Osejs.Model.Initialization.Page>
<Type>undefined</Type>
<Name>test</Name>
<Active>true</Active>
<Internal>false</Internal>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
_tools.showOkDialog(' <p>Susan is leaving her home. She needs to do the following before returning home:</p><ul><li>Post a letter in the postbox.</li><li>Buy cookies from the cafe.</li><li>Buy a packet of grapes from the market.</li><li>Visit her grandmother.</li></ul>');

]]></Code>
</Content>
</Osejs.Model.Initialization.Page>
</Osejs.Model.Initialization>
<Osejs.Model.Evolution>
<Osejs.Model.Evolution.Page>
<Type>ODE_EDITOR</Type>
<Name>Evol Page 1</Name>
<Active>false</Active>
<Internal>false</Internal>
<Content>
<PreliminaryCode>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
// Preliminary code for ODE : Evol Page 1
]]></Code>
</PreliminaryCode>
<ErrorHandling>
</ErrorHandling>
<DelayInitialCondition>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[

]]></Code>
</DelayInitialCondition>
<Discontinuities>
</Discontinuities>
<Events>
<Event.Page>
<Type>undefined</Type>
<Name>Event 1</Name>
<Active>true</Active>
<Internal>false</Internal>
<EventContent>
<EventType>CROSSING_EVENT</EventType>
<Method>BISECTION</Method>
<Iterations>100</Iterations>
<Tolerance><![CDATA[1.0e-5]]></Tolerance>
<StopAtEvent>true</StopAtEvent>
<ZeroCondition><![CDATA[
return x - (destination.x) // Condition for Event 1
]]></ZeroCondition>
<Action><![CDATA[
// Action for Event 1
x = destination.x;
y = destination.y;

distance_travelled = pathTaken.reduce(function (accumulator, currentValue) {
    return accumulator + currentValue;
}, 0);  // Initialize the accumulator with 0



_pause()
]]></Action>
<Comment><![CDATA[]]></Comment>
</EventContent>
</Event.Page>
</Events>
<ZenoEffect>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[

]]></Code>
<StopAfterEffect>true</StopAfterEffect>
</ZenoEffect>
<IndependentVariable>t</IndependentVariable>
<Increment>dt</Increment>
<Rate state="x">vx</Rate>
<Rate state="y">vy</Rate>
<Rate state=""></Rate>
<Method>RungeKutta</Method>
<MaximumNumberOfSteps>10000</MaximumNumberOfSteps>
<AbsoluteTolerance></AbsoluteTolerance>
<EstimateFirstStep>false</EstimateFirstStep>
<AccelerationIndependentOfVelocity>false</AccelerationIndependentOfVelocity>
<ForceSynchronization>false</ForceSynchronization>
<UseBestInterpolation>false</UseBestInterpolation>
<Comment><![CDATA[]]></Comment>
</Content>
</Osejs.Model.Evolution.Page>
</Osejs.Model.Evolution>
<Osejs.Model.Constraints>
<Osejs.Model.Constraints.Page>
<Type>undefined</Type>
<Name>FixRel Page 1</Name>
<Active>true</Active>
<Internal>false</Internal>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[

]]></Code>
</Content>
</Osejs.Model.Constraints.Page>
</Osejs.Model.Constraints>
<Osejs.Model.Library>
<Osejs.Model.Library.Page>
<Type>undefined</Type>
<Name>Custom Page 1</Name>
<Active>true</Active>
<Internal>false</Internal>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
// lookang

function cubicBezier(t, p0, p1, p2, p3) {
    const x = Math.pow(1 - t, 3) * p0.x + 3 * Math.pow(1 - t, 2) * t * p1.x + 3 * (1 - t) * Math.pow(t, 2) * p2.x + Math.pow(t, 3) * p3.x;
    const y = Math.pow(1 - t, 3) * p0.y + 3 * Math.pow(1 - t, 2) * t * p1.y + 3 * (1 - t) * Math.pow(t, 2) * p2.y + Math.pow(t, 3) * p3.y;
    return {x: x, y: y};
}


function calculateVelocityCurve(dest, midPoint1, midPoint2, road) {
    if (current.allowed.includes(road)) {
        pathTaken.push(road);
        locationHistory.push(dest.name);
        destination = Object.assign({}, dest);
        current = Object.assign({}, dest);  // Arrive at the destination

        // Bezier curve control points
        var p0 = {x: x, y: y};           // Start position (current position)
        var p1 = Object.assign({}, midPoint1);               // Midpoint control 1 (user-defined)
        var p2 = Object.assign({}, midPoint2);               // Midpoint control 2 (user-defined)
        var p3 = {x: dest.x, y: dest.y};  // End position (destination)

        var time = 0;
        var totalSteps = 65;  // Number of steps for smoothness

        _play();  // Start the simulation

        // Function to move along the cubic Bezier curve
        function moveAlongCurve() {
            if (time <= 1) {
                // Calculate new x and y coordinates using Bezier curve formula
                var point = cubicBezier(time, p0, p1, p2, p3);
                x = point.x;
                y = point.y;

                time += 1 / totalSteps;  // Increment t for smooth movement

                _update();  // Update the simulation to reflect new position

                // Call the function again for the next step
                setTimeout(moveAlongCurve, 20);  // Call every 20ms for smooth animation
            } else {
                x = destination.x;
                y = destination.y;
                _pause();  // Stop the simulation
            }
        }

        moveAlongCurve();  // Start moving along the curve
        console.log(pathTaken);
    } else {
        alert("Please choose a road next to this position!");
    }
}

function checkPath() {
  console.log(JSON.stringify(pathTaken))
  console.log("distance travelled: ", pathTaken.reduce((accumulator, currentValue) => accumulator + currentValue, 0));
  if (pathTaken.length === 5 && pathTaken.reduce((accumulator, currentValue) => accumulator + currentValue, 0) === 308) {
      alert("Shortest distance travelled! Well done.")
  } else {
      alert("Wrong answer, try again!");
  }
    destination = {x: 0, y: 0};
      x = home.x;
      y = home.y;
      current = {name: "home", x: 12.84, y: 16.83, allowed: [50, 40, 80]};
      pathTaken = [];
      locationHistory = [];
}

]]></Code>
</Content>
</Osejs.Model.Library.Page>
</Osejs.Model.Library>
<Osejs.Model.Elements>
</Osejs.Model.Elements>
</Osejs.Model>
<Osejs.HtmlView>
<Osejs.HtmlView.Page>
<Type>HTML_VIEW_EDITOR</Type>
<Name>HtmlView</Name>
<Active>true</Active>
<Internal>false</Internal>
<Content>
<SizeOption>0</SizeOption>
<X>0</X>
<Y>0</Y>
<Width>800</Width>
<Height>600</Height>
<KeepHidden>true</KeepHidden>
<RootProperties>
</RootProperties>
<Tree>
<HtmlView.Element>
<Expanded>true</Expanded>
<Type>Elements.Panel</Type>
<Name><![CDATA[singlePlotPanel]]></Name>
<Property name="Width"><![CDATA["100%"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Expanded>true</Expanded>
<Type>Elements.Panel</Type>
<Name><![CDATA[panel]]></Name>
<Parent><![CDATA[singlePlotPanel]]></Parent>
</HtmlView.Element>
<HtmlView.Element>
<Expanded>true</Expanded>
<Type>Elements.Panel</Type>
<Name><![CDATA[firstRowPanel]]></Name>
<Parent><![CDATA[panel]]></Parent>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Label</Type>
<Name><![CDATA[Instructions]]></Name>
<Parent><![CDATA[firstRowPanel]]></Parent>
<Property name="Text"><![CDATA["Click on the locations to navigate"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Expanded>true</Expanded>
<Type>Elements.Panel</Type>
<Name><![CDATA[panel_2]]></Name>
<Parent><![CDATA[firstRowPanel]]></Parent>
<Property name="Display"><![CDATA["inline-block"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Button</Type>
<Name><![CDATA[Submit]]></Name>
<Parent><![CDATA[panel_2]]></Parent>
<Property name="Text"><![CDATA["Submit"]]></Property>
<Property name="OnPress"><![CDATA[checkPath()]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Button</Type>
<Name><![CDATA[resetButton]]></Name>
<Parent><![CDATA[panel_2]]></Parent>
<Property name="Tooltip"><![CDATA["Reset"]]></Property>
<Property name="OnClick"><![CDATA[%_reset%]]></Property>
<Property name="Text"><![CDATA["Reset ↺"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Expanded>true</Expanded>
<Type>Elements.PlottingPanel</Type>
<Name><![CDATA[plottingPanel]]></Name>
<Parent><![CDATA[singlePlotPanel]]></Parent>
<Property name="MinimumX"><![CDATA[0]]></Property>
<Property name="MaximumX"><![CDATA[20]]></Property>
<Property name="MinimumY"><![CDATA[0]]></Property>
<Property name="MaximumY"><![CDATA[20]]></Property>
<Property name="Enabled"><![CDATA[true]]></Property>
<Property name="Gutters"><![CDATA[[0,0,0,0]]]></Property>
<Property name="Width"><![CDATA["100%"]]></Property>
<Property name="Height"><![CDATA["80vh"]]></Property>
<Property name="BRMessage"><![CDATA[" t= "+ t.toFixed(2) + " s"]]></Property>
<Property name="TLMessage"><![CDATA["Path Taken="+locationHistory.join("->")+"\nDistance Travelled="+pathTaken.reduce((accumulator, currentValue) => accumulator + currentValue, 0)+"m"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Image2D</Type>
<Name><![CDATA[background]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="ImageUrl"><![CDATA["./image.png"]]></Property>
<Property name="X"><![CDATA[10]]></Property>
<Property name="Y"><![CDATA[10]]></Property>
<Property name="SizeX"><![CDATA[20]]></Property>
<Property name="SizeY"><![CDATA[20]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[home]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="X"><![CDATA[home.x]]></Property>
<Property name="Y"><![CDATA[home.y]]></Property>
<Property name="SizeX"><![CDATA[3]]></Property>
<Property name="SizeY"><![CDATA[3]]></Property>
<Property name="Visibility"><![CDATA[true]]></Property>
<Property name="OnPress"><![CDATA[if (current.name === "postbox") {
calculateVelocityCurve(home,{x: 9, y: 17},{x: 6, y: 16}, 50)
} else if (current.name === "grandmaHouse")
{
calculateVelocityCurve(home,{x: 13.47, y: 14.32},{x: 11.74, y: 12.33}, 40)
} else if (current.name === "cafe") {
calculateVelocityCurve(home,{x: 18, y: 15},{x: 18, y: 15}, 80)
} else {
alert("Please select a place next to this position!")
}]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
<Property name="Sensitivity"><![CDATA[0]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[postbox]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="X"><![CDATA[postbox.x]]></Property>
<Property name="Y"><![CDATA[postbox.y]]></Property>
<Property name="SizeX"><![CDATA[3]]></Property>
<Property name="SizeY"><![CDATA[3]]></Property>
<Property name="Visibility"><![CDATA[true]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="OnPress"><![CDATA[if (current.name === "home") {
calculateVelocityCurve(postbox,{x: 9, y: 17},{x: 6, y: 16}, 50)
} else if (current.name === "grandmaHouse")
{
calculateVelocityCurve(postbox,{x: 4.37, y: 13.57},{x: 6.85, y: 12.33}, 28)
} else if (current.name === "market") {
calculateVelocityCurve(postbox,{x: 1.84, y: 10.76},{x: 2.36, y: 5.89}, 68)
} else {
alert("Please select a place next to this position!")
}]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
<Property name="Sensitivity"><![CDATA[0]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[girl]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="X"><![CDATA[x]]></Property>
<Property name="SizeX"><![CDATA[2]]></Property>
<Property name="SizeY"><![CDATA[2]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="Y"><![CDATA[y]]></Property>
<Property name="PixelSize"><![CDATA[true]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Text2D</Type>
<Name><![CDATA[girl_2]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="Text"><![CDATA["👧"]]></Property>
<Property name="X"><![CDATA[x]]></Property>
<Property name="Y"><![CDATA[y]]></Property>
<Property name="FontSize"><![CDATA["5vw"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[market]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="X"><![CDATA[market.x]]></Property>
<Property name="Y"><![CDATA[market.y]]></Property>
<Property name="SizeX"><![CDATA[3]]></Property>
<Property name="SizeY"><![CDATA[3]]></Property>
<Property name="Visibility"><![CDATA[true]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="OnPress"><![CDATA[if (current.name === "postbox") {
calculateVelocityCurve(market,{x: 1.84, y: 10.76},{x: 2.36, y: 5.89}, 68)
} else if (current.name === "grandmaHouse")
{
calculateVelocityCurve(market,{x: 6.61, y: 6.71},{x: 6.89, y: 9.95}, 58)
} else if (current.name === "cafe") {
calculateVelocityCurve(market,{x: 14.07, y: 1},{x: 8.22, y: 1}, 92)
} else { 
alert("Please select a place next to this position!")
}]]></Property>
<Property name="Sensitivity"><![CDATA[0]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[grandmaHouse]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="SizeX"><![CDATA[3]]></Property>
<Property name="SizeY"><![CDATA[3]]></Property>
<Property name="X"><![CDATA[grandmaHouse.x]]></Property>
<Property name="Y"><![CDATA[grandmaHouse.y]]></Property>
<Property name="Visibility"><![CDATA[true]]></Property>
<Property name="Sensitivity"><![CDATA[0]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="OnPress"><![CDATA[if (current.name === "home") {
calculateVelocityCurve(grandmaHouse,{x: 13.47, y: 14.32},{x: 11.74, y: 12.33}, 40)
} else if (current.name === "postbox")
{
calculateVelocityCurve(grandmaHouse,{x: 4.37, y: 13.57},{x: 6.85, y: 12.33}, 28)
} else if (current.name === "market") {
calculateVelocityCurve(grandmaHouse,{x: 6.61, y: 6.71},{x: 6.89, y: 9.95}, 58)
} else if (current.name === "cafe") {
calculateVelocityCurve(grandmaHouse,{x: 11.94, y: 9.69},{x: 14.03, y: 6.09}, 70)
} else {
alert("Please select a place next to this position!")
}]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[cafe]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="SizeX"><![CDATA[3]]></Property>
<Property name="SizeY"><![CDATA[3]]></Property>
<Property name="X"><![CDATA[cafe.x]]></Property>
<Property name="Y"><![CDATA[cafe.y]]></Property>
<Property name="Visibility"><![CDATA[true]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
<Property name="OnPress"><![CDATA[if (current.name === "home") {
calculateVelocityCurve(cafe,{x: 18, y: 15},{x: 18, y: 15}, 80)
} else if (current.name === "grandmaHouse")
{
calculateVelocityCurve(cafe,{x: 11.94, y: 9.69},{x: 14.03, y: 6.09}, 70)
} else if (current.name === "market") {
calculateVelocityCurve(cafe,{x: 14.07, y: 1},{x: 8.22, y: 1}, 92)
} else {
alert("Please select a place next to this position!")
}]]></Property>
<Property name="Sensitivity"><![CDATA[0]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Expanded>false</Expanded>
<Type>Elements.Group2D</Type>
<Name><![CDATA[lines]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Segment2D</Type>
<Name><![CDATA[postboxMarketLine]]></Name>
<Parent><![CDATA[lines]]></Parent>
<Property name="X"><![CDATA[postbox.x]]></Property>
<Property name="Y"><![CDATA[postbox.y]]></Property>
<Property name="SizeX"><![CDATA[market.x-postbox.x]]></Property>
<Property name="Offset"><![CDATA["SOUTH_WEST"]]></Property>
<Property name="SizeY"><![CDATA[market.y-postbox.y]]></Property>
<Property name="LineWidth"><![CDATA[2]]></Property>
<Property name="LineColor"><![CDATA[%lineColor%]]></Property>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Segment2D</Type>
<Name><![CDATA[homePostboxLine]]></Name>
<Parent><![CDATA[lines]]></Parent>
<Property name="X"><![CDATA[home.x]]></Property>
<Property name="Y"><![CDATA[home.y]]></Property>
<Property name="SizeX"><![CDATA[postbox.x-home.x]]></Property>
<Property name="Offset"><![CDATA["SOUTH_WEST"]]></Property>
<Property name="SizeY"><![CDATA[postbox.y-home.y]]></Property>
<Property name="LineWidth"><![CDATA[2]]></Property>
<Property name="LineColor"><![CDATA[%lineColor%]]></Property>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Segment2D</Type>
<Name><![CDATA[homeGrandmaHouseLine]]></Name>
<Parent><![CDATA[lines]]></Parent>
<Property name="Y"><![CDATA[home.y]]></Property>
<Property name="SizeX"><![CDATA[grandmaHouse.x-home.x]]></Property>
<Property name="Offset"><![CDATA["SOUTH_WEST"]]></Property>
<Property name="SizeY"><![CDATA[grandmaHouse.y-home.y]]></Property>
<Property name="LineWidth"><![CDATA[2]]></Property>
<Property name="LineColor"><![CDATA[%lineColor%]]></Property>
<Property name="X"><![CDATA[home.x]]></Property>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Segment2D</Type>
<Name><![CDATA[postboxGrandmaHouseLine]]></Name>
<Parent><![CDATA[lines]]></Parent>
<Property name="X"><![CDATA[postbox.x]]></Property>
<Property name="Y"><![CDATA[postbox.y]]></Property>
<Property name="SizeX"><![CDATA[grandmaHouse.x-postbox.x]]></Property>
<Property name="Offset"><![CDATA["SOUTH_WEST"]]></Property>
<Property name="SizeY"><![CDATA[grandmaHouse.y-postbox.y]]></Property>
<Property name="LineWidth"><![CDATA[2]]></Property>
<Property name="LineColor"><![CDATA[%lineColor%]]></Property>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Segment2D</Type>
<Name><![CDATA[marketGrandmaHouseLine]]></Name>
<Parent><![CDATA[lines]]></Parent>
<Property name="X"><![CDATA[market.x]]></Property>
<Property name="Y"><![CDATA[market.y]]></Property>
<Property name="SizeX"><![CDATA[grandmaHouse.x-market.x]]></Property>
<Property name="Offset"><![CDATA["SOUTH_WEST"]]></Property>
<Property name="SizeY"><![CDATA[grandmaHouse.y-market.y]]></Property>
<Property name="LineWidth"><![CDATA[2]]></Property>
<Property name="LineColor"><![CDATA[%lineColor%]]></Property>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Segment2D</Type>
<Name><![CDATA[homeCafeLine]]></Name>
<Parent><![CDATA[lines]]></Parent>
<Property name="X"><![CDATA[home.x]]></Property>
<Property name="Y"><![CDATA[home.y]]></Property>
<Property name="SizeX"><![CDATA[cafe.x-home.x]]></Property>
<Property name="Offset"><![CDATA["SOUTH_WEST"]]></Property>
<Property name="SizeY"><![CDATA[cafe.y-home.y]]></Property>
<Property name="LineWidth"><![CDATA[2]]></Property>
<Property name="LineColor"><![CDATA[%lineColor%]]></Property>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Segment2D</Type>
<Name><![CDATA[grandmaCafeLine]]></Name>
<Parent><![CDATA[lines]]></Parent>
<Property name="X"><![CDATA[grandmaHouse.x]]></Property>
<Property name="Y"><![CDATA[grandmaHouse.y]]></Property>
<Property name="SizeX"><![CDATA[cafe.x-grandmaHouse.x]]></Property>
<Property name="Offset"><![CDATA["SOUTH_WEST"]]></Property>
<Property name="SizeY"><![CDATA[cafe.y-grandmaHouse.y]]></Property>
<Property name="LineWidth"><![CDATA[2]]></Property>
<Property name="LineColor"><![CDATA[%lineColor%]]></Property>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Segment2D</Type>
<Name><![CDATA[marketCafeLine]]></Name>
<Parent><![CDATA[lines]]></Parent>
<Property name="X"><![CDATA[market.x]]></Property>
<Property name="Y"><![CDATA[market.y]]></Property>
<Property name="SizeX"><![CDATA[cafe.x-market.x]]></Property>
<Property name="Offset"><![CDATA["SOUTH_WEST"]]></Property>
<Property name="SizeY"><![CDATA[cafe.y-market.y]]></Property>
<Property name="LineWidth"><![CDATA[2]]></Property>
<Property name="LineColor"><![CDATA[%lineColor%]]></Property>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Expanded>true</Expanded>
<Type>Elements.Group2D</Type>
<Name><![CDATA[clickables]]></Name>
<Parent><![CDATA[plottingPanel]]></Parent>
<Property name="Visibility"><![CDATA[false]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[homePostbox]]></Name>
<Parent><![CDATA[clickables]]></Parent>
<Property name="X"><![CDATA[7.2]]></Property>
<Property name="Y"><![CDATA[17.71]]></Property>
<Property name="SizeX"><![CDATA[1]]></Property>
<Property name="SizeY"><![CDATA[1]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="OnPress"><![CDATA[calculateVelocityCurve(x === home.x && y === home.y ? postbox : home,{x: 9, y: 17},{x: 6, y: 16}, 50)]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[postboxMarket]]></Name>
<Parent><![CDATA[clickables]]></Parent>
<Property name="X"><![CDATA[3.10]]></Property>
<Property name="Y"><![CDATA[9.17]]></Property>
<Property name="SizeX"><![CDATA[1]]></Property>
<Property name="SizeY"><![CDATA[1]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
<Property name="OnPress"><![CDATA[calculateVelocityCurve(x === postbox.x && y === postbox.y ? market: postbox, {x: 1.84, y: 10.76},{x: 2.36, y: 5.89}, 68)]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[homeGrandmaHouse]]></Name>
<Parent><![CDATA[clickables]]></Parent>
<Property name="X"><![CDATA[13.58]]></Property>
<Property name="Y"><![CDATA[12.37]]></Property>
<Property name="SizeX"><![CDATA[1]]></Property>
<Property name="SizeY"><![CDATA[1]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="OnPress"><![CDATA[calculateVelocityCurve(x === home.x && y === home.y ? grandmaHouse: home,{x: 13.47, y: 14.32},{x: 11.74, y: 12.33}, 40)]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[postboxGrandmaHouse]]></Name>
<Parent><![CDATA[clickables]]></Parent>
<Property name="X"><![CDATA[4.6]]></Property>
<Property name="Y"><![CDATA[11.98]]></Property>
<Property name="SizeX"><![CDATA[1]]></Property>
<Property name="SizeY"><![CDATA[1]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
<Property name="OnPress"><![CDATA[calculateVelocityCurve(x === postbox.x && y === postbox.y ? grandmaHouse: postbox,{x: 4.37, y: 13.57},{x: 6.85, y: 12.33}, 28)]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[marketGrandmaHouse]]></Name>
<Parent><![CDATA[clickables]]></Parent>
<Property name="X"><![CDATA[8.07]]></Property>
<Property name="Y"><![CDATA[7.03]]></Property>
<Property name="SizeX"><![CDATA[1]]></Property>
<Property name="SizeY"><![CDATA[1]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="OnPress"><![CDATA[calculateVelocityCurve(x === market.x && y === market.y ? grandmaHouse : market,{x: 6.61, y: 6.71},{x: 6.89, y: 9.95}, 58)]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[homeCafe]]></Name>
<Parent><![CDATA[clickables]]></Parent>
<Property name="X"><![CDATA[18.48]]></Property>
<Property name="Y"><![CDATA[12.31]]></Property>
<Property name="SizeX"><![CDATA[1]]></Property>
<Property name="SizeY"><![CDATA[1]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="OnPress"><![CDATA[calculateVelocityCurve(x === home.x && y === home.y ? cafe: home,{x: 18, y: 15},{x: 18, y: 15}, 80)]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[grandmaHouseCafe]]></Name>
<Parent><![CDATA[clickables]]></Parent>
<Property name="X"><![CDATA[14.15]]></Property>
<Property name="Y"><![CDATA[8.44]]></Property>
<Property name="SizeX"><![CDATA[1]]></Property>
<Property name="SizeY"><![CDATA[1]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="OnPress"><![CDATA[calculateVelocityCurve(x === grandmaHouse.x && y === grandmaHouse.y ? cafe: grandmaHouse,{x: 11.94, y: 9.69},{x: 14.03, y: 6.09}, 70)]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
</HtmlView.Element>
<HtmlView.Element>
<Type>Elements.Shape2D</Type>
<Name><![CDATA[marketCafe]]></Name>
<Parent><![CDATA[clickables]]></Parent>
<Property name="X"><![CDATA[11.51]]></Property>
<Property name="Y"><![CDATA[2.88]]></Property>
<Property name="SizeX"><![CDATA[1]]></Property>
<Property name="SizeY"><![CDATA[1]]></Property>
<Property name="ShapeType"><![CDATA["RECTANGLE"]]></Property>
<Property name="OnPress"><![CDATA[calculateVelocityCurve(x === market.x && y === market.y ? cafe: market,{x: 14.07, y: 1},{x: 8.22, y: 1}, 92)]]></Property>
<Property name="FillColor"><![CDATA["rgba(0,0,0,0)"]]></Property>
<Property name="EnabledPosition"><![CDATA["ENABLED_NO_MOVE"]]></Property>
<Property name="LineWidth"><![CDATA[0]]></Property>
</HtmlView.Element>
</Tree>
</Content>
</Osejs.HtmlView.Page>
</Osejs.HtmlView>
</Osejs>