{"action":"created","issue":{"url":"https://api.github.com/repos/tangrams/tangram/issues/100","labels_url":"https://api.github.com/repos/tangrams/tangram/issues/100/labels{/name}","comments_url":"https://api.github.com/repos/tangrams/tangram/issues/100/comments","events_url":"https://api.github.com/repos/tangrams/tangram/issues/100/events","html_url":"https://github.com/tangrams/tangram/pull/100","id":58818197,"number":100,"title":"Generalize data sources + add non-tiled sources","user":{"login":"bcamper","id":16733,"avatar_url":"https://avatars.githubusercontent.com/u/16733?v=3","gravatar_id":"","url":"https://api.github.com/users/bcamper","html_url":"https://github.com/bcamper","followers_url":"https://api.github.com/users/bcamper/followers","following_url":"https://api.github.com/users/bcamper/following{/other_user}","gists_url":"https://api.github.com/users/bcamper/gists{/gist_id}","starred_url":"https://api.github.com/users/bcamper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcamper/subscriptions","organizations_url":"https://api.github.com/users/bcamper/orgs","repos_url":"https://api.github.com/users/bcamper/repos","events_url":"https://api.github.com/users/bcamper/events{/privacy}","received_events_url":"https://api.github.com/users/bcamper/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-02-24T22:46:31Z","updated_at":"2015-02-24T22:48:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/tangrams/tangram/pulls/100","html_url":"https://github.com/tangrams/tangram/pull/100","diff_url":"https://github.com/tangrams/tangram/pull/100.diff","patch_url":"https://github.com/tangrams/tangram/pull/100.patch"},"body":"Note: WIP, not ready to merge yet.\r\n\r\nThis generalizes data sources, no longer assuming that all sources are tiled. Everything inherits from a `DataSource` class, but tiled sources have an additional `tiled` flag set. This basically splits sources into two types: `tiled` sources, and what I called `object` sources.\r\n\r\nCurrently, `object` sources are assumed to be used for things like single complex objects or overlays, which are generally expected to be loaded once and then persistently displayed. This is the most naive approach, where object sources will *always* be rendered once loaded. It would however make sense to add some visibility/scene graph support to only render them when they are in the current view. \r\n\r\nBecause object sources represent entire objects, there's no need for each worker thread to load every source (this is different than with tiled sources, where each worker owns a different set of tiles, but those tiles need to be loaded from all sources on each worker). The simple approach I came up with (for now) was to simply evenly distribute the object sources across the workers, e.g. if a scene has 4 object sources and 2 workers, each worker would be assigned 2 of the sources."},"comment":{"url":"https://api.github.com/repos/tangrams/tangram/issues/comments/75864188","html_url":"https://github.com/tangrams/tangram/pull/100#issuecomment-75864188","issue_url":"https://api.github.com/repos/tangrams/tangram/issues/100","id":75864188,"user":{"login":"bcamper","id":16733,"avatar_url":"https://avatars.githubusercontent.com/u/16733?v=3","gravatar_id":"","url":"https://api.github.com/users/bcamper","html_url":"https://github.com/bcamper","followers_url":"https://api.github.com/users/bcamper/followers","following_url":"https://api.github.com/users/bcamper/following{/other_user}","gists_url":"https://api.github.com/users/bcamper/gists{/gist_id}","starred_url":"https://api.github.com/users/bcamper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcamper/subscriptions","organizations_url":"https://api.github.com/users/bcamper/orgs","repos_url":"https://api.github.com/users/bcamper/repos","events_url":"https://api.github.com/users/bcamper/events{/privacy}","received_events_url":"https://api.github.com/users/bcamper/received_events","type":"User","site_admin":false},"created_at":"2015-02-24T22:48:33Z","updated_at":"2015-02-24T22:48:33Z","body":"Note: this does the initial reorg of data sources, introduces the concept of object sources, and loads those sources in the worker.\r\n\r\nHowever, as of yet, no styling of geometry construction is being done for object sources. (For one thing, need to decide how we want to associate styles with object sources, and since they will often be added programmatically / on the fly, an appropriate JS API for them.)"}}