/// <summary> /// Override this to provide your own offset on every frame. /// </summary> /// <param name="frameInfo"></param> /// <returns></returns> public Vector GetOffset(LottieFrameInfo <Vector?> frameInfo) { if (Value == null) { throw new ArgumentException("You must provide a static value in the constructor " + ", call setValue, or override getValue."); } return(Value.Value); }
public override int?GetValue(LottieFrameInfo <int?> frameInfo) { var originalValue = MiscUtils.Lerp( frameInfo.StartValue.Value, frameInfo.EndValue.Value, frameInfo.InterpolatedKeyframeProgress ); var newValue = GetOffset(frameInfo); return(originalValue + newValue); }
public override float?GetValue(LottieFrameInfo <float?> frameInfo) { var originalValue = MiscUtils.Lerp( frameInfo.StartValue.Value, frameInfo.EndValue.Value, frameInfo.InterpolatedKeyframeProgress ); var offset = GetOffset(frameInfo); return((float?)(originalValue + offset)); }
public override Vector?GetValue(LottieFrameInfo <Vector?> frameInfo) { var point = new Vector( MiscUtils.Lerp( frameInfo.StartValue.Value.X, frameInfo.EndValue.Value.X, frameInfo.InterpolatedKeyframeProgress), MiscUtils.Lerp( frameInfo.StartValue.Value.Y, frameInfo.EndValue.Value.Y, frameInfo.InterpolatedKeyframeProgress) ); var offset = GetOffset(frameInfo); point += offset; return(point); }