Redefine transfroms as set of partially applied functions #450
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is refined version of the previous proposal #312. I've managed to get rid of the TfmType and is_y by converting the transformations to set of applied functions whose parameters can be changed during execution.
We keep the concept of
determ
,apply_transform
from #312. but we maketfms.determ()
returning a partially applied function (almost as we return wrapper to make the printout nicer).The change is backward compatible to large extend.
This let us express the
sz_y
(the reason foris_y
existance) as follows:The coords transformation (one of reasons for
TfmType
) looks like this:The mask transformation (another reason for
TfmType
) can be expressed as follows:I've also add an inspection mechanism to transforms to make it easier to reason about random transformations, here is how it looks like