{"action":"created","issue":{"url":"https://api.github.com/repos/vispy/vispy/issues/731","labels_url":"https://api.github.com/repos/vispy/vispy/issues/731/labels{/name}","comments_url":"https://api.github.com/repos/vispy/vispy/issues/731/comments","events_url":"https://api.github.com/repos/vispy/vispy/issues/731/events","html_url":"https://github.com/vispy/vispy/pull/731","id":58665930,"number":731,"title":"Added TubeVisual for an extruded tube about a set of points","user":{"login":"inclement","id":1265819,"avatar_url":"https://avatars.githubusercontent.com/u/1265819?v=3","gravatar_id":"","url":"https://api.github.com/users/inclement","html_url":"https://github.com/inclement","followers_url":"https://api.github.com/users/inclement/followers","following_url":"https://api.github.com/users/inclement/following{/other_user}","gists_url":"https://api.github.com/users/inclement/gists{/gist_id}","starred_url":"https://api.github.com/users/inclement/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inclement/subscriptions","organizations_url":"https://api.github.com/users/inclement/orgs","repos_url":"https://api.github.com/users/inclement/repos","events_url":"https://api.github.com/users/inclement/events{/privacy}","received_events_url":"https://api.github.com/users/inclement/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/vispy/vispy/labels/component:%20visuals","name":"component: visuals","color":"89B9F0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2015-02-23T23:13:18Z","updated_at":"2015-02-25T00:44:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/vispy/vispy/pulls/731","html_url":"https://github.com/vispy/vispy/pull/731","diff_url":"https://github.com/vispy/vispy/pull/731.diff","patch_url":"https://github.com/vispy/vispy/pull/731.patch"},"body":"This PR adds a TubeVisual, which takes a set of points and creates a tubular mesh about them.\r\n\r\nI took the algorithm (and initial implementation) from three.js. It solves most of the problems that are naturally encountered, such as making sure the mesh parameterisation rotates neatly about the curve at intersections, and spreading accumulated twisting across the curve if it is closed.\r\n\r\nThere are still some problems and bugs - in particular, the color argument doesn't work (if I pass it to the constructor, I get gloo errors), nor does the face_colors (just seems to do nothing, maybe I don't understand how to use it), and some of the maths can be further vectorised. There are also questions about the API - I have in mind that I mostly want to plot a set of points and a colour at each point, hence the colors argument, but I'm not sure what the vispy philosophy is for it. Maybe it should be more mesh focused and the color stuff go in a higher level wrapper.\r\n\r\nIt seems to basically work though, so I'm creating this PR to hope for feedback on whether it's appropriate, and any major changes that should be made.\r\n\r\nEdit: Here is a screenshot of the included example:\r\n\r\n![tube_example_reference2](https://cloud.githubusercontent.com/assets/1265819/6339944/5aff4e9e-bbb2-11e4-82b5-acafe7d04918.png)\r\n"},"comment":{"url":"https://api.github.com/repos/vispy/vispy/issues/comments/75883227","html_url":"https://github.com/vispy/vispy/pull/731#issuecomment-75883227","issue_url":"https://api.github.com/repos/vispy/vispy/issues/731","id":75883227,"user":{"login":"coveralls","id":2354108,"avatar_url":"https://avatars.githubusercontent.com/u/2354108?v=3","gravatar_id":"","url":"https://api.github.com/users/coveralls","html_url":"https://github.com/coveralls","followers_url":"https://api.github.com/users/coveralls/followers","following_url":"https://api.github.com/users/coveralls/following{/other_user}","gists_url":"https://api.github.com/users/coveralls/gists{/gist_id}","starred_url":"https://api.github.com/users/coveralls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveralls/subscriptions","organizations_url":"https://api.github.com/users/coveralls/orgs","repos_url":"https://api.github.com/users/coveralls/repos","events_url":"https://api.github.com/users/coveralls/events{/privacy}","received_events_url":"https://api.github.com/users/coveralls/received_events","type":"User","site_admin":false},"created_at":"2015-02-25T00:44:26Z","updated_at":"2015-02-25T00:44:26Z","body":"\n[![Coverage Status](https://coveralls.io/builds/1991248/badge)](https://coveralls.io/builds/1991248)\n\nCoverage decreased (-0.38%) to 78.98% when pulling **c4f26ed55b155bf8484a7f0b8462bf213889f280 on inclement:tube_visual** into **986629fed9a67a6065210e745d45582b1ea6653d on vispy:master**.\n"}}