<?xml version="1.0" encoding="utf-8"?>
<Functions>
  <function name="Flipper Force/Time" type="CurveFunction" precomputeSamples="1000">
    <description>Describes the force multiplier applied to the flipper's solenoïd since user pressed the flipper button.</description>
    <xLabel>Time (s)</xLabel>
    <yLabel>Flipper Force Multiplier</yLabel>
    <params></params>
    <bounds xmin="0" xmax="0.0025" ymin="0" ymax="1" />
    <funName>CurveFunction</funName>
    <specifics>
      <nodes>
        <node type="SmoothCorner">
          <pos>0,0.92563</pos>
          <tin>-0.2,0.92563</tin>
          <tout>0.1941028,0.9738389</tout>
        </node>
        <node type="SmoothCorner">
          <pos>1,1</pos>
          <tin>0.8,1</tin>
          <tout>1.2,1</tout>
        </node>
      </nodes>
    </specifics>
  </function>
  <function name="Flipper Down Force/Time" type="CurveFunction" precomputeSamples="1000">
    <description>Describes the force multiplier applied to the flipper's solenoïd since user released the flipper button.</description>
    <xLabel>Time (s)</xLabel>
    <yLabel>Flipper Force Multiplier</yLabel>
    <params></params>
    <bounds xmin="0" xmax="0.1" ymin="0" ymax="1" />
    <funName>CurveFunction</funName>
    <specifics>
      <nodes>
        <node type="SmoothCorner">
          <pos>0,0</pos>
          <tin>-0.2,1.629815E-09</tin>
          <tout>0.1999914,-0.001851205</tout>
        </node>
        <node type="Smooth">
          <pos>0.9584953,0.6296539</pos>
          <tin>0.8656591,0.4525056</tin>
          <tout>1.051332,0.8068025</tout>
        </node>
        <node type="Corner">
          <pos>1,1</pos>
          <tin>0.8955924,0.8294156</tin>
          <tout>1.2,1</tout>
        </node>
      </nodes>
    </specifics>
  </function>
  <function name="Flipper Force/Stroke" type="CurveFunction" precomputeSamples="1000">
    <description>Describes the multiplier of the force applied to the flipper solenoïd according to current solenoïd stroke (a.k.a flipper angle, normalized between angle min and angle max).</description>
    <xLabel>Force multiplier</xLabel>
    <yLabel>Normalized Stroke Length</yLabel>
    <params></params>
    <bounds xmin="0" xmax="1" ymin="0" ymax="1" />
    <funName>CurveFunction</funName>
    <specifics>
      <nodes>
        <node type="SmoothCorner">
          <pos>0,1</pos>
          <tin>-0.2,1</tin>
          <tout>0.1999969,1.001113</tout>
        </node>
        <node type="Smooth">
          <pos>0.8896418,0.7665311</pos>
          <tin>0.7343355,0.8925468</tin>
          <tout>1.044948,0.6405153</tout>
        </node>
        <node type="SmoothCorner">
          <pos>1,0.3534067</pos>
          <tin>0.9728957,0.5515616</tin>
          <tout>1.2,0.3534067</tout>
        </node>
      </nodes>
    </specifics>
  </function>
  <function name="Flipper Force/Contact Distance" type="CurveFunction" precomputeSamples="1000">
    <description>This curve is used to modulate the speed of the ball after a collision with a flipper, depending on the distance between the contact point and the hinge of the flipper.
To avoid a friction like effect, this ratio is modulated according to the ball's direction relative to the flipper's direction: if the ball is sliding along the flipper, the ratio is not applyied at all and if the ball is completely coming perpendicular to the flipper, the ratio of this curve is fully applyied.</description>
    <xLabel>Contact Distance from hinge (mm)</xLabel>
    <yLabel>Force Ratio</yLabel>
    <params></params>
    <bounds xmin="0" xmax="65" ymin="0" ymax="1" />
    <funName>CurveFunction</funName>
    <specifics>
      <nodes>
        <node type="Smooth">
          <pos>0,0.9852597</pos>
          <tin>-0.196068,1.024723</tin>
          <tout>0.196068,0.9457968</tout>
        </node>
        <node type="Smooth">
          <pos>1,0</pos>
          <tin>0.9260921,0.185843</tin>
          <tout>1.073908,-0.185843</tout>
        </node>
      </nodes>
    </specifics>
  </function>
</Functions>