skyview.geometry
Class Scaler

java.lang.Object
  extended by skyview.geometry.Transformer
      extended by skyview.geometry.Scaler
All Implemented Interfaces:
java.io.Serializable, Component

public class Scaler
extends Transformer
implements Component

This class does 2-D scalings, rotations and linear transformations.

See Also:
Serialized Form

Constructor Summary
Scaler(double x0, double y0, double a00, double a01, double a10, double a11)
          Create a scaler where y0 = x0 + a00*x0 + a01*x1, y1 = x0+a10*x0+a11*x1.
 
Method Summary
 Scaler add(Scaler trans)
          Add a second affine transformation to this one and return the composite transformation.
 void dump(java.io.PrintStream out)
          Show the scaler.
 java.lang.String getDescription()
          What is a descrition for this component?
protected  int getInputDimension()
          What is the dimensionality of the input to a Scaler
 java.lang.String getName()
          What is a name for this component?
protected  int getOutputDimension()
          What is the dimensionality of the output of a Scaler
 double[] getParams()
           
 void interchangeAxes()
          Interchange the X and Y axes
 Scaler inverse()
          Return the inverse transformation.
 boolean isInverse(Transformer trans)
          Is this an inverse of the current scaler?
 double scale()
          What is the scale of this transformation? This is defined as the ratio of the lengths between a unit transformation on input.
 void transform(double[] x, double[] y)
          Scale a single point where the user supplies the output.
 
Methods inherited from class skyview.geometry.Transformer
transform, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Scaler

public Scaler(double x0,
              double y0,
              double a00,
              double a01,
              double a10,
              double a11)
Create a scaler where y0 = x0 + a00*x0 + a01*x1, y1 = x0+a10*x0+a11*x1.

Parameters:
x0 - The X offset
y0 - The Y offset
a00 - Coefficient of the transformation matrix.
a01 - Coefficient of the transformation matrix.
a10 - Coefficient of the transformation matrix.
a11 - Coefficient of the transformation matrix.
Method Detail

getParams

public double[] getParams()

getOutputDimension

protected int getOutputDimension()
What is the dimensionality of the output of a Scaler

Specified by:
getOutputDimension in class Transformer

getInputDimension

protected int getInputDimension()
What is the dimensionality of the input to a Scaler

Specified by:
getInputDimension in class Transformer

getName

public java.lang.String getName()
What is a name for this component?

Specified by:
getName in interface Component

getDescription

public java.lang.String getDescription()
What is a descrition for this component?

Specified by:
getDescription in interface Component

transform

public void transform(double[] x,
                      double[] y)
Scale a single point where the user supplies the output.

Specified by:
transform in class Transformer
Parameters:
x - The input point (should be double[2])
y - The output point (should be double[2])

inverse

public Scaler inverse()
               throws TransformationException
Return the inverse transformation.

Specified by:
inverse in class Transformer
Returns:
A transformation object that scales in the opposite direction.
Throws:
TransformationException - if the forward transformation matrix is singular.

add

public Scaler add(Scaler trans)
Add a second affine transformation to this one and return the composite transformation.

Parameters:
trans - A second transformation which is applied after the transformation described in 'this'.
Returns:
The combined transformation.

isInverse

public boolean isInverse(Transformer trans)
Is this an inverse of the current scaler?

Specified by:
isInverse in class Transformer

scale

public double scale()
What is the scale of this transformation? This is defined as the ratio of the lengths between a unit transformation on input. and the output.


interchangeAxes

public void interchangeAxes()
Interchange the X and Y axes


dump

public void dump(java.io.PrintStream out)
Show the scaler.