Class AdvancedAffineBuilder

Object
MathTransformBuilder
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 Details

  • Constructor Details

  • Method Details

    • 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
    • getMinimumPointCount

      public int getMinimumPointCount()
      Description copied from class: MathTransformBuilder
      Returns the minimum number of points required by this builder. This minimum depends on the algorithm used. For example affine transform builders require at least 3 points, while similar transform builders requires only 2 points.
      Specified by:
      getMinimumPointCount in class MathTransformBuilder
    • 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
    • computeMathTransform

      protected MathTransform computeMathTransform() throws FactoryException
      Description copied from class: MathTransformBuilder
      Calculates the math transform immediately.
      Specified by:
      computeMathTransform in class MathTransformBuilder
      Returns:
      Math transform from MappedPosition.
      Throws:
      FactoryException - if the math transform can't be created.
    • 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.