| package com.airbnb.lottie; |
| |
| import android.graphics.Path; |
| import android.graphics.PointF; |
| import android.support.annotation.FloatRange; |
| |
| class MiscUtils { |
| static PointF addPoints(PointF p1, PointF p2) { |
| return new PointF(p1.x + p2.x, p1.y + p2.y); |
| } |
| |
| static void getPathFromData(ShapeData shapeData, Path outPath) { |
| outPath.reset(); |
| PointF initialPoint = shapeData.getInitialPoint(); |
| outPath.moveTo(initialPoint.x, initialPoint.y); |
| for (int i = 0; i < shapeData.getCurves().size(); i++) { |
| CubicCurveData curveData = shapeData.getCurves().get(i); |
| outPath.cubicTo(curveData.getControlPoint1().x, curveData.getControlPoint1().y, |
| curveData.getControlPoint2().x, curveData.getControlPoint2().y, |
| curveData.getVertex().x, curveData.getVertex().y); |
| } |
| if (shapeData.isClosed()) { |
| outPath.close(); |
| } |
| } |
| |
| static float lerp(float a, float b, @FloatRange(from = 0f, to = 1f) float percentage) { |
| return a + percentage * (b - a); |
| } |
| |
| static int lerp(int a, int b, @FloatRange(from = 0f, to = 1f) float percentage) { |
| return (int) (a + percentage * (b - a)); |
| } |
| } |