<!doctype html>
<!-- saved from url=(0044)http://kenedict.com/networks/worldcup14/vis/ , thanks Andre!-->
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF8">
  <title>Network | Static smooth curves - World Cup Network</title>

  <script type="text/javascript" src="../../dist/vis.js"></script>
  <link type="text/css" rel="stylesheet" href="../../dist/vis.css">

  <script src="./data/WorldCup2014.js"></script>

  <style type="text/css">
    #mynetwork {
      width: 800px;
      height: 800px;
      border: 1px solid lightgray;
    }
  </style>
  <script src="../googleAnalytics.js"></script>
</head>

<body>

<h2>Static smooth curves - World Cup Network</h2>

<div style="width:700px; font-size:14px;">
  The static smooth curves are based only on the positions of the connected
  nodes.
  There are multiple ways to determine the way this curve is drawn.
  This example shows the effect of the different types on a large network.
  <br/> <br/>
  Also shown in this example is the inheritColor option of the edges as well as
  the roundness factor. <br/>
  <br/><br/>
  To improve performance, the physics have been disabled with:
  <br/><code>{barnesHut: {gravitationalConstant: 0, centralGravity: 0,
  springConstant: 0}}</code><br/> and we have enabled
  the toggle hideEdgesOnDrag.
  <br/><br/>
</div>

Smooth curve type:
<select id="dropdownID">
  <option value="continuous">continuous</option>
  <option value="discrete">discrete</option>
  <option value="diagonalCross">diagonalCross</option>
  <option value="straightCross">straightCross</option>
  <option value="horizontal">horizontal</option>
  <option value="vertical">vertical</option>
  <option value="curvedCW">curvedCW</option>
  <option value="curvedCCW">curvedCCW</option>
</select><br/>
inheritColor option:
<select id="inheritColor">
  <option value="from">from / true</option>
  <option value="to">to</option>
  <option value="false">false</option>
</select><br/>
Roundness (0..1): <input type="range" min="0" max="1" value="0.5" step="0.05"
                         style="width:200px" id="roundnessSlider"> <input
    id="roundnessScreen" value="0.5"> (0.5 is max roundness for continuous, 1.0
for the others)
<br/>
Hide edges on drag: <input type="checkbox" checked="checked"
                           id="hideEdgesOnDrag" /><br/>
Hide nodes on drag: <input type="checkbox" id="hideNodesOnDrag" />

<div id="mynetwork"></div>

<script type="text/javascript">
  var dropdown = document.getElementById("dropdownID");
  dropdown.onchange = update;

  var roundnessSlider = document.getElementById("roundnessSlider");
  roundnessSlider.onchange = update;

  var roundnessScreen = document.getElementById("roundnessScreen");
  var hideEdgesOnDrag = document.getElementById("hideEdgesOnDrag");
  hideEdgesOnDrag.onchange = update;
  var hideNodesOnDrag = document.getElementById("hideNodesOnDrag");
  hideNodesOnDrag.onchange = update;
  var inheritColor = document.getElementById("inheritColor");
  inheritColor.onchange = redrawAll;

  var network;


  function redrawAll() {
    network = null;

    var inheritColorVal = inheritColor.value;

    var container = document.getElementById('mynetwork');
    var options = {
      nodes: {
        shape: 'dot',
        scaling: {
          min: 10,
          max: 30
        },
        font: {
          size: 12,
          face: 'Tahoma'
        }
      },
      edges: {
        width: 0.15,
        color: {
          inherit: (inheritColorVal == 'false') ? false : inheritColorVal
        },
        smooth: {
          dynamic: false,
          type: 'continuous'
        }
      },
      interaction: {
        tooltipDelay: 200
      },
      rendering: {
        hideEdgesOnDrag: true
      },
      physics: false
    };

    // Note: data is coming from ./data/WorldCup2014.js
    network = new vis.Network(container, data, options);
  }

  function update() {
    var type = dropdown.value;
    var roundness = parseFloat(roundnessSlider.value);
    roundnessScreen.value = roundness;

    var options = {
      edges: {
        smooth: {
          type: type,
          roundness: roundness
        }
      },
      rendering: {
        hideEdgesOnDrag: hideEdgesOnDrag.checked,
        hideNodesOnDrag: hideNodesOnDrag.checked
      }
    };

    network.setOptions(options);
  }

  redrawAll()

</script>

</body>
</html>