.class public Lcom/google/android/material/shape/ShapePath; .super Ljava/lang/Object; .source "ShapePath.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/google/android/material/shape/ShapePath$PathCubicOperation;, Lcom/google/android/material/shape/ShapePath$PathArcOperation;, Lcom/google/android/material/shape/ShapePath$PathQuadOperation;, Lcom/google/android/material/shape/ShapePath$PathLineOperation;, Lcom/google/android/material/shape/ShapePath$PathOperation;, Lcom/google/android/material/shape/ShapePath$ArcShadowOperation;, Lcom/google/android/material/shape/ShapePath$LineShadowOperation;, Lcom/google/android/material/shape/ShapePath$ShadowCompatOperation; } .end annotation # static fields .field public static final ANGLE_LEFT:F = 180.0f .field private static final ANGLE_UP:F = 270.0f # instance fields .field private containsIncompatibleShadowOp:Z .field public currentShadowAngle:F .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field public endShadowAngle:F .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field public endX:F .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field public endY:F .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field private final operations:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lcom/google/android/material/shape/ShapePath$PathOperation;", ">;" } .end annotation .end field .field private final shadowCompatOperations:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lcom/google/android/material/shape/ShapePath$ShadowCompatOperation;", ">;" } .end annotation .end field .field public startX:F .annotation runtime Ljava/lang/Deprecated; .end annotation .end field .field public startY:F .annotation runtime Ljava/lang/Deprecated; .end annotation .end field # direct methods .method public constructor ()V .locals 1 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V .line 2 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V iput-object v0, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; .line 3 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V iput-object v0, p0, Lcom/google/android/material/shape/ShapePath;->shadowCompatOperations:Ljava/util/List; const/4 v0, 0x0 .line 4 invoke-virtual {p0, v0, v0}, Lcom/google/android/material/shape/ShapePath;->reset(FF)V return-void .end method .method public constructor (FF)V .locals 1 .line 5 invoke-direct {p0}, Ljava/lang/Object;->()V .line 6 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V iput-object v0, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; .line 7 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V iput-object v0, p0, Lcom/google/android/material/shape/ShapePath;->shadowCompatOperations:Ljava/util/List; .line 8 invoke-virtual {p0, p1, p2}, Lcom/google/android/material/shape/ShapePath;->reset(FF)V return-void .end method .method private addConnectingShadowIfNecessary(F)V .locals 6 .line 1 invoke-direct {p0}, Lcom/google/android/material/shape/ShapePath;->getCurrentShadowAngle()F move-result v0 cmpl-float v0, v0, p1 if-nez v0, :cond_0 return-void .line 2 :cond_0 invoke-direct {p0}, Lcom/google/android/material/shape/ShapePath;->getCurrentShadowAngle()F move-result v0 sub-float v0, p1, v0 const/high16 v1, 0x43b40000 # 360.0f add-float/2addr v0, v1 rem-float/2addr v0, v1 const/high16 v1, 0x43340000 # 180.0f cmpl-float v1, v0, v1 if-lez v1, :cond_1 return-void .line 3 :cond_1 new-instance v1, Lcom/google/android/material/shape/ShapePath$PathArcOperation; .line 4 invoke-virtual {p0}, Lcom/google/android/material/shape/ShapePath;->getEndX()F move-result v2 invoke-virtual {p0}, Lcom/google/android/material/shape/ShapePath;->getEndY()F move-result v3 invoke-virtual {p0}, Lcom/google/android/material/shape/ShapePath;->getEndX()F move-result v4 invoke-virtual {p0}, Lcom/google/android/material/shape/ShapePath;->getEndY()F move-result v5 invoke-direct {v1, v2, v3, v4, v5}, Lcom/google/android/material/shape/ShapePath$PathArcOperation;->(FFFF)V .line 5 invoke-direct {p0}, Lcom/google/android/material/shape/ShapePath;->getCurrentShadowAngle()F move-result v2 invoke-static {v1, v2}, Lcom/google/android/material/shape/ShapePath$PathArcOperation;->access$600(Lcom/google/android/material/shape/ShapePath$PathArcOperation;F)V .line 6 invoke-static {v1, v0}, Lcom/google/android/material/shape/ShapePath$PathArcOperation;->access$700(Lcom/google/android/material/shape/ShapePath$PathArcOperation;F)V .line 7 iget-object v0, p0, Lcom/google/android/material/shape/ShapePath;->shadowCompatOperations:Ljava/util/List; new-instance v2, Lcom/google/android/material/shape/ShapePath$ArcShadowOperation; invoke-direct {v2, v1}, Lcom/google/android/material/shape/ShapePath$ArcShadowOperation;->(Lcom/google/android/material/shape/ShapePath$PathArcOperation;)V invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 8 invoke-direct {p0, p1}, Lcom/google/android/material/shape/ShapePath;->setCurrentShadowAngle(F)V return-void .end method .method private addShadowCompatOperation(Lcom/google/android/material/shape/ShapePath$ShadowCompatOperation;FF)V .locals 0 .line 1 invoke-direct {p0, p2}, Lcom/google/android/material/shape/ShapePath;->addConnectingShadowIfNecessary(F)V .line 2 iget-object p2, p0, Lcom/google/android/material/shape/ShapePath;->shadowCompatOperations:Ljava/util/List; invoke-interface {p2, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 3 invoke-direct {p0, p3}, Lcom/google/android/material/shape/ShapePath;->setCurrentShadowAngle(F)V return-void .end method .method private getCurrentShadowAngle()F .locals 1 .line 1 iget v0, p0, Lcom/google/android/material/shape/ShapePath;->currentShadowAngle:F return v0 .end method .method private getEndShadowAngle()F .locals 1 .line 1 iget v0, p0, Lcom/google/android/material/shape/ShapePath;->endShadowAngle:F return v0 .end method .method private setCurrentShadowAngle(F)V .locals 0 .line 1 iput p1, p0, Lcom/google/android/material/shape/ShapePath;->currentShadowAngle:F return-void .end method .method private setEndShadowAngle(F)V .locals 0 .line 1 iput p1, p0, Lcom/google/android/material/shape/ShapePath;->endShadowAngle:F return-void .end method .method private setEndX(F)V .locals 0 .line 1 iput p1, p0, Lcom/google/android/material/shape/ShapePath;->endX:F return-void .end method .method private setEndY(F)V .locals 0 .line 1 iput p1, p0, Lcom/google/android/material/shape/ShapePath;->endY:F return-void .end method .method private setStartX(F)V .locals 0 .line 1 iput p1, p0, Lcom/google/android/material/shape/ShapePath;->startX:F return-void .end method .method private setStartY(F)V .locals 0 .line 1 iput p1, p0, Lcom/google/android/material/shape/ShapePath;->startY:F return-void .end method # virtual methods .method public addArc(FFFFFF)V .locals 4 .line 1 new-instance v0, Lcom/google/android/material/shape/ShapePath$PathArcOperation; invoke-direct {v0, p1, p2, p3, p4}, Lcom/google/android/material/shape/ShapePath$PathArcOperation;->(FFFF)V .line 2 invoke-static {v0, p5}, Lcom/google/android/material/shape/ShapePath$PathArcOperation;->access$600(Lcom/google/android/material/shape/ShapePath$PathArcOperation;F)V .line 3 invoke-static {v0, p6}, Lcom/google/android/material/shape/ShapePath$PathArcOperation;->access$700(Lcom/google/android/material/shape/ShapePath$PathArcOperation;F)V .line 4 iget-object v1, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 5 new-instance v1, Lcom/google/android/material/shape/ShapePath$ArcShadowOperation; invoke-direct {v1, v0}, Lcom/google/android/material/shape/ShapePath$ArcShadowOperation;->(Lcom/google/android/material/shape/ShapePath$PathArcOperation;)V add-float v0, p5, p6 const/4 v2, 0x0 cmpg-float p6, p6, v2 if-gez p6, :cond_0 const/4 p6, 0x1 goto :goto_0 :cond_0 const/4 p6, 0x0 :goto_0 const/high16 v2, 0x43b40000 # 360.0f const/high16 v3, 0x43340000 # 180.0f if-eqz p6, :cond_1 add-float/2addr p5, v3 rem-float/2addr p5, v2 :cond_1 if-eqz p6, :cond_2 add-float/2addr v3, v0 rem-float/2addr v3, v2 goto :goto_1 :cond_2 move v3, v0 .line 6 :goto_1 invoke-direct {p0, v1, p5, v3}, Lcom/google/android/material/shape/ShapePath;->addShadowCompatOperation(Lcom/google/android/material/shape/ShapePath$ShadowCompatOperation;FF)V add-float p5, p1, p3 const/high16 p6, 0x3f000000 # 0.5f mul-float/2addr p5, p6 sub-float/2addr p3, p1 const/high16 p1, 0x40000000 # 2.0f div-float/2addr p3, p1 float-to-double v0, v0 .line 7 invoke-static {v0, v1}, Ljava/lang/Math;->toRadians(D)D move-result-wide v2 invoke-static {v2, v3}, Ljava/lang/Math;->cos(D)D move-result-wide v2 double-to-float v2, v2 mul-float/2addr p3, v2 add-float/2addr p3, p5 .line 8 invoke-direct {p0, p3}, Lcom/google/android/material/shape/ShapePath;->setEndX(F)V add-float p3, p2, p4 mul-float/2addr p3, p6 sub-float/2addr p4, p2 div-float/2addr p4, p1 .line 9 invoke-static {v0, v1}, Ljava/lang/Math;->toRadians(D)D move-result-wide p1 invoke-static {p1, p2}, Ljava/lang/Math;->sin(D)D move-result-wide p1 double-to-float p1, p1 mul-float/2addr p4, p1 add-float/2addr p4, p3 .line 10 invoke-direct {p0, p4}, Lcom/google/android/material/shape/ShapePath;->setEndY(F)V return-void .end method .method public applyToPath(Landroid/graphics/Matrix;Landroid/graphics/Path;)V .locals 3 .line 1 iget-object v0, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->size()I move-result v0 const/4 v1, 0x0 :goto_0 if-ge v1, v0, :cond_0 .line 2 iget-object v2, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/google/android/material/shape/ShapePath$PathOperation; .line 3 invoke-virtual {v2, p1, p2}, Lcom/google/android/material/shape/ShapePath$PathOperation;->applyToPath(Landroid/graphics/Matrix;Landroid/graphics/Path;)V add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 return-void .end method .method public containsIncompatibleShadowOp()Z .locals 1 .line 1 iget-boolean v0, p0, Lcom/google/android/material/shape/ShapePath;->containsIncompatibleShadowOp:Z return v0 .end method .method public createShadowCompatOperation(Landroid/graphics/Matrix;)Lcom/google/android/material/shape/ShapePath$ShadowCompatOperation; .locals 2 .annotation build Landroidx/annotation/NonNull; .end annotation .line 1 invoke-direct {p0}, Lcom/google/android/material/shape/ShapePath;->getEndShadowAngle()F move-result v0 invoke-direct {p0, v0}, Lcom/google/android/material/shape/ShapePath;->addConnectingShadowIfNecessary(F)V .line 2 new-instance v0, Landroid/graphics/Matrix; invoke-direct {v0, p1}, Landroid/graphics/Matrix;->(Landroid/graphics/Matrix;)V .line 3 new-instance p1, Ljava/util/ArrayList; iget-object v1, p0, Lcom/google/android/material/shape/ShapePath;->shadowCompatOperations:Ljava/util/List; invoke-direct {p1, v1}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V .line 4 new-instance v1, Lcom/google/android/material/shape/ShapePath$1; invoke-direct {v1, p0, p1, v0}, Lcom/google/android/material/shape/ShapePath$1;->(Lcom/google/android/material/shape/ShapePath;Ljava/util/List;Landroid/graphics/Matrix;)V return-object v1 .end method .method public cubicToPoint(FFFFFF)V .locals 8 .annotation build Landroidx/annotation/RequiresApi; value = 0x15 .end annotation .line 1 new-instance v7, Lcom/google/android/material/shape/ShapePath$PathCubicOperation; move-object v0, v7 move v1, p1 move v2, p2 move v3, p3 move v4, p4 move v5, p5 move v6, p6 invoke-direct/range {v0 .. v6}, Lcom/google/android/material/shape/ShapePath$PathCubicOperation;->(FFFFFF)V .line 2 iget-object p1, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; invoke-interface {p1, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z const/4 p1, 0x1 .line 3 iput-boolean p1, p0, Lcom/google/android/material/shape/ShapePath;->containsIncompatibleShadowOp:Z .line 4 invoke-direct {p0, p5}, Lcom/google/android/material/shape/ShapePath;->setEndX(F)V .line 5 invoke-direct {p0, p6}, Lcom/google/android/material/shape/ShapePath;->setEndY(F)V return-void .end method .method public getEndX()F .locals 1 .line 1 iget v0, p0, Lcom/google/android/material/shape/ShapePath;->endX:F return v0 .end method .method public getEndY()F .locals 1 .line 1 iget v0, p0, Lcom/google/android/material/shape/ShapePath;->endY:F return v0 .end method .method public getStartX()F .locals 1 .line 1 iget v0, p0, Lcom/google/android/material/shape/ShapePath;->startX:F return v0 .end method .method public getStartY()F .locals 1 .line 1 iget v0, p0, Lcom/google/android/material/shape/ShapePath;->startY:F return v0 .end method .method public lineTo(FF)V .locals 4 .line 1 new-instance v0, Lcom/google/android/material/shape/ShapePath$PathLineOperation; invoke-direct {v0}, Lcom/google/android/material/shape/ShapePath$PathLineOperation;->()V .line 2 invoke-static {v0, p1}, Lcom/google/android/material/shape/ShapePath$PathLineOperation;->access$002(Lcom/google/android/material/shape/ShapePath$PathLineOperation;F)F .line 3 invoke-static {v0, p2}, Lcom/google/android/material/shape/ShapePath$PathLineOperation;->access$102(Lcom/google/android/material/shape/ShapePath$PathLineOperation;F)F .line 4 iget-object v1, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 5 new-instance v1, Lcom/google/android/material/shape/ShapePath$LineShadowOperation; invoke-virtual {p0}, Lcom/google/android/material/shape/ShapePath;->getEndX()F move-result v2 invoke-virtual {p0}, Lcom/google/android/material/shape/ShapePath;->getEndY()F move-result v3 invoke-direct {v1, v0, v2, v3}, Lcom/google/android/material/shape/ShapePath$LineShadowOperation;->(Lcom/google/android/material/shape/ShapePath$PathLineOperation;FF)V .line 6 invoke-virtual {v1}, Lcom/google/android/material/shape/ShapePath$LineShadowOperation;->getAngle()F move-result v0 const/high16 v2, 0x43870000 # 270.0f add-float/2addr v0, v2 .line 7 invoke-virtual {v1}, Lcom/google/android/material/shape/ShapePath$LineShadowOperation;->getAngle()F move-result v3 add-float/2addr v3, v2 .line 8 invoke-direct {p0, v1, v0, v3}, Lcom/google/android/material/shape/ShapePath;->addShadowCompatOperation(Lcom/google/android/material/shape/ShapePath$ShadowCompatOperation;FF)V .line 9 invoke-direct {p0, p1}, Lcom/google/android/material/shape/ShapePath;->setEndX(F)V .line 10 invoke-direct {p0, p2}, Lcom/google/android/material/shape/ShapePath;->setEndY(F)V return-void .end method .method public quadToPoint(FFFF)V .locals 1 .annotation build Landroidx/annotation/RequiresApi; value = 0x15 .end annotation .line 1 new-instance v0, Lcom/google/android/material/shape/ShapePath$PathQuadOperation; invoke-direct {v0}, Lcom/google/android/material/shape/ShapePath$PathQuadOperation;->()V .line 2 invoke-static {v0, p1}, Lcom/google/android/material/shape/ShapePath$PathQuadOperation;->access$200(Lcom/google/android/material/shape/ShapePath$PathQuadOperation;F)V .line 3 invoke-static {v0, p2}, Lcom/google/android/material/shape/ShapePath$PathQuadOperation;->access$300(Lcom/google/android/material/shape/ShapePath$PathQuadOperation;F)V .line 4 invoke-static {v0, p3}, Lcom/google/android/material/shape/ShapePath$PathQuadOperation;->access$400(Lcom/google/android/material/shape/ShapePath$PathQuadOperation;F)V .line 5 invoke-static {v0, p4}, Lcom/google/android/material/shape/ShapePath$PathQuadOperation;->access$500(Lcom/google/android/material/shape/ShapePath$PathQuadOperation;F)V .line 6 iget-object p1, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; invoke-interface {p1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z const/4 p1, 0x1 .line 7 iput-boolean p1, p0, Lcom/google/android/material/shape/ShapePath;->containsIncompatibleShadowOp:Z .line 8 invoke-direct {p0, p3}, Lcom/google/android/material/shape/ShapePath;->setEndX(F)V .line 9 invoke-direct {p0, p4}, Lcom/google/android/material/shape/ShapePath;->setEndY(F)V return-void .end method .method public reset(FF)V .locals 2 const/high16 v0, 0x43870000 # 270.0f const/4 v1, 0x0 .line 1 invoke-virtual {p0, p1, p2, v0, v1}, Lcom/google/android/material/shape/ShapePath;->reset(FFFF)V return-void .end method .method public reset(FFFF)V .locals 0 .line 2 invoke-direct {p0, p1}, Lcom/google/android/material/shape/ShapePath;->setStartX(F)V .line 3 invoke-direct {p0, p2}, Lcom/google/android/material/shape/ShapePath;->setStartY(F)V .line 4 invoke-direct {p0, p1}, Lcom/google/android/material/shape/ShapePath;->setEndX(F)V .line 5 invoke-direct {p0, p2}, Lcom/google/android/material/shape/ShapePath;->setEndY(F)V .line 6 invoke-direct {p0, p3}, Lcom/google/android/material/shape/ShapePath;->setCurrentShadowAngle(F)V add-float/2addr p3, p4 const/high16 p1, 0x43b40000 # 360.0f rem-float/2addr p3, p1 .line 7 invoke-direct {p0, p3}, Lcom/google/android/material/shape/ShapePath;->setEndShadowAngle(F)V .line 8 iget-object p1, p0, Lcom/google/android/material/shape/ShapePath;->operations:Ljava/util/List; invoke-interface {p1}, Ljava/util/List;->clear()V .line 9 iget-object p1, p0, Lcom/google/android/material/shape/ShapePath;->shadowCompatOperations:Ljava/util/List; invoke-interface {p1}, Ljava/util/List;->clear()V const/4 p1, 0x0 .line 10 iput-boolean p1, p0, Lcom/google/android/material/shape/ShapePath;->containsIncompatibleShadowOp:Z return-void .end method