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

org.deegree.model.csct.resources
Class XAffineTransform

java.lang.Object
  extended by java.awt.geom.AffineTransform
      extended by org.deegree.model.csct.resources.XAffineTransform
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
AffineTransform2D

public abstract class XAffineTransform
extends AffineTransform

Utility methods for affine transforms. This class provides a set of public static methods working on any AffineTransform.

Class XAffineTransform overrides all mutable methods of AffineTransform in order to check for permission before to change the transform's state. If checkPermission() is defined to always thrown an exception, then XAffineTransform is immutable.

Version:
1.0
Author:
Martin Desruisseaux
See Also:
Serialized Form

Field Summary
 
Fields inherited from class java.awt.geom.AffineTransform
TYPE_FLIP, TYPE_GENERAL_ROTATION, TYPE_GENERAL_SCALE, TYPE_GENERAL_TRANSFORM, TYPE_IDENTITY, TYPE_MASK_ROTATION, TYPE_MASK_SCALE, TYPE_QUADRANT_ROTATION, TYPE_TRANSLATION, TYPE_UNIFORM_SCALE
 
Constructor Summary
protected XAffineTransform(AffineTransform tr)
          Constructs a new XAffineTransform that is a copy of the specified AffineTransform object.
 
Method Summary
protected abstract  void checkPermission()
          Check if the caller is allowed to change this XAffineTransform's state.
 void concatenate(AffineTransform Tx)
          Check for permission before concatenating this transform.
static AffineTransform getScaleInstance(double sx, double sy, double x, double y)
          Retourne une transformation affine repr�sentant un zoom fait autour d'un point central (x,y).
static double getScaleX0(AffineTransform zoom)
          Retourne le facteur d'�chelle x en annulant l'effet d'une �ventuelle rotation.
static double getScaleY0(AffineTransform zoom)
          Retourne le facteur d'�chelle y en annulant l'effet d'une �ventuelle rotation.
static Point2D inverseDeltaTransform(AffineTransform transform, Point2D source, Point2D dest)
          Calcule la transformation affine inverse d'un point sans prendre en compte la translation.
static Rectangle2D inverseTransform(AffineTransform transform, Rectangle2D bounds, Rectangle2D dest)
          Retourne un rectangle qui contient enti�rement la transformation inverse de bounds.
 void preConcatenate(AffineTransform Tx)
          Check for permission before concatenating this transform.
 void rotate(double theta)
          Check for permission before rotating this transform.
 void rotate(double theta, double x, double y)
          Check for permission before rotating this transform.
static void round(AffineTransform zoom)
           
 void scale(double sx, double sy)
          Check for permission before scaling this transform.
 void setToIdentity()
          Check for permission before setting this transform.
 void setToRotation(double theta)
          Check for permission before setting this transform.
 void setToRotation(double theta, double x, double y)
          Check for permission before setting this transform.
 void setToScale(double sx, double sy)
          Check for permission before setting this transform.
 void setToShear(double shx, double shy)
          Check for permission before setting this transform.
 void setToTranslation(double tx, double ty)
          Check for permission before setting this transform.
 void setTransform(AffineTransform Tx)
          Check for permission before setting this transform.
 void setTransform(double m00, double m10, double m01, double m11, double m02, double m12)
          Check for permission before setting this transform.
 void shear(double shx, double shy)
          Check for permission before shearing this transform.
static Rectangle2D transform(AffineTransform transform, Rectangle2D bounds, Rectangle2D dest)
          Retourne un rectangle qui contient enti�rement la transformation directe de bounds.
 void translate(double tx, double ty)
          Check for permission before translating this transform.
 
Methods inherited from class java.awt.geom.AffineTransform
clone, createInverse, createTransformedShape, deltaTransform, deltaTransform, equals, getDeterminant, getMatrix, getRotateInstance, getRotateInstance, getScaleInstance, getScaleX, getScaleY, getShearInstance, getShearX, getShearY, getTranslateInstance, getTranslateX, getTranslateY, getType, hashCode, inverseTransform, inverseTransform, isIdentity, toString, transform, transform, transform, transform, transform, transform
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

XAffineTransform

protected XAffineTransform(AffineTransform tr)
Constructs a new XAffineTransform that is a copy of the specified AffineTransform object.

Method Detail

checkPermission

protected abstract void checkPermission()
Check if the caller is allowed to change this XAffineTransform's state.


translate

public void translate(double tx,
                      double ty)
Check for permission before translating this transform.

Overrides:
translate in class AffineTransform

rotate

public void rotate(double theta)
Check for permission before rotating this transform.

Overrides:
rotate in class AffineTransform

rotate

public void rotate(double theta,
                   double x,
                   double y)
Check for permission before rotating this transform.

Overrides:
rotate in class AffineTransform

scale

public void scale(double sx,
                  double sy)
Check for permission before scaling this transform.

Overrides:
scale in class AffineTransform

shear

public void shear(double shx,
                  double shy)
Check for permission before shearing this transform.

Overrides:
shear in class AffineTransform

setToIdentity

public void setToIdentity()
Check for permission before setting this transform.

Overrides:
setToIdentity in class AffineTransform

setToTranslation

public void setToTranslation(double tx,
                             double ty)
Check for permission before setting this transform.

Overrides:
setToTranslation in class AffineTransform

setToRotation

public void setToRotation(double theta)
Check for permission before setting this transform.

Overrides:
setToRotation in class AffineTransform

setToRotation

public void setToRotation(double theta,
                          double x,
                          double y)
Check for permission before setting this transform.

Overrides:
setToRotation in class AffineTransform

setToScale

public void setToScale(double sx,
                       double sy)
Check for permission before setting this transform.

Overrides:
setToScale in class AffineTransform

setToShear

public void setToShear(double shx,
                       double shy)
Check for permission before setting this transform.

Overrides:
setToShear in class AffineTransform

setTransform

public void setTransform(AffineTransform Tx)
Check for permission before setting this transform.

Overrides:
setTransform in class AffineTransform

setTransform

public void setTransform(double m00,
                         double m10,
                         double m01,
                         double m11,
                         double m02,
                         double m12)
Check for permission before setting this transform.

Overrides:
setTransform in class AffineTransform

concatenate

public void concatenate(AffineTransform Tx)
Check for permission before concatenating this transform.

Overrides:
concatenate in class AffineTransform

preConcatenate

public void preConcatenate(AffineTransform Tx)
Check for permission before concatenating this transform.

Overrides:
preConcatenate in class AffineTransform

transform

public static Rectangle2D transform(AffineTransform transform,
                                    Rectangle2D bounds,
                                    Rectangle2D dest)
Retourne un rectangle qui contient enti�rement la transformation directe de bounds. Cette op�ration est l'�quivalent de createTransformedShape(bounds).getBounds2D().

Parameters:
transform - Transformation affine � utiliser.
bounds - Rectangle � transformer. Ce rectangle ne sera pas modifi�.
dest - Rectangle dans lequel placer le r�sultat. Si nul, un nouveau rectangle sera cr��.
Returns:
La transformation directe du rectangle bounds.

inverseTransform

public static Rectangle2D inverseTransform(AffineTransform transform,
                                           Rectangle2D bounds,
                                           Rectangle2D dest)
                                    throws NoninvertibleTransformException
Retourne un rectangle qui contient enti�rement la transformation inverse de bounds. Cette op�ration est l'�quivalent de createInverse().createTransformedShape(bounds).getBounds2D().

Parameters:
transform - Transformation affine � utiliser.
bounds - Rectangle � transformer. Ce rectangle ne sera pas modifi�.
dest - Rectangle dans lequel placer le r�sultat. Si nul, un nouveau rectangle sera cr��.
Returns:
La transformation inverse du rectangle bounds.
Throws:
NoninvertibleTransformException - si la transformation affine ne peut pas �tre invers�e.

inverseDeltaTransform

public static Point2D inverseDeltaTransform(AffineTransform transform,
                                            Point2D source,
                                            Point2D dest)
                                     throws NoninvertibleTransformException
Calcule la transformation affine inverse d'un point sans prendre en compte la translation.

Parameters:
transform - Transformation affine � utiliser.
source - Point � transformer. Ce rectangle ne sera pas modifi�.
dest - Point dans lequel placer le r�sultat. Si nul, un nouveau point sera cr��.
Returns:
La transformation inverse du point source.
Throws:
NoninvertibleTransformException - si la transformation affine ne peut pas �tre invers�e.

getScaleX0

public static double getScaleX0(AffineTransform zoom)
Retourne le facteur d'�chelle x en annulant l'effet d'une �ventuelle rotation. Ce facteur est calcul� par .


getScaleY0

public static double getScaleY0(AffineTransform zoom)
Retourne le facteur d'�chelle y en annulant l'effet d'une �ventuelle rotation. Ce facteur est calcul� par .


getScaleInstance

public static AffineTransform getScaleInstance(double sx,
                                               double sy,
                                               double x,
                                               double y)
Retourne une transformation affine repr�sentant un zoom fait autour d'un point central (x,y). Les transformations laisseront inchang�es la coordonn�e (x,y) sp�cifi�e.

Parameters:
sx - Echelle le long de l'axe des x.
sy - Echelle le long de l'axe des y.
x - Coordonn�es x du point central.
y - Coordonn�es y du point central.
Returns:
Transformation affine d'un zoom qui laisse la coordonn�e (x,y) inchang�e.

round

public static void round(AffineTransform zoom)

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