deegree 2.1 (2007/11/08 09:57 build-328-official)

org.deegree.model.csct.pt
Class Matrix

java.lang.Object
  extended by javax.vecmath.GMatrix
      extended by org.deegree.model.csct.pt.Matrix
All Implemented Interfaces:
Serializable, Cloneable

public class Matrix
extends javax.vecmath.GMatrix

A two dimensional array of numbers. Row and column numbering begins with zero.

Version:
1.00, $Revision: 6259 $, $Date: 2007-03-20 10:15:15 +0100 (Di, 20 Mär 2007) $
Author:
OpenGIS (www.opengis.org), Martin Desruisseaux, last edited by: $Author: bezema $
See Also:
"org.opengis.pt.PT_Matrix", GMatrix, AffineTransform, PerspectiveTransform, Transform3D, Jama matrix, JSR-83 Multiarray package, Serialized Form

Constructor Summary
Matrix(AffineTransform transform)
          Construct a 3×3 matrix from the specified affine transform.
Matrix(double[][] matrix)
          Constructs a new matrix from a two-dimensional array of doubles.
Matrix(javax.vecmath.GMatrix matrix)
          Constructs a new matrix and copies the initial values from the parameter matrix.
Matrix(int size)
          Construct a square identity matrix of size size × size.
Matrix(int numRow, int numCol)
          Construct a matrix of size numRow × numCol.
Matrix(int numRow, int numCol, double[] matrix)
          Constructs a numRow × numCol matrix initialized to the values in the matrix array.
 
Method Summary
static Matrix createAffineTransform(AxisOrientation[] srcAxis, AxisOrientation[] dstAxis)
          Construct an affine transform changing axis order and/or orientation.
static Matrix createAffineTransform(Envelope srcRegion, AxisOrientation[] srcAxis, Envelope dstRegion, AxisOrientation[] dstAxis)
          Construct an affine transform mapping a source region to a destination region.
static Matrix createAffineTransform(Envelope srcRegion, Envelope dstRegion)
          Construct an affine transform that maps a source region to a destination region.
 double[][] getElements()
          Retrieves the specifiable values in the transformation matrix into a 2-dimensional array of double precision values.
 boolean isAffine()
          Returns true if this matrix is an affine transform.
 boolean isIdentity()
          Returns true if this matrix is an identity matrix.
 AffineTransform toAffineTransform2D()
          Returns an affine transform for this matrix.
 String toString()
          Returns a string representation of this matrix.
 
Methods inherited from class javax.vecmath.GMatrix
add, add, clone, copySubMatrix, epsilonEquals, epsilonEquals, equals, equals, get, get, get, get, get, getColumn, getColumn, getElement, getNumCol, getNumRow, getRow, getRow, hashCode, identityMinus, invert, invert, LUD, mul, mul, mul, mulTransposeBoth, mulTransposeLeft, mulTransposeRight, negate, negate, set, set, set, set, set, set, setColumn, setColumn, setElement, setIdentity, setRow, setRow, setScale, setSize, setZero, sub, sub, SVD, trace, transpose, transpose
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Matrix

public Matrix(int size)
Construct a square identity matrix of size size × size.

Parameters:
size -

Matrix

public Matrix(int numRow,
              int numCol)
Construct a matrix of size numRow × numCol. Elements on the diagonal j==i are set to 1.

Parameters:
numRow -
numCol -

Matrix

public Matrix(int numRow,
              int numCol,
              double[] matrix)
Constructs a numRow × numCol matrix initialized to the values in the matrix array. The array values are copied in one row at a time in row major fashion. The array should be exactly numRow*numCol in length. Note that because row and column numbering begins with zero, row and numCol will be one larger than the maximum possible matrix index values.

Parameters:
numRow -
numCol -
matrix -

Matrix

public Matrix(double[][] matrix)
       throws IllegalArgumentException
Constructs a new matrix from a two-dimensional array of doubles.

Parameters:
matrix - Array of rows. Each row must have the same length.
Throws:
IllegalArgumentException - if the specified matrix is not regular (i.e. if all rows doesn't have the same length).

Matrix

public Matrix(javax.vecmath.GMatrix matrix)
Constructs a new matrix and copies the initial values from the parameter matrix.

Parameters:
matrix -

Matrix

public Matrix(AffineTransform transform)
Construct a 3×3 matrix from the specified affine transform.

Parameters:
transform -
Method Detail

createAffineTransform

public static Matrix createAffineTransform(AxisOrientation[] srcAxis,
                                           AxisOrientation[] dstAxis)
Construct an affine transform changing axis order and/or orientation. For example, the affine transform may convert (NORTH,WEST) coordinates into (EAST,NORTH). Axis orientation can be inversed only. For example, it is illegal to transform (NORTH,WEST) coordinates into (NORTH,DOWN).

Parameters:
srcAxis - The set of axis orientation for source coordinate system.
dstAxis - The set of axis orientation for destination coordinate system.
Returns:
Throws:
MismatchedDimensionException - if srcAxis and dstAxis don't have the same length.
IllegalArgumentException - if the affine transform can't be created for some other raison.

createAffineTransform

public static Matrix createAffineTransform(Envelope srcRegion,
                                           Envelope dstRegion)
Construct an affine transform that maps a source region to a destination region. Axis order and orientation are left unchanged.

Parameters:
srcRegion - The source region.
dstRegion - The destination region.
Throws:
MismatchedDimensionException - if regions don't have the same dimension.

createAffineTransform

public static Matrix createAffineTransform(Envelope srcRegion,
                                           AxisOrientation[] srcAxis,
                                           Envelope dstRegion,
                                           AxisOrientation[] dstAxis)
Construct an affine transform mapping a source region to a destination region. Axis order and/or orientation can be changed during the process. For example, the affine transform may convert (NORTH,WEST) coordinates into (EAST,NORTH). Axis orientation can be inversed only. For example, it is illegal to transform (NORTH,WEST) coordinates into (NORTH,DOWN).

Parameters:
srcRegion - The source region.
srcAxis - Axis orientation for each dimension of the source region.
dstRegion - The destination region.
dstAxis - Axis orientation for each dimension of the destination region.
Returns:
Throws:
MismatchedDimensionException - if all arguments don't have the same dimension.
IllegalArgumentException - if the affine transform can't be created for some other raison.

getElements

public final double[][] getElements()
Retrieves the specifiable values in the transformation matrix into a 2-dimensional array of double precision values. The values are stored into the 2-dimensional array using the row index as the first subscript and the column index as the second. Values are copied; changes to the returned array will not change this matrix.

Returns:
See Also:
"org.opengis.pt.PT_Matrix#elt"

isAffine

public final boolean isAffine()
Returns true if this matrix is an affine transform. A transform is affine if the matrix is square and last row contains only zeros, except in the last column which contains 1.

Returns:
true if this matrix is an affine transform.

isIdentity

public final boolean isIdentity()
Returns true if this matrix is an identity matrix.

Returns:
true if this matrix is an identity matrix.

toAffineTransform2D

public final AffineTransform toAffineTransform2D()
                                          throws IllegalStateException
Returns an affine transform for this matrix. This is a convenience method for interoperability with Java2D.

Returns:
an affine transform for this matrix.
Throws:
IllegalStateException - if this matrix is not 3x3, or if the last row is not [0 0 1].

toString

public String toString()
Returns a string representation of this matrix. The returned string is implementation dependent. It is usually provided for debugging purposes only.

Overrides:
toString in class javax.vecmath.GMatrix
Returns:
a string representation of this matrix. The returned string is implementation dependent. It is usually provided for debugging purposes only.

deegree 2.1 (2007/11/08 09:57 build-328-official)

an open source project founded by lat/lon, Bonn, Germany.
For more information visit: http://deegree.sourceforge.net