{"action":"created","issue":{"url":"https://api.github.com/repos/simeks/stk/issues/13","repository_url":"https://api.github.com/repos/simeks/stk","labels_url":"https://api.github.com/repos/simeks/stk/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/simeks/stk/issues/13/comments","events_url":"https://api.github.com/repos/simeks/stk/issues/13/events","html_url":"https://github.com/simeks/stk/pull/13","id":356326338,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEyNjE5MzEx","number":13,"title":"[WIP] Sub volume","user":{"login":"simeks","id":3015017,"node_id":"MDQ6VXNlcjMwMTUwMTc=","avatar_url":"https://avatars0.githubusercontent.com/u/3015017?v=4","gravatar_id":"","url":"https://api.github.com/users/simeks","html_url":"https://github.com/simeks","followers_url":"https://api.github.com/users/simeks/followers","following_url":"https://api.github.com/users/simeks/following{/other_user}","gists_url":"https://api.github.com/users/simeks/gists{/gist_id}","starred_url":"https://api.github.com/users/simeks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simeks/subscriptions","organizations_url":"https://api.github.com/users/simeks/orgs","repos_url":"https://api.github.com/users/simeks/repos","events_url":"https://api.github.com/users/simeks/events{/privacy}","received_events_url":"https://api.github.com/users/simeks/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-09-03T00:27:27Z","updated_at":"2018-09-03T06:31:57Z","closed_at":null,"author_association":"OWNER","pull_request":{"url":"https://api.github.com/repos/simeks/stk/pulls/13","html_url":"https://github.com/simeks/stk/pull/13","diff_url":"https://github.com/simeks/stk/pull/13.diff","patch_url":"https://github.com/simeks/stk/pull/13.patch"},"body":"I kinda like this concept of subvolumes that references the same memory. They are really neat for subdividing problems. Therefore I started implementing this for the STK Volume class. These changes affects the behaviour in a few cases so I think they'll need a proper review.\r\n\r\nFor `Volume`, the largest difference is the fact that memory within the volume is no longer guaranteed to be contiguous (see `is_contiguous()`). So any direct use of the raw pointer (`ptr()`) should probably be avoided. Regular access through `VolumeHelper<T>` should be fine though.\r\n\r\nIn short: For `Volume`, a subvolume keeps a reference to the backing data and a pointer to the origin (0,0,0) in its region. The size kept in the subvolume is the size of the subregion. For data access the strides in all axes are kept for the backing data.\r\n\r\nI also wanted this to play nice with `GpuVolume` so the same tools for creating subvolumes are available there as well. This should provide cool support for uploading/downloading partial volumes for instance. The regular use of `GpuVolume` should not be affected that much since pitched pointers basically work this way already (Subvolumes with textures are not supported and probably never will be).\r\n\r\nSee test cases `volume_region` and `gpu_volume_region` for use cases. I have probably missed a lot of cases in the tests so I'll be extending them shortly."},"comment":{"url":"https://api.github.com/repos/simeks/stk/issues/comments/418013636","html_url":"https://github.com/simeks/stk/pull/13#issuecomment-418013636","issue_url":"https://api.github.com/repos/simeks/stk/issues/13","id":418013636,"node_id":"MDEyOklzc3VlQ29tbWVudDQxODAxMzYzNg==","user":{"login":"m-pilia","id":8300317,"node_id":"MDQ6VXNlcjgzMDAzMTc=","avatar_url":"https://avatars1.githubusercontent.com/u/8300317?v=4","gravatar_id":"","url":"https://api.github.com/users/m-pilia","html_url":"https://github.com/m-pilia","followers_url":"https://api.github.com/users/m-pilia/followers","following_url":"https://api.github.com/users/m-pilia/following{/other_user}","gists_url":"https://api.github.com/users/m-pilia/gists{/gist_id}","starred_url":"https://api.github.com/users/m-pilia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m-pilia/subscriptions","organizations_url":"https://api.github.com/users/m-pilia/orgs","repos_url":"https://api.github.com/users/m-pilia/repos","events_url":"https://api.github.com/users/m-pilia/events{/privacy}","received_events_url":"https://api.github.com/users/m-pilia/received_events","type":"User","site_admin":false},"created_at":"2018-09-03T06:31:57Z","updated_at":"2018-09-03T06:31:57Z","author_association":"COLLABORATOR","body":"Cool, if I get it right this should be roughly equivalent to `itk::ImageRegionIterator`. This is going to be a major feature, very interesting."}}
{"actor":{"display_login":"m-pilia"}}