public PointF ValueFromObject(IJsonValue @object, float scale) { if (@object.ValueType == JsonValueType.Array) { return(JsonUtils.PointFromJsonArray(@object.GetArray(), scale)); } if (@object.ValueType == JsonValueType.Object) { return(JsonUtils.PointFromJsonObject(@object.GetObject(), scale)); } throw new System.ArgumentException("Unable to parse point from " + @object); }
internal AnimatablePathValue(IJsonValue json, LottieComposition composition) { if (HasKeyframes(json)) { var jsonArray = json.GetArray(); var length = jsonArray.Count; for (var i = 0; i < length; i++) { var jsonKeyframe = jsonArray[i].GetObject(); var keyframe = PathKeyframe.PathKeyframeFactory.NewInstance(jsonKeyframe, composition, ValueFactory.Instance); _keyframes.Add(keyframe); } Keyframe <PathKeyframe> .SetEndFrames <PathKeyframe, PointF>(_keyframes); } else { _initialPoint = JsonUtils.PointFromJsonArray(json.GetArray(), composition.DpScale); } }
internal static PathKeyframe NewInstance(JsonObject json, LottieComposition composition, IAnimatableValueFactory <PointF> valueFactory) { var keyframe = KeyFrameFactory.NewInstance(json, composition, composition.DpScale, valueFactory); PointF cp1 = null; PointF cp2 = null; var tiJson = json.GetNamedArray("ti", null); var toJson = json.GetNamedArray("to", null); if (tiJson != null && toJson != null) { cp1 = JsonUtils.PointFromJsonArray(toJson, composition.DpScale); cp2 = JsonUtils.PointFromJsonArray(tiJson, composition.DpScale); } var pathKeyframe = new PathKeyframe(composition, keyframe.StartValue, keyframe.EndValue, keyframe.Interpolator, keyframe.StartFrame, keyframe.EndFrame); var equals = keyframe.EndValue != null && keyframe.StartValue != null && keyframe.StartValue.Equals(keyframe.EndValue); if (pathKeyframe.EndValue != null && !equals) { pathKeyframe._path = Utils.CreatePath(keyframe.StartValue, keyframe.EndValue, cp1, cp2); } return(pathKeyframe); }
public PointF ValueFromObject(IJsonValue @object, float scale) { return(JsonUtils.PointFromJsonArray(@object.GetArray(), scale)); }