|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IPolynomialXform
Provides access to members that control a polynomial transform.
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.
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 |
---|
void defineFromControlPoints(IPointCollection pSrcPoints, IPointCollection pTarPoints, int order) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void defineFromCoefficients(Object pForwardPolyCoef, Object pReversePolyCoef, int order) throws IOException, AutomationException
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.
pForwardPolyCoef
- A Variant (in)pReversePolyCoef
- A Variant (in)order
- The order (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void getControlPoints(IPointCollection[] ppSrcPoints, IPointCollection[] ppTarPoints) throws IOException, AutomationException
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getOrder() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.Object getCoefficients(int direction) throws IOException, AutomationException
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.
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.Object getSystemResidual(int direction) throws IOException, AutomationException
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.
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.double getSystemRMS(int direction) throws IOException, AutomationException
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void checkResidualRMS(IPointCollection checkingsSurcePoints, IPointCollection checkingsTargetPoints, int direction, Object[] pResidual, double[] rms) throws IOException, AutomationException
Get residual on a set of user specified check points. The residual returned is a variant array of double type.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void applyRotation(int direction, IPoint pPivotPoint, double degree) throws IOException, AutomationException
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
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)pPivotPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)degree
- The degree (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void applyShift(int direction, double shiftX, double shiftY) throws IOException, AutomationException
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
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)shiftX
- The shiftX (in)shiftY
- The shiftY (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void applyScale(int direction, double scaleX, double scaleY) throws IOException, AutomationException
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
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)scaleX
- The scaleX (in)scaleY
- The scaleY (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |