{"action":"created","issue":{"url":"https://api.github.com/repos/imglib/imglib2/issues/200","repository_url":"https://api.github.com/repos/imglib/imglib2","labels_url":"https://api.github.com/repos/imglib/imglib2/issues/200/labels{/name}","comments_url":"https://api.github.com/repos/imglib/imglib2/issues/200/comments","events_url":"https://api.github.com/repos/imglib/imglib2/issues/200/events","html_url":"https://github.com/imglib/imglib2/pull/200","id":302039977,"number":200,"title":" Integer ShearTransforms with configurable shearing factor","user":{"login":"keithschulze","id":503034,"avatar_url":"https://avatars2.githubusercontent.com/u/503034?v=4","gravatar_id":"","url":"https://api.github.com/users/keithschulze","html_url":"https://github.com/keithschulze","followers_url":"https://api.github.com/users/keithschulze/followers","following_url":"https://api.github.com/users/keithschulze/following{/other_user}","gists_url":"https://api.github.com/users/keithschulze/gists{/gist_id}","starred_url":"https://api.github.com/users/keithschulze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keithschulze/subscriptions","organizations_url":"https://api.github.com/users/keithschulze/orgs","repos_url":"https://api.github.com/users/keithschulze/repos","events_url":"https://api.github.com/users/keithschulze/events{/privacy}","received_events_url":"https://api.github.com/users/keithschulze/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-03-03T23:02:19Z","updated_at":"2018-03-12T14:55:53Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/imglib/imglib2/pulls/200","html_url":"https://github.com/imglib/imglib2/pull/200","diff_url":"https://github.com/imglib/imglib2/pull/200.diff","patch_url":"https://github.com/imglib/imglib2/pull/200.patch"},"body":"Currently, ShearTransform only allows n-dimensional image to be sheared along the shear dimension, with respect to the reference dimension, by a factor of 1. This PR is a refactor of the ShearTransform to allow transform with a `shearFactor` other than 1.\r\n\r\n```java\r\n// forward transform\r\nc[ shearDimension ] = c[ shearDimension ] + c[ referenceDimension ] * shearFactor\r\n\r\n// backward/inverse transform\r\nc[ shearDimension ] = c[ shearDimension ] - c[ referenceDimension ] * shearFactor \r\n// or c[ shearDimension ] = c[ shearDimension ] + c[ referenceDimension ] * -shearFactor\r\n\r\n```\r\n\r\nTries to avoid any breaking changes to the existing API, consisting of classes for forward ShearTransform, backward InverseShearTransform and AbstactShearTransform with common functionality; however, introducing a shearFactor simplifies implementation, since the inverse transformation simply requires the inverse of the `shearFactor`. Hence, basically all functionality is now in the AbstractShearTransform class, while ShearTransform and InverseShearTransform just provide basic constructors that ensure the `shearFactor` is set correctly. Perhaps it might be worth deprecating the InverseShearTransform and AbstractShearTransform classes (and then removing them in the next major version), and just moving all functionality to ShearTransform?\r\n\r\nViews have also been updated to include static methods that allow a shearFactor to be specified."},"comment":{"url":"https://api.github.com/repos/imglib/imglib2/issues/comments/372338487","html_url":"https://github.com/imglib/imglib2/pull/200#issuecomment-372338487","issue_url":"https://api.github.com/repos/imglib/imglib2/issues/200","id":372338487,"user":{"login":"hanslovsky","id":1086317,"avatar_url":"https://avatars0.githubusercontent.com/u/1086317?v=4","gravatar_id":"","url":"https://api.github.com/users/hanslovsky","html_url":"https://github.com/hanslovsky","followers_url":"https://api.github.com/users/hanslovsky/followers","following_url":"https://api.github.com/users/hanslovsky/following{/other_user}","gists_url":"https://api.github.com/users/hanslovsky/gists{/gist_id}","starred_url":"https://api.github.com/users/hanslovsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hanslovsky/subscriptions","organizations_url":"https://api.github.com/users/hanslovsky/orgs","repos_url":"https://api.github.com/users/hanslovsky/repos","events_url":"https://api.github.com/users/hanslovsky/events{/privacy}","received_events_url":"https://api.github.com/users/hanslovsky/received_events","type":"User","site_admin":false},"created_at":"2018-03-12T14:55:53Z","updated_at":"2018-03-12T14:55:53Z","author_association":"CONTRIBUTOR","body":"I am in favor of deprecating `InverseShearTransform` and `AbstractShearTransform`.\r\nAlso very interested in the benchmark results."}}
{"actor":{"display_login":"hanslovsky"}}