package Ġio . me how . labor atory . inspector . ky rie Ċ Ċ import Ġandroid . graphics . Path Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroidx . annotation . Float Range Ċ Ċ /** ĠA Ġ[ Node ] Ġthat Ġpaint s Ġa Ġrectangle . Ġ*/ Ċ internal Ġclass ĠRectangle Node ( ĊĠĠĠĠĠĠĠ Ġrotation : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġpivot X : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġpivot Y : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġscale X : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġscale Y : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ ĠtranslateX : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ ĠtranslateY : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġfill Color : ĠList < Animation < *, ĠInt >>, ĊĠĠĠĠĠĠĠ Ġfill Color Complex : ĠComplex Color ?, ĊĠĠĠĠĠĠĠ Ġfill Alpha : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġstroke Color : ĠList < Animation < *, ĠInt >>, ĊĠĠĠĠĠĠĠ Ġstroke Color Complex : ĠComplex Color ?, ĊĠĠĠĠĠĠĠ Ġstroke Alpha : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ ĠstrokeWidth : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġtrim Path Start : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġtrim Path End : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġtrim Path Offset : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġstroke Line Cap : ĠSt roke Line Cap , ĊĠĠĠĠĠĠĠ Ġstroke Line Join : ĠSt roke Line Join , ĊĠĠĠĠĠĠĠ Ġstroke M iter Limit : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġstroke Dash Array : ĠList < Animation < *, ĠFloat Array >>, ĊĠĠĠĠĠĠĠ Ġstroke Dash Offset : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġfill Type : ĠFill Type , ĊĠĠĠĠĠĠĠ Ġis Stroke Scaling : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġx : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġy : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġwidth : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġheight : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcorner Radius X : ĠList < Animation < *, ĠFloat >>, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcorner Radius Y : ĠList < Animation < *, ĠFloat >> Ċ ) Ġ: ĠRender Node ( ĊĠĠĠĠĠĠĠ Ġrotation , ĊĠĠĠĠĠĠĠ Ġpivot X , ĊĠĠĠĠĠĠĠ Ġpivot Y , ĊĠĠĠĠĠĠĠ Ġscale X , ĊĠĠĠĠĠĠĠ Ġscale Y , ĊĠĠĠĠĠĠĠ ĠtranslateX , ĊĠĠĠĠĠĠĠ ĠtranslateY , ĊĠĠĠĠĠĠĠ Ġfill Color , ĊĠĠĠĠĠĠĠ Ġfill Color Complex , ĊĠĠĠĠĠĠĠ Ġfill Alpha , ĊĠĠĠĠĠĠĠ Ġstroke Color , ĊĠĠĠĠĠĠĠ Ġstroke Color Complex , ĊĠĠĠĠĠĠĠ Ġstroke Alpha , ĊĠĠĠĠĠĠĠ ĠstrokeWidth , ĊĠĠĠĠĠĠĠ Ġtrim Path Start , ĊĠĠĠĠĠĠĠ Ġtrim Path End , ĊĠĠĠĠĠĠĠ Ġtrim Path Offset , ĊĠĠĠĠĠĠĠ Ġstroke Line Cap , ĊĠĠĠĠĠĠĠ Ġstroke Line Join , ĊĠĠĠĠĠĠĠ Ġstroke M iter Limit , ĊĠĠĠĠĠĠĠ Ġstroke Dash Array , ĊĠĠĠĠĠĠĠ Ġstroke Dash Offset , ĊĠĠĠĠĠĠĠ Ġfill Type , ĊĠĠĠĠĠĠĠ Ġis Stroke Scaling Ċ ) Ġ{ ĊĊĠĠĠ Ġ// Ġ< editor - fold Ġdesc =" Layer "> ĊĊĠĠĠ Ġoverride Ġfun Ġto Layer ( timeline : ĠProperty Timeline ): ĠRectangle Layer Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRectangle Layer ( timeline , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠRectangle Layer ( timeline : ĠProperty Timeline , Ġnode : ĠRectangle Node ) Ġ: ĠRender Node . Render Layer ( timeline , Ġnode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġx Ġ= Ġregister Anim atable Property ( node . x ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġy Ġ= Ġregister Anim atable Property ( node . y ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġwidth Ġ= Ġregister Anim atable Property ( node . width ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġheight Ġ= Ġregister Anim atable Property ( node . height ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcorner Radius X Ġ= Ġregister Anim atable Property ( node . corner Radius X ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcorner Radius Y Ġ= Ġregister Anim atable Property ( node . corner Radius Y ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtemp Rect Ġ= ĠRect F () ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Init Path ( out Path : ĠPath ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġx . animated Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġy . animated Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġl Ġ+ Ġwidth . animated Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġt Ġ+ Ġheight . animated Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrx Ġ= Ġcorner Radius X . animated Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġry Ġ= Ġcorner Radius Y . animated Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Rect . set ( l , Ġt , Ġr , Ġb ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Path . add Round Rect ( temp Rect , Ġrx , Ġry , ĠPath . Direction . CW ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ</ editor - fold > ĊĊĠĠĠ Ġ// Ġ< editor - fold Ġdesc =" Builder "> ĊĊĠĠĠ Ġ@ Dsl Marker ĊĠĠĠ Ġprivate Ġannotation Ġclass ĠRectangle Node Marker ĊĊĠĠĠ Ġ/** ĠBuilder Ġclass Ġused Ġto Ġcreate Ġ[ Rectangle Node ] s . Ġ*/ ĊĠĠĠ Ġ@ Rectangle Node Marker ĊĠĠĠ Ġclass ĠBuilder Ġinternal Ġconstructor () Ġ: ĠRender Node . Builder < Builder >() Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġx Ġ= Ġas Animations ( 0 f ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġy Ġ= Ġas Animations ( 0 f ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġwidth Ġ= Ġas Animations ( 0 f ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġheight Ġ= Ġas Animations ( 0 f ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcorner Radius X Ġ= Ġas Animations ( 0 f ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcorner Radius Y Ġ= Ġas Animations ( 0 f ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠX . ĊĊĠĠĠĠĠĠĠ Ġfun Ġx ( initial X : ĠFloat ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace First Animation ( x , Ġas Animation ( initial X )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Safe Var args ĊĠĠĠĠĠĠĠ Ġfun Ġx ( var arg Ġanimations : ĠAnimation < *, ĠFloat >): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( x , Ġ* animations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġx ( animations : ĠList < Animation < *, ĠFloat >> ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( x , Ġanimations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠY . ĊĊĠĠĠĠĠĠĠ Ġfun Ġy ( initial Y : ĠFloat ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace First Animation ( y , Ġas Animation ( initial Y )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Safe Var args ĊĠĠĠĠĠĠĠ Ġfun Ġy ( var arg Ġanimations : ĠAnimation < *, ĠFloat >): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( y , Ġ* animations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġy ( animations : ĠList < Animation < *, ĠFloat >> ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( y , Ġanimations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWidth . ĊĊĠĠĠĠĠĠĠ Ġfun Ġwidth (@ Float Range ( from Ġ= Ġ 0 . 0 ) Ġinitial Width : ĠFloat ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace First Animation ( width , Ġas Animation ( initial Width )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Safe Var args ĊĠĠĠĠĠĠĠ Ġfun Ġwidth ( var arg Ġanimations : ĠAnimation < *, ĠFloat >): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( width , Ġ* animations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġwidth ( animations : ĠList < Animation < *, ĠFloat >> ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( width , Ġanimations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠHeight . ĊĊĠĠĠĠĠĠĠ Ġfun Ġheight (@ Float Range ( from Ġ= Ġ 0 . 0 ) Ġinitial Height : ĠFloat ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace First Animation ( height , Ġas Animation ( initial Height )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Safe Var args ĊĠĠĠĠĠĠĠ Ġfun Ġheight ( var arg Ġanimations : ĠAnimation < *, ĠFloat >): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( height , Ġ* animations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġheight ( animations : ĠList < Animation < *, ĠFloat >> ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( height , Ġanimations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCor ner Ġradius ĠX . ĊĊĠĠĠĠĠĠĠ Ġfun Ġcorner Radius X (@ Float Range ( from Ġ= Ġ 0 . 0 ) Ġinitial Corner Radius X : ĠFloat ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace First Animation ( corner Radius X , Ġas Animation ( initial Corner Radius X )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Safe Var args ĊĠĠĠĠĠĠĠ Ġfun Ġcorner Radius X ( var arg Ġanimations : ĠAnimation < *, ĠFloat >): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( corner Radius X , Ġ* animations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcorner Radius X ( animations : ĠList < Animation < *, ĠFloat >> ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( corner Radius X , Ġanimations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCor ner Ġradius ĠY . ĊĊĠĠĠĠĠĠĠ Ġfun Ġcorner Radius Y (@ Float Range ( from Ġ= Ġ 0 . 0 ) Ġinitial Corner Radius Y : ĠFloat ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace First Animation ( corner Radius Y , Ġas Animation ( initial Corner Radius Y )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Safe Var args ĊĠĠĠĠĠĠĠ Ġfun Ġcorner Radius Y ( var arg Ġanimations : ĠAnimation < *, ĠFloat >): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( corner Radius Y , Ġ* animations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcorner Radius Y ( animations : ĠList < Animation < *, ĠFloat >> ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreplace Animations ( corner Radius Y , Ġanimations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġself Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠRectangle Node Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRectangle Node ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrotation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpivot X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpivot Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtranslateX , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtranslateY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color Complex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Alpha , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Color Complex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Alpha , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstrokeWidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrim Path Start , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrim Path End , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrim Path Offset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Line Cap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Line Join , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstroke M iter Limit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Dash Array , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Dash Offset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Scaling Stroke , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcorner Radius X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcorner Radius Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ</ editor - fold > ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġbuilder (): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBuilder () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ