Package skyview.geometry

# Class Scaler

java.lang.Object
skyview.geometry.Transformer
skyview.geometry.Scaler

All Implemented Interfaces:
  `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

Constructors
Constructor
Description
`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

Modifier and Type
Method
Description
`Scaler`
`add(Scaler trans)`
Add a second affine transformation to this one and return the composite transformation.
`void`
`dump(PrintStream out)`
Show the scaler.
`String`
`getDescription()`
What is a descrition for this component?
`protected int`
`getInputDimension()`
What is the dimensionality of the input to a Scaler
`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 Details

### 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 Details

### 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 String getName()
What is a name for this component?

Specified by:
  `getName` in interface `Component`

### getDescription

public 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(PrintStream out)
Show the scaler.