Class AdvancedAffineBuilder


  • public class AdvancedAffineBuilder
    extends MathTransformBuilder
    Builder for affine transformation with possibility to set several constrains for affine parameters that will be respected during calculation. This is convenient for example to use when you want affine transformation with skew parameter equal to zero. Development carried out thanks to R&D grant DC08P02OUK006 - Old Maps Online (www.oldmapsonline.org) from Ministry of Culture of the Czech Republic
    Author:
    jezekjan
    • Field Detail

      • SX

        public static final String SX
        mark for key to specify sx - scale in x constrain
        See Also:
        Constant Field Values
      • SY

        public static final String SY
        mark for key to specify sy - scale in y constrain
        See Also:
        Constant Field Values
      • SXY

        public static final String SXY
        mark for key to specify sxy - skew constrain
        See Also:
        Constant Field Values
      • PHIX

        public static final String PHIX
        mark for key to specify phix - rotation constrain
        See Also:
        Constant Field Values
      • PHIY

        public static final String PHIY
        mark for key to specify phix - rotation constrain
        See Also:
        Constant Field Values
      • TX

        public static final String TX
        mark for key to specify tx - translation in x constrain
        See Also:
        Constant Field Values
      • TY

        public static final String TY
        mark for key to specify ty - translation in y constrain
        See Also:
        Constant Field Values
    • Method Detail

      • setConstrain

        public void setConstrain​(String param,
                                 double value)
        Sets constrain that param is equal to value. Be aware that the calculation may diverge in the case you set some values that are not 'close' to approximate values. I the case of divergence you can set approximate values using proper constructor
        Parameters:
        param - parameter name - set one of AdvancedAffineBuilder static variables.
        value - required value
      • clearConstrains

        public void clearConstrains()
        Clears all constrains
      • getA

        protected GeneralMatrix getA()
        Generates A matrix (Matrix of derivation of affine equation). Each column is derivation by each transformation parameter (sx, sy, sxy, phi, tx,ty). The rows are derivations of fx and fy.
        Returns:
        A matrix
      • getL

        protected GeneralMatrix getL()
        Fill L matrix. This matrix contains differences between expected value and value calculated from affine parameters
        Returns:
        l matrix
      • getB

        protected GeneralMatrix getB()
        Fill matrix of derivations of constrains by affine parameters.
        Returns:
        B matrix
      • getU

        protected GeneralMatrix getU()
        Fill matrix of constrain values (e.g. for constrain skew = 0 the value is 0)
        Returns:
        U matrix
      • getProjectiveMatrix

        protected GeneralMatrix getProjectiveMatrix()
                                             throws FactoryException
        Calculates coefficients of Projective transformation matrix from geometric parameters.
        Returns:
        Projective Matrix
        Throws:
        FactoryException
      • getMaxIterationDifference

        public double getMaxIterationDifference()
        Returns difference that is required between steps in iteration
        Returns:
        max difference that is required for iteration steps
      • setMaxIterationDifference

        public void setMaxIterationDifference​(double dif)
        Sets difference that is required between steps in iteration.
      • getNumberOfIterationSteps

        public int getNumberOfIterationSteps()
        Return max number of iteration steps. If the difference between calculated values in each iteration steps is still bigger than required then Exception is thrown. This is not the number that was really needed for iteration.
        Returns:
        max number of iteration steps.
      • setNumberOfIterationSteps

        public void setNumberOfIterationSteps​(int steps)
        Sets max number of iteration steps. If the difference between calculated values in each iteration steps is still bigger than required than Exception is thrown.
        Parameters:
        steps - max number of iterations.