ADD week 5
This commit is contained in:
		| @@ -0,0 +1,596 @@ | ||||
| package com.google.android.material.shape; | ||||
|  | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.Matrix; | ||||
| import android.graphics.Path; | ||||
| import android.graphics.RectF; | ||||
| import com.google.android.material.shadow.ShadowRenderer; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Iterator; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ShapePath { | ||||
|     protected static final float ANGLE_LEFT = 180.0f; | ||||
|     private static final float ANGLE_UP = 270.0f; | ||||
|     private boolean containsIncompatibleShadowOp; | ||||
|  | ||||
|     @Deprecated | ||||
|     public float currentShadowAngle; | ||||
|  | ||||
|     @Deprecated | ||||
|     public float endShadowAngle; | ||||
|  | ||||
|     @Deprecated | ||||
|     public float endX; | ||||
|  | ||||
|     @Deprecated | ||||
|     public float endY; | ||||
|     private final List<PathOperation> operations = new ArrayList(); | ||||
|     private final List<ShadowCompatOperation> shadowCompatOperations = new ArrayList(); | ||||
|  | ||||
|     @Deprecated | ||||
|     public float startX; | ||||
|  | ||||
|     @Deprecated | ||||
|     public float startY; | ||||
|  | ||||
|     public static abstract class PathOperation { | ||||
|         protected final Matrix matrix = new Matrix(); | ||||
|  | ||||
|         public abstract void applyToPath(Matrix matrix, Path path); | ||||
|     } | ||||
|  | ||||
|     private float getCurrentShadowAngle() { | ||||
|         return this.currentShadowAngle; | ||||
|     } | ||||
|  | ||||
|     private float getEndShadowAngle() { | ||||
|         return this.endShadowAngle; | ||||
|     } | ||||
|  | ||||
|     private void setCurrentShadowAngle(float f) { | ||||
|         this.currentShadowAngle = f; | ||||
|     } | ||||
|  | ||||
|     private void setEndShadowAngle(float f) { | ||||
|         this.endShadowAngle = f; | ||||
|     } | ||||
|  | ||||
|     private void setEndX(float f) { | ||||
|         this.endX = f; | ||||
|     } | ||||
|  | ||||
|     private void setEndY(float f) { | ||||
|         this.endY = f; | ||||
|     } | ||||
|  | ||||
|     private void setStartX(float f) { | ||||
|         this.startX = f; | ||||
|     } | ||||
|  | ||||
|     private void setStartY(float f) { | ||||
|         this.startY = f; | ||||
|     } | ||||
|  | ||||
|     boolean containsIncompatibleShadowOp() { | ||||
|         return this.containsIncompatibleShadowOp; | ||||
|     } | ||||
|  | ||||
|     float getEndX() { | ||||
|         return this.endX; | ||||
|     } | ||||
|  | ||||
|     float getEndY() { | ||||
|         return this.endY; | ||||
|     } | ||||
|  | ||||
|     float getStartX() { | ||||
|         return this.startX; | ||||
|     } | ||||
|  | ||||
|     float getStartY() { | ||||
|         return this.startY; | ||||
|     } | ||||
|  | ||||
|     public ShapePath() { | ||||
|         reset(0.0f, 0.0f); | ||||
|     } | ||||
|  | ||||
|     public ShapePath(float f, float f2) { | ||||
|         reset(f, f2); | ||||
|     } | ||||
|  | ||||
|     public void reset(float f, float f2) { | ||||
|         reset(f, f2, ANGLE_UP, 0.0f); | ||||
|     } | ||||
|  | ||||
|     public void reset(float f, float f2, float f3, float f4) { | ||||
|         setStartX(f); | ||||
|         setStartY(f2); | ||||
|         setEndX(f); | ||||
|         setEndY(f2); | ||||
|         setCurrentShadowAngle(f3); | ||||
|         setEndShadowAngle((f3 + f4) % 360.0f); | ||||
|         this.operations.clear(); | ||||
|         this.shadowCompatOperations.clear(); | ||||
|         this.containsIncompatibleShadowOp = false; | ||||
|     } | ||||
|  | ||||
|     public void lineTo(float f, float f2) { | ||||
|         PathLineOperation pathLineOperation = new PathLineOperation(); | ||||
|         pathLineOperation.x = f; | ||||
|         pathLineOperation.y = f2; | ||||
|         this.operations.add(pathLineOperation); | ||||
|         LineShadowOperation lineShadowOperation = new LineShadowOperation(pathLineOperation, getEndX(), getEndY()); | ||||
|         addShadowCompatOperation(lineShadowOperation, lineShadowOperation.getAngle() + ANGLE_UP, lineShadowOperation.getAngle() + ANGLE_UP); | ||||
|         setEndX(f); | ||||
|         setEndY(f2); | ||||
|     } | ||||
|  | ||||
|     public void lineTo(float f, float f2, float f3, float f4) { | ||||
|         if ((Math.abs(f - getEndX()) < 0.001f && Math.abs(f2 - getEndY()) < 0.001f) || (Math.abs(f - f3) < 0.001f && Math.abs(f2 - f4) < 0.001f)) { | ||||
|             lineTo(f3, f4); | ||||
|             return; | ||||
|         } | ||||
|         PathLineOperation pathLineOperation = new PathLineOperation(); | ||||
|         pathLineOperation.x = f; | ||||
|         pathLineOperation.y = f2; | ||||
|         this.operations.add(pathLineOperation); | ||||
|         PathLineOperation pathLineOperation2 = new PathLineOperation(); | ||||
|         pathLineOperation2.x = f3; | ||||
|         pathLineOperation2.y = f4; | ||||
|         this.operations.add(pathLineOperation2); | ||||
|         InnerCornerShadowOperation innerCornerShadowOperation = new InnerCornerShadowOperation(pathLineOperation, pathLineOperation2, getEndX(), getEndY()); | ||||
|         if (innerCornerShadowOperation.getSweepAngle() > 0.0f) { | ||||
|             lineTo(f, f2); | ||||
|             lineTo(f3, f4); | ||||
|         } else { | ||||
|             addShadowCompatOperation(innerCornerShadowOperation, innerCornerShadowOperation.getStartAngle() + ANGLE_UP, innerCornerShadowOperation.getEndAngle() + ANGLE_UP); | ||||
|             setEndX(f3); | ||||
|             setEndY(f4); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void quadToPoint(float f, float f2, float f3, float f4) { | ||||
|         PathQuadOperation pathQuadOperation = new PathQuadOperation(); | ||||
|         pathQuadOperation.setControlX(f); | ||||
|         pathQuadOperation.setControlY(f2); | ||||
|         pathQuadOperation.setEndX(f3); | ||||
|         pathQuadOperation.setEndY(f4); | ||||
|         this.operations.add(pathQuadOperation); | ||||
|         this.containsIncompatibleShadowOp = true; | ||||
|         setEndX(f3); | ||||
|         setEndY(f4); | ||||
|     } | ||||
|  | ||||
|     public void cubicToPoint(float f, float f2, float f3, float f4, float f5, float f6) { | ||||
|         this.operations.add(new PathCubicOperation(f, f2, f3, f4, f5, f6)); | ||||
|         this.containsIncompatibleShadowOp = true; | ||||
|         setEndX(f5); | ||||
|         setEndY(f6); | ||||
|     } | ||||
|  | ||||
|     public void addArc(float f, float f2, float f3, float f4, float f5, float f6) { | ||||
|         PathArcOperation pathArcOperation = new PathArcOperation(f, f2, f3, f4); | ||||
|         pathArcOperation.setStartAngle(f5); | ||||
|         pathArcOperation.setSweepAngle(f6); | ||||
|         this.operations.add(pathArcOperation); | ||||
|         ArcShadowOperation arcShadowOperation = new ArcShadowOperation(pathArcOperation); | ||||
|         float f7 = f5 + f6; | ||||
|         boolean z = f6 < 0.0f; | ||||
|         if (z) { | ||||
|             f5 = (f5 + ANGLE_LEFT) % 360.0f; | ||||
|         } | ||||
|         addShadowCompatOperation(arcShadowOperation, f5, z ? (ANGLE_LEFT + f7) % 360.0f : f7); | ||||
|         double d = f7; | ||||
|         setEndX(((f + f3) * 0.5f) + (((f3 - f) / 2.0f) * ((float) Math.cos(Math.toRadians(d))))); | ||||
|         setEndY(((f2 + f4) * 0.5f) + (((f4 - f2) / 2.0f) * ((float) Math.sin(Math.toRadians(d))))); | ||||
|     } | ||||
|  | ||||
|     public void applyToPath(Matrix matrix, Path path) { | ||||
|         int size = this.operations.size(); | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             this.operations.get(i).applyToPath(matrix, path); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     ShadowCompatOperation createShadowCompatOperation(Matrix matrix) { | ||||
|         addConnectingShadowIfNecessary(getEndShadowAngle()); | ||||
|         final Matrix matrix2 = new Matrix(matrix); | ||||
|         final ArrayList arrayList = new ArrayList(this.shadowCompatOperations); | ||||
|         return new ShadowCompatOperation() { // from class: com.google.android.material.shape.ShapePath.1 | ||||
|             @Override // com.google.android.material.shape.ShapePath.ShadowCompatOperation | ||||
|             public void draw(Matrix matrix3, ShadowRenderer shadowRenderer, int i, Canvas canvas) { | ||||
|                 Iterator it = arrayList.iterator(); | ||||
|                 while (it.hasNext()) { | ||||
|                     ((ShadowCompatOperation) it.next()).draw(matrix2, shadowRenderer, i, canvas); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     private void addShadowCompatOperation(ShadowCompatOperation shadowCompatOperation, float f, float f2) { | ||||
|         addConnectingShadowIfNecessary(f); | ||||
|         this.shadowCompatOperations.add(shadowCompatOperation); | ||||
|         setCurrentShadowAngle(f2); | ||||
|     } | ||||
|  | ||||
|     private void addConnectingShadowIfNecessary(float f) { | ||||
|         if (getCurrentShadowAngle() == f) { | ||||
|             return; | ||||
|         } | ||||
|         float currentShadowAngle = ((f - getCurrentShadowAngle()) + 360.0f) % 360.0f; | ||||
|         if (currentShadowAngle > ANGLE_LEFT) { | ||||
|             return; | ||||
|         } | ||||
|         PathArcOperation pathArcOperation = new PathArcOperation(getEndX(), getEndY(), getEndX(), getEndY()); | ||||
|         pathArcOperation.setStartAngle(getCurrentShadowAngle()); | ||||
|         pathArcOperation.setSweepAngle(currentShadowAngle); | ||||
|         this.shadowCompatOperations.add(new ArcShadowOperation(pathArcOperation)); | ||||
|         setCurrentShadowAngle(f); | ||||
|     } | ||||
|  | ||||
|     static abstract class ShadowCompatOperation { | ||||
|         static final Matrix IDENTITY_MATRIX = new Matrix(); | ||||
|         final Matrix renderMatrix = new Matrix(); | ||||
|  | ||||
|         public abstract void draw(Matrix matrix, ShadowRenderer shadowRenderer, int i, Canvas canvas); | ||||
|  | ||||
|         ShadowCompatOperation() { | ||||
|         } | ||||
|  | ||||
|         public final void draw(ShadowRenderer shadowRenderer, int i, Canvas canvas) { | ||||
|             draw(IDENTITY_MATRIX, shadowRenderer, i, canvas); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class LineShadowOperation extends ShadowCompatOperation { | ||||
|         private final PathLineOperation operation; | ||||
|         private final float startX; | ||||
|         private final float startY; | ||||
|  | ||||
|         public LineShadowOperation(PathLineOperation pathLineOperation, float f, float f2) { | ||||
|             this.operation = pathLineOperation; | ||||
|             this.startX = f; | ||||
|             this.startY = f2; | ||||
|         } | ||||
|  | ||||
|         @Override // com.google.android.material.shape.ShapePath.ShadowCompatOperation | ||||
|         public void draw(Matrix matrix, ShadowRenderer shadowRenderer, int i, Canvas canvas) { | ||||
|             RectF rectF = new RectF(0.0f, 0.0f, (float) Math.hypot(this.operation.y - this.startY, this.operation.x - this.startX), 0.0f); | ||||
|             this.renderMatrix.set(matrix); | ||||
|             this.renderMatrix.preTranslate(this.startX, this.startY); | ||||
|             this.renderMatrix.preRotate(getAngle()); | ||||
|             shadowRenderer.drawEdgeShadow(canvas, this.renderMatrix, rectF, i); | ||||
|         } | ||||
|  | ||||
|         float getAngle() { | ||||
|             return (float) Math.toDegrees(Math.atan((this.operation.y - this.startY) / (this.operation.x - this.startX))); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class InnerCornerShadowOperation extends ShadowCompatOperation { | ||||
|         private final PathLineOperation operation1; | ||||
|         private final PathLineOperation operation2; | ||||
|         private final float startX; | ||||
|         private final float startY; | ||||
|  | ||||
|         public InnerCornerShadowOperation(PathLineOperation pathLineOperation, PathLineOperation pathLineOperation2, float f, float f2) { | ||||
|             this.operation1 = pathLineOperation; | ||||
|             this.operation2 = pathLineOperation2; | ||||
|             this.startX = f; | ||||
|             this.startY = f2; | ||||
|         } | ||||
|  | ||||
|         @Override // com.google.android.material.shape.ShapePath.ShadowCompatOperation | ||||
|         public void draw(Matrix matrix, ShadowRenderer shadowRenderer, int i, Canvas canvas) { | ||||
|             ShadowRenderer shadowRenderer2; | ||||
|             float sweepAngle = getSweepAngle(); | ||||
|             if (sweepAngle > 0.0f) { | ||||
|                 return; | ||||
|             } | ||||
|             double hypot = Math.hypot(this.operation1.x - this.startX, this.operation1.y - this.startY); | ||||
|             double hypot2 = Math.hypot(this.operation2.x - this.operation1.x, this.operation2.y - this.operation1.y); | ||||
|             float min = (float) Math.min(i, Math.min(hypot, hypot2)); | ||||
|             double d = min; | ||||
|             double tan = Math.tan(Math.toRadians((-sweepAngle) / 2.0f)) * d; | ||||
|             if (hypot > tan) { | ||||
|                 RectF rectF = new RectF(0.0f, 0.0f, (float) (hypot - tan), 0.0f); | ||||
|                 this.renderMatrix.set(matrix); | ||||
|                 this.renderMatrix.preTranslate(this.startX, this.startY); | ||||
|                 this.renderMatrix.preRotate(getStartAngle()); | ||||
|                 shadowRenderer2 = shadowRenderer; | ||||
|                 shadowRenderer2.drawEdgeShadow(canvas, this.renderMatrix, rectF, i); | ||||
|             } else { | ||||
|                 shadowRenderer2 = shadowRenderer; | ||||
|             } | ||||
|             float f = 2.0f * min; | ||||
|             RectF rectF2 = new RectF(0.0f, 0.0f, f, f); | ||||
|             this.renderMatrix.set(matrix); | ||||
|             this.renderMatrix.preTranslate(this.operation1.x, this.operation1.y); | ||||
|             this.renderMatrix.preRotate(getStartAngle()); | ||||
|             this.renderMatrix.preTranslate((float) ((-tan) - d), (-2.0f) * min); | ||||
|             shadowRenderer.drawInnerCornerShadow(canvas, this.renderMatrix, rectF2, (int) min, 450.0f, sweepAngle, new float[]{(float) (d + tan), f}); | ||||
|             if (hypot2 > tan) { | ||||
|                 RectF rectF3 = new RectF(0.0f, 0.0f, (float) (hypot2 - tan), 0.0f); | ||||
|                 this.renderMatrix.set(matrix); | ||||
|                 this.renderMatrix.preTranslate(this.operation1.x, this.operation1.y); | ||||
|                 this.renderMatrix.preRotate(getEndAngle()); | ||||
|                 this.renderMatrix.preTranslate((float) tan, 0.0f); | ||||
|                 shadowRenderer2.drawEdgeShadow(canvas, this.renderMatrix, rectF3, i); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         float getStartAngle() { | ||||
|             return (float) Math.toDegrees(Math.atan((this.operation1.y - this.startY) / (this.operation1.x - this.startX))); | ||||
|         } | ||||
|  | ||||
|         float getEndAngle() { | ||||
|             return (float) Math.toDegrees(Math.atan((this.operation2.y - this.operation1.y) / (this.operation2.x - this.operation1.x))); | ||||
|         } | ||||
|  | ||||
|         float getSweepAngle() { | ||||
|             float endAngle = ((getEndAngle() - getStartAngle()) + 360.0f) % 360.0f; | ||||
|             return endAngle <= ShapePath.ANGLE_LEFT ? endAngle : endAngle - 360.0f; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class ArcShadowOperation extends ShadowCompatOperation { | ||||
|         private final PathArcOperation operation; | ||||
|  | ||||
|         public ArcShadowOperation(PathArcOperation pathArcOperation) { | ||||
|             this.operation = pathArcOperation; | ||||
|         } | ||||
|  | ||||
|         @Override // com.google.android.material.shape.ShapePath.ShadowCompatOperation | ||||
|         public void draw(Matrix matrix, ShadowRenderer shadowRenderer, int i, Canvas canvas) { | ||||
|             shadowRenderer.drawCornerShadow(canvas, matrix, new RectF(this.operation.getLeft(), this.operation.getTop(), this.operation.getRight(), this.operation.getBottom()), i, this.operation.getStartAngle(), this.operation.getSweepAngle()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static class PathLineOperation extends PathOperation { | ||||
|         private float x; | ||||
|         private float y; | ||||
|  | ||||
|         @Override // com.google.android.material.shape.ShapePath.PathOperation | ||||
|         public void applyToPath(Matrix matrix, Path path) { | ||||
|             Matrix matrix2 = this.matrix; | ||||
|             matrix.invert(matrix2); | ||||
|             path.transform(matrix2); | ||||
|             path.lineTo(this.x, this.y); | ||||
|             path.transform(matrix); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static class PathQuadOperation extends PathOperation { | ||||
|  | ||||
|         @Deprecated | ||||
|         public float controlX; | ||||
|  | ||||
|         @Deprecated | ||||
|         public float controlY; | ||||
|  | ||||
|         @Deprecated | ||||
|         public float endX; | ||||
|  | ||||
|         @Deprecated | ||||
|         public float endY; | ||||
|  | ||||
|         private float getControlX() { | ||||
|             return this.controlX; | ||||
|         } | ||||
|  | ||||
|         private float getControlY() { | ||||
|             return this.controlY; | ||||
|         } | ||||
|  | ||||
|         private float getEndX() { | ||||
|             return this.endX; | ||||
|         } | ||||
|  | ||||
|         private float getEndY() { | ||||
|             return this.endY; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public void setControlX(float f) { | ||||
|             this.controlX = f; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public void setControlY(float f) { | ||||
|             this.controlY = f; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public void setEndX(float f) { | ||||
|             this.endX = f; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public void setEndY(float f) { | ||||
|             this.endY = f; | ||||
|         } | ||||
|  | ||||
|         @Override // com.google.android.material.shape.ShapePath.PathOperation | ||||
|         public void applyToPath(Matrix matrix, Path path) { | ||||
|             Matrix matrix2 = this.matrix; | ||||
|             matrix.invert(matrix2); | ||||
|             path.transform(matrix2); | ||||
|             path.quadTo(getControlX(), getControlY(), getEndX(), getEndY()); | ||||
|             path.transform(matrix); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static class PathArcOperation extends PathOperation { | ||||
|         private static final RectF rectF = new RectF(); | ||||
|  | ||||
|         @Deprecated | ||||
|         public float bottom; | ||||
|  | ||||
|         @Deprecated | ||||
|         public float left; | ||||
|  | ||||
|         @Deprecated | ||||
|         public float right; | ||||
|  | ||||
|         @Deprecated | ||||
|         public float startAngle; | ||||
|  | ||||
|         @Deprecated | ||||
|         public float sweepAngle; | ||||
|  | ||||
|         @Deprecated | ||||
|         public float top; | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public float getBottom() { | ||||
|             return this.bottom; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public float getLeft() { | ||||
|             return this.left; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public float getRight() { | ||||
|             return this.right; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public float getStartAngle() { | ||||
|             return this.startAngle; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public float getSweepAngle() { | ||||
|             return this.sweepAngle; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public float getTop() { | ||||
|             return this.top; | ||||
|         } | ||||
|  | ||||
|         private void setBottom(float f) { | ||||
|             this.bottom = f; | ||||
|         } | ||||
|  | ||||
|         private void setLeft(float f) { | ||||
|             this.left = f; | ||||
|         } | ||||
|  | ||||
|         private void setRight(float f) { | ||||
|             this.right = f; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public void setStartAngle(float f) { | ||||
|             this.startAngle = f; | ||||
|         } | ||||
|  | ||||
|         /* JADX INFO: Access modifiers changed from: private */ | ||||
|         public void setSweepAngle(float f) { | ||||
|             this.sweepAngle = f; | ||||
|         } | ||||
|  | ||||
|         private void setTop(float f) { | ||||
|             this.top = f; | ||||
|         } | ||||
|  | ||||
|         public PathArcOperation(float f, float f2, float f3, float f4) { | ||||
|             setLeft(f); | ||||
|             setTop(f2); | ||||
|             setRight(f3); | ||||
|             setBottom(f4); | ||||
|         } | ||||
|  | ||||
|         @Override // com.google.android.material.shape.ShapePath.PathOperation | ||||
|         public void applyToPath(Matrix matrix, Path path) { | ||||
|             Matrix matrix2 = this.matrix; | ||||
|             matrix.invert(matrix2); | ||||
|             path.transform(matrix2); | ||||
|             RectF rectF2 = rectF; | ||||
|             rectF2.set(getLeft(), getTop(), getRight(), getBottom()); | ||||
|             path.arcTo(rectF2, getStartAngle(), getSweepAngle(), false); | ||||
|             path.transform(matrix); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static class PathCubicOperation extends PathOperation { | ||||
|         private float controlX1; | ||||
|         private float controlX2; | ||||
|         private float controlY1; | ||||
|         private float controlY2; | ||||
|         private float endX; | ||||
|         private float endY; | ||||
|  | ||||
|         private float getControlX1() { | ||||
|             return this.controlX1; | ||||
|         } | ||||
|  | ||||
|         private float getControlX2() { | ||||
|             return this.controlX2; | ||||
|         } | ||||
|  | ||||
|         private float getControlY1() { | ||||
|             return this.controlY1; | ||||
|         } | ||||
|  | ||||
|         private float getControlY2() { | ||||
|             return this.controlY1; | ||||
|         } | ||||
|  | ||||
|         private float getEndX() { | ||||
|             return this.endX; | ||||
|         } | ||||
|  | ||||
|         private float getEndY() { | ||||
|             return this.endY; | ||||
|         } | ||||
|  | ||||
|         private void setControlX1(float f) { | ||||
|             this.controlX1 = f; | ||||
|         } | ||||
|  | ||||
|         private void setControlX2(float f) { | ||||
|             this.controlX2 = f; | ||||
|         } | ||||
|  | ||||
|         private void setControlY1(float f) { | ||||
|             this.controlY1 = f; | ||||
|         } | ||||
|  | ||||
|         private void setControlY2(float f) { | ||||
|             this.controlY2 = f; | ||||
|         } | ||||
|  | ||||
|         private void setEndX(float f) { | ||||
|             this.endX = f; | ||||
|         } | ||||
|  | ||||
|         private void setEndY(float f) { | ||||
|             this.endY = f; | ||||
|         } | ||||
|  | ||||
|         public PathCubicOperation(float f, float f2, float f3, float f4, float f5, float f6) { | ||||
|             setControlX1(f); | ||||
|             setControlY1(f2); | ||||
|             setControlX2(f3); | ||||
|             setControlY2(f4); | ||||
|             setEndX(f5); | ||||
|             setEndY(f6); | ||||
|         } | ||||
|  | ||||
|         @Override // com.google.android.material.shape.ShapePath.PathOperation | ||||
|         public void applyToPath(Matrix matrix, Path path) { | ||||
|             Matrix matrix2 = this.matrix; | ||||
|             matrix.invert(matrix2); | ||||
|             path.transform(matrix2); | ||||
|             path.cubicTo(this.controlX1, this.controlY1, this.controlX2, this.controlY2, this.endX, this.endY); | ||||
|             path.transform(matrix); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user