IPolynomialXform Interface

Provides access to members that control a polynomial transform.

Members

Name Description
Method ApplyRotation Applies a rotation to the polynomial.
Method ApplyScale Applies a scale to the polynomial.
Method ApplyShift Applies a shift to the polynomial.
Method CheckResidualRMS Gets the residuals and RMS using checking points.
Method DefineFromCoefficients Defines a polynomial XForm from polynomial (order: 0-3) coefficients .
Method DefineFromControlPoints Defines a polynomial (order: 0-3) XForm from control points.
Read-only property Domains The domains in output space.
Method GetCoefficients Gets the coefficients of the polynomial.
Method GetControlPoints Gets control points used in defining the polynomial.
Method GetSystemResidual Gets the system residuals.
Method GetSystemRMS Gets the system RMS.
Read-only property IsIdentity Indicates if this geodata transform is an identity transform.
Read-only property Order The polynomial order (0-3).
Read/write property SpatialReference The output spatial reference after applying this transform.
Method Transform Transforms a set of points in a given direction.
Method TransformCellsize Transforms a cellsize in a given direction.
Method TransformExtent Transforms an extent in a given direction.
Method TransformPoints Transforms a point collection in a given direction

IPolynomialXform.ApplyRotation Method

Applies a rotation to the polynomial.

Public Sub ApplyRotation ( _
    ByVal direction As esriTransformDirection, _
    ByVal pPivotPoint As IPoint, _
    ByVal degree As Double _
)
public void ApplyRotation (
    esriTransformDirection direction,
    IPoint pPivotPoint,
    double degree
);

Remarks

ApplyRotation method append an xform to the existing PolynomialXform. To define a rotation transformation for work with raster data using this method, you must define both forward and inverse transformation.

For example, to define a rotation of 45 degree unclockwise, you need to call

pPolynomialXform.ApplyRotate TransformationForward, 45

pPolynomialXform.ApplyRotate TransformationReverse, -45

IPolynomialXform.ApplyScale Method

Applies a scale to the polynomial.

Public Sub ApplyScale ( _
    ByVal direction As esriTransformDirection, _
    ByVal scaleX As Double, _
    ByVal scaleY As Double _
)
public void ApplyScale (
    esriTransformDirection direction,
    double scaleX,
    double scaleY
);

Remarks

ApplyScale method appends an xform to the existing PolynomialXform. To define an scale transformation to work with raster data using this method, you must define both forward and inverse transformations.

For example, to define a scale transformation, you need to call

pPolynomialXform.ApplyScale TransformationForward, 10

pPolynomialXform.ApplyScale TransformationReverse, 1/10

IPolynomialXform.ApplyShift Method

Applies a shift to the polynomial.

Public Sub ApplyShift ( _
    ByVal direction As esriTransformDirection, _
    ByVal shiftX As Double, _
    ByVal shiftY As Double _
)
public void ApplyShift (
    esriTransformDirection direction,
    double shiftX,
    double shiftY
);

Remarks

ApplyShift method append an xform to the existing PolynomialXform. To define a shift transformation to work with raster data using this method, you must define both forward and inverse transformations.

For example, to define a shift transformation, you need to call

pPolynomialXform.ApplyShift TransformationForward, 10

pPolynomialXform.ApplyShift TransformationReverse, -10

IPolynomialXform.CheckResidualRMS Method

Gets the residuals and RMS using checking points.

Public Sub CheckResidualRMS ( _
    ByVal CheckingsSurcePoints As IPointCollection, _
    ByVal CheckingsTargetPoints As IPointCollection, _
    ByVal direction As esriTransformDirection, _
    ByRef pResidual As Object, _
    ByRef rms As Double _
)
public void CheckResidualRMS (
    IPointCollection CheckingsSurcePoints,
    IPointCollection CheckingsTargetPoints,
    esriTransformDirection direction,
    ref object pResidual,
    ref double rms
);

Remarks

Get residual on a set of user specified check points. The residual returned is a variant array of double type.

IPolynomialXform.DefineFromCoefficients Method

Defines a polynomial XForm from polynomial (order: 0-3) coefficients .

Public Sub DefineFromCoefficients ( _
    ByRef pForwardPolyCoef As Object, _
    ByRef pReversePolyCoef As Object, _
    ByVal Order As Integer _
)
public void DefineFromCoefficients (
    ref object pForwardPolyCoef,
    ref object pReversePolyCoef,
    ref int Order
);

Remarks

The polynomial coefficients are a variant array of nx2 elements of double type, where n=3 for the first order, 6 for the second order and 10 for the third order.

To define a PolynomialXform to work with raster dataset, coefficients for both forward case and reverse case must be set.

You can define a PolynomialXform that performs one direction transformation, for transforming other type of data, such as forward transformation, pass Null to reverse coefficient argument.

IPolynomialXform.DefineFromControlPoints Method

Defines a polynomial (order: 0-3) XForm from control points.

Public Sub DefineFromControlPoints ( _
    ByVal pSrcPoints As IPointCollection, _
    ByVal pTarPoints As IPointCollection, _
    ByVal Order As Integer _
)
public void DefineFromControlPoints (
    IPointCollection pSrcPoints,
    IPointCollection pTarPoints,
    int Order
);

Remarks

The polynomial order can be 1,2,3 and the number of the non-correlated control points required must be at least 3, 6, and 10 respectively.

IPolynomialXform.GetCoefficients Method

Gets the coefficients of the polynomial.

Public Function GetCoefficients ( _
    ByVal direction As esriTransformDirection _
) As Object
public object GetCoefficients (
    esriTransformDirection direction
);

Remarks

The polynomial coefficients are in a variant array of nx2 elements of double type, where n=3 for the first order, 6 for the second order and 10 for the third order.

IPolynomialXform.GetControlPoints Method

Gets control points used in defining the polynomial.

Public Sub GetControlPoints ( _
    ByRef ppSrcPoints As IPointCollection, _
    ByRef ppTarPoints As IPointCollection _
)
public void GetControlPoints (
    ref IPointCollection ppSrcPoints,
    ref IPointCollection ppTarPoints
);

IPolynomialXform.GetSystemResidual Method

Gets the system residuals.

Public Function GetSystemResidual ( _
    ByVal direction As esriTransformDirection _
) As Object
public object GetSystemResidual (
    esriTransformDirection direction
);

Remarks

The residual returned is variant array of double type, the size of the array is the number of control points used in creating the PolynomialXform.

IPolynomialXform.GetSystemRMS Method

Gets the system RMS.

Public Function GetSystemRMS ( _
    ByVal direction As esriTransformDirection _
) As Double
public double GetSystemRMS (
    esriTransformDirection direction
);

IPolynomialXform.Order Property

The polynomial order (0-3).

Public ReadOnly Property Order As Integer
public int Order {get;}

Inherited Interfaces

Interfaces Description
IGeodataXform Provides access to members that control geodata transformation.

Classes that implement IPolynomialXform

Classes Description
PolynomialXform A polynomial transform class.

Remarks

The IPolynomialXform interface provides methods and properties used to create the PolynomialXform object and perform error analysis of the polynomial transformation.

You can create a PolynomialXform in two ways: One is to use DefineFromControlPoints with two sets of control points, one being source and one being target, to construct a polynomial. The other way is to set the polynomial coefficients directly using DefineFromCoefficients if the polynomial coefficients are known.

A polynomial transformation is an approximate transformation and the IPolynomialXform interface provides two ways to calculate the system residuals and RMS. One is based on the control points using GetSystemResidual and GetSystemRMS methods; and the other is based on a set of check points using CheckResidualRMS method.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.