Package org.jdesktop.animation.timing.interpolation

# Class Evaluator<T>

java.lang.Object
org.jdesktop.animation.timing.interpolation.Evaluator<T>

public abstract class Evaluator<T> extends Object
This class is used by KeyValues to calculate intermediate values for specific types. This class has built-in support for the following data types:

- java.lang.Byte
- java.lang.Short
- java.lang.Integer
- java.lang.Long
- java.lang.Float
- java.lang.Double
- java.awt.Color
- java.awt.geom.Point2D
- java.awt.geom.Line2D
- java.awt.geom.Dimension2D
- java.awt.geom.Rectangle2D
- java.awt.geom.RoundRectangle2D
- java.awt.geom.Ellipse2D
- java.awt.geom.Arc2D
- java.awt.geom.QuadCurve2D
- java.awt.geom.CubicCurve2D

## Constructor Summary

Constructors
Constructor
Description
`Evaluator()`

## Method Summary

Modifier and Type
Method
Description
`abstract T`
`evaluate(T v0, T v1, float fraction)`
Abstract method to evaluate between two boundary values.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### Evaluator

public Evaluator()

## Method Details

### evaluate

public abstract T evaluate(T v0, T v1, float fraction)
Abstract method to evaluate between two boundary values. Built-in implementations all use linear parametric evaluation:

          v = v0 + (v1 - v0) * fraction

Extenders of Evaluator will need to override this method and do something similar for their own types. Note that this mechanism may be used to create non-linear interpolators for specific value types, although it may besimpler to just use the linear/parametric interpolation technique here and perform non-linear interpolation through custom Interpolators rather than perform custom calculations in this method; the point of this class is to allow calculations with new/unknown types, not to provide another mechanism for non-linear interpolation.