public static KeyframeSet ofFloat(float... values) { int numKeyframes = values.length; FloatKeyframe keyframes[] = new FloatKeyframe[Math.max(numKeyframes,2)]; if (numKeyframes == 1) { keyframes[0] = (FloatKeyframe) Keyframe.ofFloat(0f); keyframes[1] = (FloatKeyframe) Keyframe.ofFloat(1f, values[0]); } else { keyframes[0] = (FloatKeyframe) Keyframe.ofFloat(0f, values[0]); for (int i = 1; i < numKeyframes; ++i) { keyframes[i] = (FloatKeyframe) Keyframe.ofFloat((float) i / (numKeyframes - 1), values[i]); } } return new FloatKeyframeSet(keyframes); }
public static KeyframeSet ofKeyframe(Keyframe... keyframes) { // if all keyframes of same primitive type, create the appropriate KeyframeSet int numKeyframes = keyframes.length; boolean hasFloat = false; boolean hasInt = false; boolean hasOther = false; for (int i = 0; i < numKeyframes; ++i) { if (keyframes[i] instanceof FloatKeyframe) { hasFloat = true; } else if (keyframes[i] instanceof IntKeyframe) { hasInt = true; } else { hasOther = true; } } if (hasFloat && !hasInt && !hasOther) { FloatKeyframe floatKeyframes[] = new FloatKeyframe[numKeyframes]; for (int i = 0; i < numKeyframes; ++i) { floatKeyframes[i] = (FloatKeyframe) keyframes[i]; } return new FloatKeyframeSet(floatKeyframes); } else if (hasInt && !hasFloat && !hasOther) { IntKeyframe intKeyframes[] = new IntKeyframe[numKeyframes]; for (int i = 0; i < numKeyframes; ++i) { intKeyframes[i] = (IntKeyframe) keyframes[i]; } return new IntKeyframeSet(intKeyframes); } else { return new KeyframeSet(keyframes); } }
@Override public FloatKeyframeSet clone() { ArrayList<Keyframe> keyframes = mKeyframes; int numKeyframes = mKeyframes.size(); FloatKeyframe[] newKeyframes = new FloatKeyframe[numKeyframes]; for (int i = 0; i < numKeyframes; ++i) { newKeyframes[i] = (FloatKeyframe) keyframes.get(i).clone(); } FloatKeyframeSet newSet = new FloatKeyframeSet(newKeyframes); return newSet; }
public FloatKeyframeSet(FloatKeyframe... keyframes) { super(keyframes); }