## com.esri.arcgis.datasourcesraster Interface IPolynomialXform

All Superinterfaces:
IGeodataXform, Serializable
All Known Implementing Classes:
PolynomialXform

`public interface IPolynomialXformextends IGeodataXform, Serializable`

#### 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.

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Method Summary
` void` ```applyRotation(int direction, IPoint pPivotPoint, double degree)```
Applies a rotation to the polynomial.
` void` ```applyScale(int direction, double scaleX, double scaleY)```
Applies a scale to the polynomial.
` void` ```applyShift(int direction, double shiftX, double shiftY)```
Applies a shift to the polynomial.
` void` ```checkResidualRMS(IPointCollection checkingsSurcePoints, IPointCollection checkingsTargetPoints, int direction, Object[] pResidual, double[] rms)```
Gets the residuals and RMS using checking points.
` void` ```defineFromCoefficients(Object pForwardPolyCoef, Object pReversePolyCoef, int order)```
Defines a polynomial XForm from polynomial (order: 1-3) coefficients .
` void` ```defineFromControlPoints(IPointCollection pSrcPoints, IPointCollection pTarPoints, int order)```
Defines a polynomial (order: 1-3) XForm from control points.
` Object` `getCoefficients(int direction)`
Gets the coefficients of the polynomial.
` void` ```getControlPoints(IPointCollection[] ppSrcPoints, IPointCollection[] ppTarPoints)```
Gets control points used in defining the polynomial.
` int` `getOrder()`
The polynomial order (1-3).
` Object` `getSystemResidual(int direction)`
Gets the system residuals.
` double` `getSystemRMS(int direction)`
Gets the system RMS.

Methods inherited from interface com.esri.arcgis.geodatabase.IGeodataXform
`getDomains, getSpatialReference, isIdentity, setSpatialReferenceByRef, transform, transformCellsize, transformExtent, transformPoints`

Method Detail

### defineFromControlPoints

```void defineFromControlPoints(IPointCollection pSrcPoints,
IPointCollection pTarPoints,
int order)
throws IOException,
AutomationException```
Defines a polynomial (order: 1-3) XForm from control points.

#### 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.

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`pSrcPoints` - A reference to a com.esri.arcgis.geometry.IPointCollection (in)
`pTarPoints` - A reference to a com.esri.arcgis.geometry.IPointCollection (in)
`order` - The order (in)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### defineFromCoefficients

```void defineFromCoefficients(Object pForwardPolyCoef,
Object pReversePolyCoef,
int order)
throws IOException,
AutomationException```
Defines a polynomial XForm from polynomial (order: 1-3) coefficients .

#### 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.

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`pForwardPolyCoef` - A Variant (in)
`pReversePolyCoef` - A Variant (in)
`order` - The order (in)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### getControlPoints

```void getControlPoints(IPointCollection[] ppSrcPoints,
IPointCollection[] ppTarPoints)
throws IOException,
AutomationException```
Gets control points used in defining the polynomial.

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`ppSrcPoints` - A reference to a com.esri.arcgis.geometry.IPointCollection (out: use single element array)
`ppTarPoints` - A reference to a com.esri.arcgis.geometry.IPointCollection (out: use single element array)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### getOrder

```int getOrder()
throws IOException,
AutomationException```
The polynomial order (1-3).

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The order
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### getCoefficients

```Object getCoefficients(int direction)
throws IOException,
AutomationException```
Gets the coefficients of the polynomial.

#### 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.

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`direction` - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
Returns:
A Variant
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### getSystemResidual

```Object getSystemResidual(int direction)
throws IOException,
AutomationException```
Gets the system residuals.

#### 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.

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`direction` - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
Returns:
A Variant
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### getSystemRMS

```double getSystemRMS(int direction)
throws IOException,
AutomationException```
Gets the system RMS.

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`direction` - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
Returns:
The rms
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### checkResidualRMS

```void checkResidualRMS(IPointCollection checkingsSurcePoints,
IPointCollection checkingsTargetPoints,
int direction,
Object[] pResidual,
double[] rms)
throws IOException,
AutomationException```
Gets the residuals and RMS using checking points.

#### Remarks

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

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`checkingsSurcePoints` - A reference to a com.esri.arcgis.geometry.IPointCollection (in)
`checkingsTargetPoints` - A reference to a com.esri.arcgis.geometry.IPointCollection (in)
`direction` - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
`pResidual` - A Variant (out: use single element array)
`rms` - The rms (out: use single element array)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### applyRotation

```void applyRotation(int direction,
IPoint pPivotPoint,
double degree)
throws IOException,
AutomationException```
Applies a rotation to the polynomial.

#### 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

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`direction` - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
`pPivotPoint` - A reference to a com.esri.arcgis.geometry.IPoint (in)
`degree` - The degree (in)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### applyShift

```void applyShift(int direction,
double shiftX,
double shiftY)
throws IOException,
AutomationException```
Applies a shift to the polynomial.

#### 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

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`direction` - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
`shiftX` - The shiftX (in)
`shiftY` - The shiftY (in)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.

### applyScale

```void applyScale(int direction,
double scaleX,
double scaleY)
throws IOException,
AutomationException```
Applies a scale to the polynomial.

#### 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

#### Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
`direction` - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
`scaleX` - The scaleX (in)
`scaleY` - The scaleY (in)
Throws:
`IOException` - If there are interop problems.
`AutomationException` - If the ArcObject component throws an exception.