public interface Interpolator<T>
The interpolation function for objects.
The initial value and current value are instantiated only once (on construction) to reduce object allocation.
   // Example: Interpolating on health
   class Health {
     public float hp;
     public float maxHp;
     public void set(Health o) {
       set(o.hp, o.maxHp);
     }
     public void set(float hp, float maxHp) {
       this.hp = hp;
       this.maxHp = maxHp;
     }
   }
   class LinearHealthInterpolator implements Interpolator<Health> {
     void interpolate(Health flyweight, Health initialValue, Health currentValue, float alpha) {
       // Note that we're cascading the interpolators to individual fields within the Health component.
       flyweight.hp = Interpolators.linearFloat().interpolate(initialValue.hp, currentValue.hp, alpha);
       flyweight.maxHp = Interpolators.linearFloat().interpolate(initialValue.maxHp, currentValue.maxHp, alpha);
     }
   }
   // Initialize the interpolated health value
   InterpolatedValue<Health> health = new InterpolatedValue<>(new LinearHealthInterpolator(), new Health(), new Health());
   health.getInitialValue().set(10f, 10f);
   Health currentValue = health.getCurrentValue().set(10f, 10f);
   // Update the interpolated health value
   health.getInitialValue().set(health.getCurrentValue()); // before updating the value, the initial value needs to be set
   health.getCurrentValue().hp = 5f; // The current value can be updated any time afterwards
   // Use the interpolated value at 50% the current value
   Health flyweight = new Health();
   health.getInterpolatedValue(flyweight, 0.5f);
   Assert.assertEquals(7.5f, flyweight.hp);
 | Modifier and Type | Method and Description | 
|---|---|
| void | interpolate(T flyweight,
           T initialValue,
           T currentValue,
           float alpha)The interpolation algorithm. | 
void interpolate(T flyweight, T initialValue, T currentValue, float alpha)
flyweight - the flyweight value is where the results are storedinitialValue - the initial valuecurrentValue - the current valuealpha - a value between 0.0f to 1.0f. When alpha is 0.0f, the value should always be the initial value. When alpha is at 1.0f, the value should always be the current value.