com.esri.arcgis.geometry
Interface IAffineTransformation2D3GEN

All Superinterfaces:
java.io.Serializable
All Known Implementing Classes:
AffineTransformation2D, IAffineTransformation2D3GENProxy

public interface IAffineTransformation2D3GEN
extends java.io.Serializable

Provides access to members that define and manipulate affine transformations. IAffineTransformation2D3GEN is generic version of IAffineTransformation2D3

Product Availability

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


Method Summary
 void defineConformalFromControlPoints(IPoint[] fromPoints, IPoint[] toPoints)
          Defines the best conformal affine transformation between two sets of points.
 void defineFromControlPoints(IPoint[] fromPoints, IPoint[] toPoints)
          Defines the best affine transformation between two sets of points.
 void defineFromEnvelopes(IEnvelope from, IEnvelope to)
          Defines a transformation that maps a point relative to one envelope to a similar position relative to another envelope.
 void defineFromEnvelopesEx(IEnvelope from, IEnvelope to, IEnvelope outFrom, boolean assumeFalseOrigin, boolean keepAspect, boolean flipIt)
          Defines a transformation that maps a point relative to one envelope to a similar position relative to another envelope.
 void defineReflection(ILine l)
          Defines a transformation that can perform a reflection about the line l.
 void getControlPointError(int i, double[] fromError, double[] toError)
          Returns the errors involved in moving control point i from the 'from' to 'to' system.
 IPoint getMoveOrigin()
          The origin of accumulated transformations used when projecting an affine transformation to a different spatial reference system.
 void getRMSError(double[] fromError, double[] toError)
          RMS (Root Mean Square) error expressed relative to the 'from' and 'to' points defining the transformation.
 double getRotation()
          The rotation angle.
 ISpatialReference getSpatialReference()
          The spatial reference in which this transformation is meaningful.
 double getXScale()
          The scale along the X axis.
 double getXTranslation()
          The translation along the X axis.
 double getYScale()
          The scale along the Y axis.
 double getYTranslation()
          The translation along the Y axis.
 boolean isReflective()
          Indicates if the transformation contains a reflection (determinant is negative).
 void move(double dx, double dy)
          Incorporates a translation factor into the transformation.
 void moveVector(ILine movementVector)
          Performs an X and Y translation defined by a 2D vector.
 void postMultiply(IAffineTransformation2D3GEN postTransform)
          Post-multiplies the transformation by another transformation.
 void preMultiply(IAffineTransformation2D3GEN preTransform)
          Pre-multiplies the transformation by another transformation.
 void project(ISpatialReference newSpatialReference)
          Moves this transformation into another spatial reference.
 void queryLinearCoefficients(int direction, double[][] params)
          Returns the linear coefficients which define the two dimensional affine transformation.
 void reset()
          Resets the tranformation.
 void rotate(double da)
          Incorporates a rotation (in radians) into the transformation.
 void scale(double dx, double dy)
          Incorporates scale factors into the transformation.
 void setLinearCoefficients(int direction, double[] params)
          Sets the linear coefficients which define the two dimensional affine transformation.
 void setMoveOrigin(IPoint origin)
          The origin of accumulated transformations used when projecting an affine transformation to a different spatial reference system.
 void setSpatialReferenceByRef(ISpatialReference sR)
          The spatial reference in which this transformation is meaningful.
 void transformMeasuresFF(int direction, double[][] inMeasures, double[][] outMeasures)
          Transforms floating point measures to floating point measures (or do the inverse).
 void transformMeasuresFI(int direction, double[][] inMeasures, int[][] outMeasures)
          Transforms floating point measures to integer measures (or do the inverse).
 void transformMeasuresIF(int direction, int[][] inMeasures, double[][] outMeasures)
          Transforms integer measures to floating point measures (or do the inverse).
 void transformMeasuresII(int direction, int[][] inMeasures, int[][] outMeasures)
          Transforms integer measures to integer measures (or do the inverse).
 void transformPointsFF(int direction, double[][] inPoints, double[][] outPoints)
          Transforms floating point points to floating point points (or do the inverse).
 void transformPointsFI(int direction, double[][] inPoints, int[][] outPoints)
          Transforms floating point points to integer points (or do the inverse).
 void transformPointsIF(int direction, int[][] inPoints, double[][] outPoints)
          Transforms integer points to floating point points (or do the inverse).
 void transformPointsII(int direction, int[][] inPoints, int[][] outPoints)
          Transforms integer points to integer points (or do the inverse).
 

Method Detail

transformMeasuresFF

public void transformMeasuresFF(int direction,
                                double[][] inMeasures,
                                double[][] outMeasures)
                         throws java.io.IOException,
                                AutomationException
Transforms floating point measures to floating point measures (or do the inverse).

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
inMeasures - The inMeasures (in/out: use single element array)
outMeasures - The outMeasures (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

transformMeasuresFI

public void transformMeasuresFI(int direction,
                                double[][] inMeasures,
                                int[][] outMeasures)
                         throws java.io.IOException,
                                AutomationException
Transforms floating point measures to integer measures (or do the inverse).

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
inMeasures - The inMeasures (in/out: use single element array)
outMeasures - The outMeasures (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

transformMeasuresIF

public void transformMeasuresIF(int direction,
                                int[][] inMeasures,
                                double[][] outMeasures)
                         throws java.io.IOException,
                                AutomationException
Transforms integer measures to floating point measures (or do the inverse).

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
inMeasures - The inMeasures (in/out: use single element array)
outMeasures - The outMeasures (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

transformMeasuresII

public void transformMeasuresII(int direction,
                                int[][] inMeasures,
                                int[][] outMeasures)
                         throws java.io.IOException,
                                AutomationException
Transforms integer measures to integer measures (or do the inverse).

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
inMeasures - The inMeasures (in/out: use single element array)
outMeasures - The outMeasures (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

transformPointsFF

public void transformPointsFF(int direction,
                              double[][] inPoints,
                              double[][] outPoints)
                       throws java.io.IOException,
                              AutomationException
Transforms floating point points to floating point points (or do the inverse).

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
inPoints - The inPoints (in/out: use single element array)
outPoints - The outPoints (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

transformPointsFI

public void transformPointsFI(int direction,
                              double[][] inPoints,
                              int[][] outPoints)
                       throws java.io.IOException,
                              AutomationException
Transforms floating point points to integer points (or do the inverse).

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
inPoints - The inPoints (in/out: use single element array)
outPoints - The outPoints (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

transformPointsIF

public void transformPointsIF(int direction,
                              int[][] inPoints,
                              double[][] outPoints)
                       throws java.io.IOException,
                              AutomationException
Transforms integer points to floating point points (or do the inverse).

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
inPoints - The inPoints (in/out: use single element array)
outPoints - The outPoints (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

transformPointsII

public void transformPointsII(int direction,
                              int[][] inPoints,
                              int[][] outPoints)
                       throws java.io.IOException,
                              AutomationException
Transforms integer points to integer points (or do the inverse).

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
inPoints - The inPoints (in/out: use single element array)
outPoints - The outPoints (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSpatialReferenceByRef

public void setSpatialReferenceByRef(ISpatialReference sR)
                              throws java.io.IOException,
                                     AutomationException
The spatial reference in which this transformation is meaningful.

Parameters:
sR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSpatialReference

public ISpatialReference getSpatialReference()
                                      throws java.io.IOException,
                                             AutomationException
The spatial reference in which this transformation is meaningful.

Returns:
A reference to a com.esri.arcgis.geometry.ISpatialReference
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

reset

public void reset()
           throws java.io.IOException,
                  AutomationException
Resets the tranformation.

Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

defineFromControlPoints

public void defineFromControlPoints(IPoint[] fromPoints,
                                    IPoint[] toPoints)
                             throws java.io.IOException,
                                    AutomationException
Defines the best affine transformation between two sets of points. Can be used to register paper maps on a digitizer.

Parameters:
fromPoints - A reference to a com.esri.arcgis.geometry.IPoint array (in)
toPoints - A reference to a com.esri.arcgis.geometry.IPoint array (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

defineFromEnvelopes

public void defineFromEnvelopes(IEnvelope from,
                                IEnvelope to)
                         throws java.io.IOException,
                                AutomationException
Defines a transformation that maps a point relative to one envelope to a similar position relative to another envelope.

Parameters:
from - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
to - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

defineFromEnvelopesEx

public void defineFromEnvelopesEx(IEnvelope from,
                                  IEnvelope to,
                                  IEnvelope outFrom,
                                  boolean assumeFalseOrigin,
                                  boolean keepAspect,
                                  boolean flipIt)
                           throws java.io.IOException,
                                  AutomationException
Defines a transformation that maps a point relative to one envelope to a similar position relative to another envelope.

Parameters:
from - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
to - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
outFrom - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
assumeFalseOrigin - The assumeFalseOrigin (in)
keepAspect - The keepAspect (in)
flipIt - The flipIt (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

defineReflection

public void defineReflection(ILine l)
                      throws java.io.IOException,
                             AutomationException
Defines a transformation that can perform a reflection about the line l.

Parameters:
l - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRMSError

public void getRMSError(double[] fromError,
                        double[] toError)
                 throws java.io.IOException,
                        AutomationException
RMS (Root Mean Square) error expressed relative to the 'from' and 'to' points defining the transformation. These error terms are valid after using DefineFromControlPoints/Ex to define the transformation.

Parameters:
fromError - The fromError (in/out: use single element array)
toError - The toError (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getControlPointError

public void getControlPointError(int i,
                                 double[] fromError,
                                 double[] toError)
                          throws java.io.IOException,
                                 AutomationException
Returns the errors involved in moving control point i from the 'from' to 'to' system. These error terms are valid after using DefineFromControlPoints/Ex to define the transformation.

Parameters:
i - The i (in)
fromError - The fromError (in/out: use single element array)
toError - The toError (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getXScale

public double getXScale()
                 throws java.io.IOException,
                        AutomationException
The scale along the X axis.

Returns:
The sx
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getYScale

public double getYScale()
                 throws java.io.IOException,
                        AutomationException
The scale along the Y axis.

Returns:
The sy
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getXTranslation

public double getXTranslation()
                       throws java.io.IOException,
                              AutomationException
The translation along the X axis.

Returns:
The dx
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getYTranslation

public double getYTranslation()
                       throws java.io.IOException,
                              AutomationException
The translation along the Y axis.

Returns:
The dy
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRotation

public double getRotation()
                   throws java.io.IOException,
                          AutomationException
The rotation angle. Will not be able if different x/y scale factors have been incorporated into the transformation.

Returns:
The r
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

scale

public void scale(double dx,
                  double dy)
           throws java.io.IOException,
                  AutomationException
Incorporates scale factors into the transformation.

Parameters:
dx - The dx (in)
dy - The dy (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMoveOrigin

public void setMoveOrigin(IPoint origin)
                   throws java.io.IOException,
                          AutomationException
The origin of accumulated transformations used when projecting an affine transformation to a different spatial reference system.

Parameters:
origin - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

moveVector

public void moveVector(ILine movementVector)
                throws java.io.IOException,
                       AutomationException
Performs an X and Y translation defined by a 2D vector.

Parameters:
movementVector - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

move

public void move(double dx,
                 double dy)
          throws java.io.IOException,
                 AutomationException
Incorporates a translation factor into the transformation.

Parameters:
dx - The dx (in)
dy - The dy (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rotate

public void rotate(double da)
            throws java.io.IOException,
                   AutomationException
Incorporates a rotation (in radians) into the transformation.

Parameters:
da - The da (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

postMultiply

public void postMultiply(IAffineTransformation2D3GEN postTransform)
                  throws java.io.IOException,
                         AutomationException
Post-multiplies the transformation by another transformation.

Parameters:
postTransform - A reference to a com.esri.arcgis.geometry.IAffineTransformation2D3GEN (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

preMultiply

public void preMultiply(IAffineTransformation2D3GEN preTransform)
                 throws java.io.IOException,
                        AutomationException
Pre-multiplies the transformation by another transformation.

Parameters:
preTransform - A reference to a com.esri.arcgis.geometry.IAffineTransformation2D3GEN (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isReflective

public boolean isReflective()
                     throws java.io.IOException,
                            AutomationException
Indicates if the transformation contains a reflection (determinant is negative).

Returns:
The isReflective
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

project

public void project(ISpatialReference newSpatialReference)
             throws java.io.IOException,
                    AutomationException
Moves this transformation into another spatial reference. If the transformations contains only translations, then use the MoveOrigin property to define an equivalent translation in the new spatial reference.

Parameters:
newSpatialReference - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMoveOrigin

public IPoint getMoveOrigin()
                     throws java.io.IOException,
                            AutomationException
The origin of accumulated transformations used when projecting an affine transformation to a different spatial reference system.

Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

defineConformalFromControlPoints

public void defineConformalFromControlPoints(IPoint[] fromPoints,
                                             IPoint[] toPoints)
                                      throws java.io.IOException,
                                             AutomationException
Defines the best conformal affine transformation between two sets of points. Can be used to register paper maps on a digitizer.

Parameters:
fromPoints - A reference to a com.esri.arcgis.geometry.IPoint array (in)
toPoints - A reference to a com.esri.arcgis.geometry.IPoint array (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryLinearCoefficients

public void queryLinearCoefficients(int direction,
                                    double[][] params)
                             throws java.io.IOException,
                                    AutomationException
Returns the linear coefficients which define the two dimensional affine transformation. The array size of the incoming parameters needs to be 6.

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
params - The params (in/out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setLinearCoefficients

public void setLinearCoefficients(int direction,
                                  double[] params)
                           throws java.io.IOException,
                                  AutomationException
Sets the linear coefficients which define the two dimensional affine transformation. The array size of the incoming parameters needs to be 6.

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