{"url":"https://api.github.com/gists/4333610","forks_url":"https://api.github.com/gists/4333610/forks","commits_url":"https://api.github.com/gists/4333610/commits","id":"4333610","node_id":"MDQ6R2lzdDQzMzM2MTA=","git_pull_url":"https://gist.github.com/4333610.git","git_push_url":"https://gist.github.com/4333610.git","html_url":"https://gist.github.com/mbostock/4333610","files":{"finite-state-stream.js":{"filename":"finite-state-stream.js","type":"text/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/mbostock/4333610/raw/6536df5649d685073a1974998983028d6be4702f/finite-state-stream.js","size":780,"truncated":false,"content":"function d3_geo_pathContext(context) {\n  var pointRadius = 4.5,\n      state = 0;\n\n  // state bit 0: not-first point?\n  // state bit 1: inside line?\n  // state bit 2: inside polygon?\n\n  function point(x, y) {\n    if (state) {\n      if (state & 1) {\n        context.lineTo(x, y);\n      } else {\n        context.moveTo(x, y);\n        state |= 1;\n      }\n    } else {\n      context.moveTo(x, y);\n      context.arc(x, y, pointRadius, 0, 2 * π);\n    }\n  }\n\n  return {\n    point: point,\n    lineStart: function() { state |= 2; },\n    lineEnd: function() { state &= ~3; if (state) context.closePath(); },\n    polygonStart: function() { state |= 4; },\n    polygonEnd: function() { state &= ~4; },\n    pointRadius: function(_) { pointRadius = _; return this; },\n    result: d3_noop\n  };\n}\n","encoding":"utf-8"}},"public":true,"created_at":"2012-12-19T01:12:42Z","updated_at":"2015-12-09T21:48:58Z","description":"Finite State Stream","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/4333610/comments","owner":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"forks":[],"history":[{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"e5ede5ab7661409eebf1a6035fed2e08182a5c64","committed_at":"2012-12-19T01:12:42Z","change_status":{"total":32,"additions":32,"deletions":0},"url":"https://api.github.com/gists/4333610/e5ede5ab7661409eebf1a6035fed2e08182a5c64"}],"truncated":false}