Skip to content
  • Ell's avatar
    app: in GimpTransformGridTool, allow linking forward/backward transforms · 39e23267
    Ell authored
    Add a GimpTransformGridTool::matrix_to_info() virtual function,
    which should extract the tool-specific transformation parameters
    given a transformation matrix, and the old parameter set (which is
    needed in some tools, to derive the parameters that aren't encoded
    in the matrix, such as the pivot point).  The transformation matrix
    can be any combination of matrices calculated by the tool, and
    their inverses.  Subclasses should only implement this function if
    every such matrix can be mapped back to transformation parameters.
    This is currently the case for all the transform-grid tools, except
    for the shear tool (since it only supports shearing along one of
    the horizontal or the vertical directions, however, the combined
    matrix may require shearing in both directions).
    
    When a transform-grid tool implements this function, show a chain-
    button between the two transform-direction radio-buttons in the
    tool options.  When the chain-button is linked, whenever the
    transform corresponding to the active direction is modified, adjust
    the transform corresponding to the non-active direction such that
    the overall transform remains the same.
    
    One notable workflow that this enables is transforming a layer
    while adjusting a different area than its boundary, by first
    defining the area while the transform-directions are linked, and
    then transforming the area while the transform-directions are
    unlinked.
    39e23267