{"action":"created","issue":{"url":"https://api.github.com/repos/vispy/vispy/issues/612","labels_url":"https://api.github.com/repos/vispy/vispy/issues/612/labels{/name}","comments_url":"https://api.github.com/repos/vispy/vispy/issues/612/comments","events_url":"https://api.github.com/repos/vispy/vispy/issues/612/events","html_url":"https://github.com/vispy/vispy/pull/612","id":48158808,"number":612,"title":"WIP: Volume rendering","user":{"login":"almarklein","id":3015475,"avatar_url":"https://avatars.githubusercontent.com/u/3015475?v=3","gravatar_id":"","url":"https://api.github.com/users/almarklein","html_url":"https://github.com/almarklein","followers_url":"https://api.github.com/users/almarklein/followers","following_url":"https://api.github.com/users/almarklein/following{/other_user}","gists_url":"https://api.github.com/users/almarklein/gists{/gist_id}","starred_url":"https://api.github.com/users/almarklein/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/almarklein/subscriptions","organizations_url":"https://api.github.com/users/almarklein/orgs","repos_url":"https://api.github.com/users/almarklein/repos","events_url":"https://api.github.com/users/almarklein/events{/privacy}","received_events_url":"https://api.github.com/users/almarklein/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/vispy/vispy/labels/component:%20visuals","name":"component: visuals","color":"89B9F0"},{"url":"https://api.github.com/repos/vispy/vispy/labels/type:%20feature","name":"type: feature","color":"1DA81D"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":70,"created_at":"2014-11-08T07:23:46Z","updated_at":"2015-02-11T10:44:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/vispy/vispy/pulls/612","html_url":"https://github.com/vispy/vispy/pull/612","diff_url":"https://github.com/vispy/vispy/pull/612.diff","patch_url":"https://github.com/vispy/vispy/pull/612.patch"},"body":"This PR implements volume rendering. It's basically a port of the technique that I use in Visvis.\r\n\r\n* New Volume visual with two rendering styles (iso and mip). \r\n* Volume example in examples/scene/volume.py Try it, and use the keys to switch cameras etc.\r\n* Refactored cameras a bit in general\r\n* Refactored TurnTableCamera: no more mode and distance. You can just change the fov while getting the same zoom level. Setting fov to 0 means orthographic. Zooming is done by moving camera backward.\r\n* New FlyCamera to fly around your data. \r\n\r\nThis is about ready. There are more things to do, but that can be picked up in another PR. (I added todo items for this in volume.py)\r\n\r\nI wish to do more with the camera's, but we should probably discuss this first. Will make a new issue for this.\r\n\r\ntodo:\r\n\r\n* [x] avoid warning when swithching render styles\r\n* [x] camera's\r\n\r\n\r\n\r\n\r\n![volume](https://cloud.githubusercontent.com/assets/1942359/5230818/8495b5ec-772c-11e4-8560-d2ac7f393b22.png)\r\n"},"comment":{"url":"https://api.github.com/repos/vispy/vispy/issues/comments/73862423","html_url":"https://github.com/vispy/vispy/pull/612#issuecomment-73862423","issue_url":"https://api.github.com/repos/vispy/vispy/issues/612","id":73862423,"user":{"login":"campagnola","id":940580,"avatar_url":"https://avatars.githubusercontent.com/u/940580?v=3","gravatar_id":"","url":"https://api.github.com/users/campagnola","html_url":"https://github.com/campagnola","followers_url":"https://api.github.com/users/campagnola/followers","following_url":"https://api.github.com/users/campagnola/following{/other_user}","gists_url":"https://api.github.com/users/campagnola/gists{/gist_id}","starred_url":"https://api.github.com/users/campagnola/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/campagnola/subscriptions","organizations_url":"https://api.github.com/users/campagnola/orgs","repos_url":"https://api.github.com/users/campagnola/repos","events_url":"https://api.github.com/users/campagnola/events{/privacy}","received_events_url":"https://api.github.com/users/campagnola/received_events","type":"User","site_admin":false},"created_at":"2015-02-11T10:44:38Z","updated_at":"2015-02-11T10:44:38Z","body":"Sorry to drag this on.  `scale_factor` is not working for me. From #647:\r\n\r\n> scale_factor seems to have two uses: setting the initial zoom level and\r\nzooming interactively. For the first use, the user will probably prefer\r\nsomething like camera.view(visual) or camera.set_range(limits). For the \r\nsecond use, I prefer something like camera.zoom(factor), which uses a\r\nrelative scale factor rather than an arbitrary absolute factor\r\n\r\nI am concerned that enforcing the use of `scale_factor` will make the panzoom camera more difficult to work with (there is a similar class in pyqtgraph that took many, many iterations to get working correctly so I am particularly sensitive to this). I also think there is not a good argument for disallowing specification of turntable distance. \r\n\r\nPerhaps we need to back up and specify some real use cases and decide on the API before making further changes here."}}