Class KeyValues<T>
- java.lang.Object
-
- org.pushingpixels.radiance.animation.api.interpolator.KeyValues<T>
-
- Type Parameters:
T- Value type
public class KeyValues<T> extends java.lang.ObjectStores a list of values that correspond to the times in aKeyTimesobject. These structures are then used to create aKeyFramesobject, which is then used to create aTimelinePropertyBuilder.PropertySetterfor the purposes of modifying an object's property over time.At each of the times in
KeyTimes, the property will take on the corresponding value in the KeyValues object. Between these times, the property will take on a value based on the interpolation information stored in the KeyFrames object and thePropertyInterpolatorfor the type of the values in KeyValues.This class has built-in support for various known types, as defined in
PropertyInterpolator.For a simple example using KeyValues to create a KeyFrames and PropertySetter object, see the class header comments in
TimelinePropertyBuilder.PropertySetter.
-
-
Field Summary
Fields Modifier and Type Field Description private PropertyInterpolator<T>interpolatorprivate TstartValueprivate java.lang.Class<?>typeprivate java.util.List<T>values
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T> KeyValues<T>create(PropertyInterpolator<T> interpolator, T[] params)Constructs a KeyValues object from a property interpolator and one or more values.static <T> KeyValues<T>create(T... params)Constructs a KeyValues object from one or more values.(package private) intgetSize()Returns the number of values stored in this object.(package private) java.lang.Class<?>getType()Returns the data type of the values stored in this object.(package private) TgetValue(int i0, int i1, float fraction)Returns value calculated from the value at the lower index, the value at the upper index, the fraction elapsed between these endpoints, and the interpolator set up by this object at construction time.private booleanisToAnimation()Utility method for determining whether this is a "to" animation (true if the first value is null).(package private) voidsetStartValue(T startValue)Called at start of animation; sets starting value in simple "to" animations.
-
-
-
Field Detail
-
values
private final java.util.List<T> values
-
interpolator
private final PropertyInterpolator<T> interpolator
-
type
private final java.lang.Class<?> type
-
startValue
private T startValue
-
-
Constructor Detail
-
KeyValues
private KeyValues(T[] params)
Private constructor, called by factory method
-
KeyValues
private KeyValues(PropertyInterpolator<T> interpolator, T[] params)
Private constructor, called by factory method
-
-
Method Detail
-
create
@SafeVarargs public static <T> KeyValues<T> create(T... params)
Constructs a KeyValues object from one or more values. The internal Evaluator is automatically determined by the type of the parameters.- Type Parameters:
T- Value type- Parameters:
params- the values to interpolate between. If there is only one parameter, this is assumed to be a "to" animation where the first value is dynamically determined at runtime when the animation is started.- Returns:
- KeyValues object
- Throws:
java.lang.IllegalArgumentException- if anPropertyInterpolatorcannot be found that can interpolate between the value types supplied
-
create
public static <T> KeyValues<T> create(PropertyInterpolator<T> interpolator, T[] params)
Constructs a KeyValues object from a property interpolator and one or more values.- Type Parameters:
T- Value type- Parameters:
interpolator- Property interpolatorparams- the values to interpolate between. If there is only one parameter, this is assumed to be a "to" animation where the first value is dynamically determined at runtime when the animation is started.- Returns:
- KeyValues object
- Throws:
java.lang.IllegalArgumentException- if params does not have at least one value.
-
getSize
int getSize()
Returns the number of values stored in this object.- Returns:
- the number of values stored in this object
-
getType
java.lang.Class<?> getType()
Returns the data type of the values stored in this object.- Returns:
- a Class value representing the type of values stored in this object
-
setStartValue
void setStartValue(T startValue)
Called at start of animation; sets starting value in simple "to" animations.
-
isToAnimation
private boolean isToAnimation()
Utility method for determining whether this is a "to" animation (true if the first value is null).
-
getValue
T getValue(int i0, int i1, float fraction)
Returns value calculated from the value at the lower index, the value at the upper index, the fraction elapsed between these endpoints, and the interpolator set up by this object at construction time.
-
-