org.deegree.cs.transformations.polynomial
Class PolynomialTransformation

java.lang.Object
  extended by org.deegree.cs.CRSIdentifiable
      extended by org.deegree.cs.transformations.Transformation
          extended by org.deegree.cs.transformations.polynomial.PolynomialTransformation
All Implemented Interfaces:
Object, TypedObjectNode, CRSResource
Direct Known Subclasses:
LeastSquareApproximation

public abstract class PolynomialTransformation
extends Transformation

PolynomialTransformation is the base class for all polynomial transformations.

Version:
$Revision: 30120 $, $Date: 2011-03-22 10:04:15 +0100 (Tue, 22 Mar 2011) $
Author:
Rutger Bezema, last edited by: $Author: aschmitz $

Constructor Summary
PolynomialTransformation(List<Double> firstParameters, List<Double> secondParameters, ICRS sourceCRS, ICRS targetCRS, CRSResource id)
           
 
Method Summary
abstract  List<javax.vecmath.Point3d> applyPolynomial(List<javax.vecmath.Point3d> srcPoints)
          The central method, which actually transforms the points by applying the implemented polynomial.
abstract  float[][] createVariables(List<javax.vecmath.Point3d> originalPoints, List<javax.vecmath.Point3d> projectedPoints, int polynomalOrder)
           
 List<javax.vecmath.Point3d> doTransform(List<javax.vecmath.Point3d> srcPts)
          Do a transformation, e.g. the incoming data will be transformed into other coordinates.
 List<Double> getFirstParams()
           
abstract  int getOrder()
           
 List<Double> getSecondParams()
           
 void inverse()
          This method flags the transformation about it's state.
 boolean isIdentity()
           
 boolean isInverseTransform()
           
 
Methods inherited from class org.deegree.cs.transformations.Transformation
areInverse, canTransform, contains, copyTransformation, createFromTo, doTransform, doTransform, equalOnCRS, equals, getImplementationName, getSourceCRS, getSourceDimension, getTargetCRS, getTargetDimension, getTransformationName, getTransformationPath, setSourceCRS
 
Methods inherited from class org.deegree.cs.CRSIdentifiable
addAreaOfUse, addName, checkForNullObject, checkForNullObject, checkForNullObject, getAreaOfUse, getAreaOfUseBBox, getAreasOfUse, getCode, getCodeAndName, getCodes, getDescription, getDescriptions, getId, getName, getNames, getOrignalCodeStrings, getVersion, getVersions, hasCode, hashCode, hasId, hasIdOrName, setDefaultAreaOfUse, setDefaultDescription, setDefaultId, setDefaultName, setDefaultVersion, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PolynomialTransformation

public PolynomialTransformation(List<Double> firstParameters,
                                List<Double> secondParameters,
                                ICRS sourceCRS,
                                ICRS targetCRS,
                                CRSResource id)
Parameters:
firstParameters - the parameters for the
secondParameters -
sourceCRS -
targetCRS -
id - an identifiable instance containing information about this transformation
Method Detail

getOrder

public abstract int getOrder()
Returns:
the order of the Polynomial used for this transformation.

createVariables

public abstract float[][] createVariables(List<javax.vecmath.Point3d> originalPoints,
                                          List<javax.vecmath.Point3d> projectedPoints,
                                          int polynomalOrder)
Parameters:
originalPoints - of the projection
projectedPoints - the 'function' values
polynomalOrder - the order of the polynomial function to use.
Returns:
the variables the polynomial used for this transformation.

applyPolynomial

public abstract List<javax.vecmath.Point3d> applyPolynomial(List<javax.vecmath.Point3d> srcPoints)
                                                     throws TransformationException
The central method, which actually transforms the points by applying the implemented polynomial.

Parameters:
srcPoints - to transform
Returns:
the transformed points.
Throws:
TransformationException - if for some reason one of the incoming points could not be transformed.

getFirstParams

public List<Double> getFirstParams()
Returns:
the Parameters for the calculation of the first coordinate.

getSecondParams

public List<Double> getSecondParams()
Returns:
the Parameters for the calculation of the second coordinate.

doTransform

public final List<javax.vecmath.Point3d> doTransform(List<javax.vecmath.Point3d> srcPts)
                                              throws TransformationException
Description copied from class: Transformation
Do a transformation, e.g. the incoming data will be transformed into other coordinates.

Specified by:
doTransform in class Transformation
Parameters:
srcPts - the points which must be transformed, expected are following values either, long_1, lat_1, height_1, long_2, lat_2, height_2. or long_1, lat_1, long_2, lat_2
Returns:
the transformed points
Throws:
TransformationException - if a transform could not be calculated.

inverse

public void inverse()
Description copied from class: Transformation
This method flags the transformation about it's state. If this transformation was inverse calling this method will result in a forward transformation and vice versa.

Overrides:
inverse in class Transformation

isIdentity

public boolean isIdentity()
Specified by:
isIdentity in class Transformation
Returns:
true if this transformation doesn't transform the incoming points. (e.g. is the id. matrix)

isInverseTransform

public boolean isInverseTransform()
Overrides:
isInverseTransform in class Transformation
Returns:
true if the doInverseTransform method should be called, false otherwise.


Copyright © 2011. All Rights Reserved.