package Ġcom . so y wiz . k orge . animate Ċ Ċ import Ġcom . so y wiz . k ds .* Ċ import Ġcom . so y wiz . k ds . iter ators .* Ċ import Ġcom . so y wiz . k lock .* Ċ import Ġcom . so y wiz . k orge . internal .* Ċ import Ġcom . so y wiz . k orge . t ween .* Ċ import Ġcom . so y wiz . k orge . view .* Ċ import Ġcom . so y wiz . kor io . async .* Ċ import Ġcom . so y wiz . k orm a . geom . Angle Ċ import Ġcom . so y wiz . k orm a . geom . plus Ċ import Ġcom . so y wiz . k orm a . interpolation .* Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . coroutines .* Ċ import Ġkotlin . math .* Ċ Ċ @ Dsl Marker Ċ @ Target ( Annotation Target . CLASS , ĠAnnotation Target . TYPE ) Ċ annotation Ġclass ĠAn imator Dsl Marker Ċ Ċ interface ĠBase Animator Node Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġexecute () ĊĠĠĠ Ġfun Ġexecute Immediate ly () Ċ } Ċ Ċ open Ġclass ĠAn imator ( ĊĠĠĠ Ġval Ġroot : ĠView , ĊĠĠĠ Ġval Ġtime : ĠTimeSpan Ġ= ĠDEFAULT _ TIME , ĊĠĠĠ Ġval Ġspeed : ĠDouble Ġ= ĠDEFAULT _ SPEED , ĊĠĠĠ Ġval Ġeasing : ĠE asing Ġ= ĠDEFAULT _ E AS ING , ĊĠĠĠ Ġval Ġcomplete On Cancel : ĠBoolean Ġ= ĠDEFAULT _ COMPLETE _ ON _ CANCEL , ĊĠĠĠ Ġval Ġkind : ĠNode Kind Ġ= ĠNode Kind . Sequence , ĊĠĠĠ Ġval Ġinit : ĠAn imator . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ: ĠBase Animator Node Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT _ TIME Ġ= Ġ 5 0 0 . ms ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT _ SPEED Ġ= Ġ 1 2 8 . 0 Ġ// ĠPoints Ġper Ġsecond ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT _ E AS ING Ġ= ĠE asing . E ASE _ IN _ OUT _ QUAD ĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT _ COMPLETE _ ON _ CANCEL Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠNode Kind Ġ{ ĊĠĠĠĠĠĠĠ ĠParallel , ĠSequence ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġinitialized Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġ_ on Cancel : Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĊĠĠĠ Ġfun Ġon Cancel ( action : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ on Cancel Ġ= Ġaction ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Published Api ĊĠĠĠ Ġinternal Ġval Ġnodes Ġ= ĠDe que < Base Animator Node >() ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNode Kind . Sequence Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( nodes . isNotEmpty ()) Ġnodes . remove First (). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠC ancellation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ on Cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( complete On Cancel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( nodes . isNotEmpty ()) Ġnodes . remove First (). execute Immediate ly () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNode Kind . Parallel Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjobs Ġ= Ġarray ListOf < Job >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( nodes . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġnodes . remove First () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjobs Ġ+= Ġlaunch Immediate ly ( coroutine Context ) Ġ{ Ġnode . execute () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjobs . join All () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠC ancellation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ on Cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( complete On Cancel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( nodes . isNotEmpty ()) Ġnodes . remove First (). execute Immediate ly () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexecute Immediate ly () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhile Ġ( nodes . isNotEmpty ()) Ġnodes . remove First (). execute Immediate ly () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinline Ġfun Ġparallel ( ĊĠĠĠĠĠĠĠ Ġtime : ĠTimeSpan Ġ= Ġthis . time , ĊĠĠĠĠĠĠĠ Ġspeed : ĠDouble Ġ= Ġthis . speed , ĊĠĠĠĠĠĠĠ Ġeasing : ĠE asing Ġ= Ġthis . easing , ĊĠĠĠĠĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= Ġthis . complete On Cancel , ĊĠĠĠĠĠĠĠ Ġcallback : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ= ĠAn imator ( root , Ġtime , Ġspeed , Ġeasing , Ġcomplete On Cancel , ĠNode Kind . Parallel ). apply ( callback ). also Ġ{ Ġnodes . add ( it ) Ġ} ĊĊĠĠĠ Ġinline Ġfun Ġsequence ( ĊĠĠĠĠĠĠĠ Ġtime : ĠTimeSpan Ġ= Ġthis . time , ĊĠĠĠĠĠĠĠ Ġspeed : ĠDouble Ġ= Ġthis . speed , ĊĠĠĠĠĠĠĠ Ġeasing : ĠE asing Ġ= Ġthis . easing , ĊĠĠĠĠĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= Ġthis . complete On Cancel , ĊĠĠĠĠĠĠĠ Ġcallback : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ= ĠAn imator ( root , Ġtime , Ġspeed , Ġeasing , Ġcomplete On Cancel , ĠNode Kind . Sequence ). apply ( callback ). also Ġ{ Ġnodes . add ( it ) Ġ} ĊĊĠĠĠ Ġfun Ġparallel Lazy ( ĊĠĠĠĠĠĠĠ Ġtime : ĠTimeSpan Ġ= Ġthis . time , ĊĠĠĠĠĠĠĠ Ġspeed : ĠDouble Ġ= Ġthis . speed , ĊĠĠĠĠĠĠĠ Ġeasing : ĠE asing Ġ= Ġthis . easing , ĊĠĠĠĠĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= Ġthis . complete On Cancel , ĊĠĠĠĠĠĠĠ Ġinit : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ= ĠAn imator ( root , Ġtime , Ġspeed , Ġeasing , Ġcomplete On Cancel , ĠNode Kind . Parallel , Ġinit ). also Ġ{ Ġnodes . add ( it ) Ġ} ĊĊĠĠĠ Ġfun Ġsequence Lazy ( ĊĠĠĠĠĠĠĠ Ġtime : ĠTimeSpan Ġ= Ġthis . time , ĊĠĠĠĠĠĠĠ Ġspeed : ĠDouble Ġ= Ġthis . speed , ĊĠĠĠĠĠĠĠ Ġeasing : ĠE asing Ġ= Ġthis . easing , ĊĠĠĠĠĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= Ġthis . complete On Cancel , ĊĠĠĠĠĠĠĠ Ġinit : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ= ĠAn imator ( root , Ġtime , Ġspeed , Ġeasing , Ġcomplete On Cancel , ĠNode Kind . Sequence , Ġinit ). also Ġ{ Ġnodes . add ( it ) Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠT ween Node ( ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView , ĊĠĠĠĠĠĠĠ Ġvar arg Ġval Ġvs : ĠV 2 <* >, ĊĠĠĠĠĠĠĠ Ġval Ġlazy Vs : ĠArray < out Ġ() Ġ-> ĠV 2 <* >> ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġtime : ĠTimeSpan Ġ= Ġ 1 0 0 0 . ms , ĊĠĠĠĠĠĠĠ Ġval Ġlazy Time : Ġ(() Ġ-> ĠTimeSpan )? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġeasing : ĠE asing ĊĠĠĠ Ġ) Ġ: ĠBase Animator Node Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcomputed Vs Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lazy Vs Ġ!= Ġnull ) ĠArray ( lazy Vs . size ) Ġ{ Ġlazy Vs [ it ]() Ġ} Ġelse Ġvs ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr time Ġ= Ġlazy Time ?. invoke () Ġ?: Ġtime ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . t ween (* computed Vs , Ġtime Ġ= Ġr time , Ġeasing Ġ= Ġeasing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠC ancellation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// println (" Tween Node : Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( complete On Cancel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Immediate ly () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute Immediate ly () Ġ= Ġcomputed Vs . fast ForEach Ġ{ Ġit . set ( 1 . 0 ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Published Api ĊĠĠĠ Ġinternal Ġfun Ġ__ t ween ( var arg Ġvs : ĠV 2 <* >, Ġlazy Vs : ĠArray < out Ġ() Ġ-> ĠV 2 <* >> ? Ġ= Ġnull , Ġtime : ĠTimeSpan Ġ= Ġthis . time , Ġlazy Time : Ġ(() Ġ-> ĠTimeSpan )? Ġ= Ġnull , Ġeasing : ĠE asing Ġ= Ġthis . easing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnodes . add ( Tween Node ( root , Ġ* vs , Ġlazy Vs Ġ= Ġlazy Vs , Ġtime Ġ= Ġtime , Ġlazy Time Ġ= Ġlazy Time , Ġeasing Ġ= Ġeasing )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Published Api ĊĠĠĠ Ġinternal Ġfun Ġ__ t ween ( var arg Ġvs : Ġ() Ġ-> ĠV 2 <* >, Ġtime : ĠTimeSpan Ġ= Ġthis . time , Ġlazy Time : Ġ(() Ġ-> ĠTimeSpan )? Ġ= Ġnull , Ġeasing : ĠE asing Ġ= Ġthis . easing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnodes . add ( Tween Node ( root , Ġlazy Vs Ġ= Ġvs , Ġtime Ġ= Ġtime , Ġlazy Time Ġ= Ġlazy Time , Ġeasing Ġ= Ġeasing )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġt ween ( var arg Ġvs : ĠV 2 <* >, Ġtime : ĠTimeSpan Ġ= Ġthis . time , Ġeasing : ĠE asing Ġ= Ġthis . easing ) Ġ= Ġ__ t ween (* vs , Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun Ġt ween ( var arg Ġvs : ĠV 2 <* >, Ġtime : Ġ() Ġ-> ĠTimeSpan Ġ= Ġ{ Ġthis . time Ġ}, Ġeasing : ĠE asing Ġ= Ġthis . easing ) Ġ= Ġ__ t ween (* vs , Ġlazy Time Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĊĠĠĠ Ġfun Ġt ween ( var arg Ġvs : Ġ() Ġ-> ĠV 2 <* >, Ġtime : ĠTimeSpan Ġ= Ġthis . time , Ġeasing : ĠE asing Ġ= Ġthis . easing ) Ġ= Ġ__ t ween (* vs , Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun Ġt ween ( var arg Ġvs : Ġ() Ġ-> ĠV 2 <* >, Ġtime : Ġ() Ġ-> ĠTimeSpan Ġ= Ġ{ Ġthis . time Ġ}, Ġeasing : ĠE asing Ġ= Ġthis . easing ) Ġ= Ġ__ t ween (* vs , Ġlazy Time Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĊĠĠĠ Ġfun ĠView . scale By ( scale X : ĠDouble , Ġscale Y : ĠDouble Ġ= Ġscale X , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ({ Ġthis :: scale X [ this . scale X Ġ+ Ġscale X ] Ġ}, Ġ{ Ġthis :: scale Y [ this . scale Y Ġ+ Ġscale Y ] Ġ}, Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . rotate By ( rotation : ĠAngle , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ({ Ġthis :: rotation [ this . rotation Ġ+ Ġrotation ] Ġ}, Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . move By ( x : ĠDouble Ġ= Ġ 0 . 0 , Ġy : ĠDouble Ġ= Ġ 0 . 0 , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ({ Ġthis :: x [ this . x Ġ+ Ġx ] Ġ}, Ġ{ Ġthis :: y [ this . y Ġ+ Ġy ] Ġ}, Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . move By With Speed ( x : ĠDouble Ġ= Ġ 0 . 0 , Ġy : ĠDouble Ġ= Ġ 0 . 0 , Ġspeed : ĠDouble Ġ= Ġthis @ Animator . speed , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ({ Ġthis :: x [ this . x Ġ+ Ġx ] Ġ}, Ġ{ Ġthis :: y [ this . y Ġ+ Ġy ] Ġ}, Ġlazy Time Ġ= Ġ{ Ġ( h ypot ( x , Ġy ) Ġ/ Ġspeed . toDouble ()). secs Ġ}, Ġeasing Ġ= Ġeasing ) ĊĊĠĠĠ Ġfun ĠView . scale To ( scale X : ĠDouble , Ġscale Y : ĠDouble , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ( this :: scale X [ scale X ], Ġthis :: scale Y [ scale Y ], Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . rotate To ( angle : ĠAngle , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ( this :: rotation [ angle ], Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . moveTo ( x : ĠDouble , Ġy : ĠDouble , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ( this :: x [ x ], Ġthis :: y [ y ], Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . moveTo With Speed ( x : ĠDouble , Ġy : ĠDouble , Ġspeed : ĠDouble Ġ= Ġthis @ Animator . speed , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ( this :: x [ x ], Ġthis :: y [ y ], Ġlazy Time Ġ= Ġ{ Ġ( h ypot ( this . x Ġ- Ġx , Ġthis . y Ġ- Ġy ) Ġ/ Ġspeed . toDouble ()). secs Ġ}, Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . alpha ( alpha : ĠDouble , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ( this :: alpha [ alpha ], Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) ĊĊĠĠĠ Ġfun ĠView . scale To ( scale X : Ġ() Ġ-> ĠNumber , Ġscale Y : Ġ() Ġ-> ĠNumber Ġ= Ġscale X , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġlazy Time : Ġ(() Ġ-> ĠTimeSpan )? Ġ= Ġnull , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ({ Ġthis :: scale X [ scale X ()] Ġ}, Ġ{ Ġthis :: scale Y [ scale Y ()] Ġ}, Ġtime Ġ= Ġtime , Ġlazy Time Ġ= Ġlazy Time , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . rotate To ( rotation : Ġ() Ġ-> ĠAngle , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġlazy Time : Ġ(() Ġ-> ĠTimeSpan )? Ġ= Ġnull , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ({ Ġthis :: rotation [ rotation ()] Ġ}, Ġtime Ġ= Ġtime , Ġlazy Time Ġ= Ġlazy Time , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . moveTo ( x : Ġ() Ġ-> ĠNumber Ġ= Ġ{ Ġthis . x Ġ}, Ġy : Ġ() Ġ-> ĠNumber Ġ= Ġ{ Ġthis . y Ġ}, Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġlazy Time : Ġ(() Ġ-> ĠTimeSpan )? Ġ= Ġnull , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ({ Ġthis :: x [ x ()] Ġ}, Ġ{ Ġthis :: y [ y ()] Ġ}, Ġtime Ġ= Ġtime , Ġlazy Time Ġ= Ġlazy Time , Ġeasing Ġ= Ġeasing ) ĊĠĠĠ Ġfun ĠView . moveTo With Speed ( x : Ġ() Ġ-> ĠNumber Ġ= Ġ{ Ġthis . x Ġ}, Ġy : Ġ() Ġ-> ĠNumber Ġ= Ġ{ Ġthis . y Ġ}, Ġspeed : Ġ() Ġ-> ĠNumber Ġ= Ġ{ Ġthis @ Animator . speed Ġ}, Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġ__ t ween ({ Ġthis :: x [ x ()] Ġ}, Ġ{ Ġthis :: y [ y ()] Ġ}, Ġlazy Time Ġ= Ġ{ Ġ( h ypot ( this . x Ġ- Ġx (). toDouble (), Ġthis . y Ġ- Ġy (). toDouble ()) Ġ/ Ġspeed (). toDouble ()). secs Ġ}, Ġeasing Ġ= Ġeasing ) ĊĊĠĠĠ Ġfun ĠView . show ( time : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġalpha ( 1 , Ġtime , Ġeasing ) ĊĠĠĠ Ġfun ĠView . hide ( time : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġalpha ( 0 , Ġtime , Ġeasing ) ĊĊĠĠĠ Ġ@ Deprecated (" Kotlin / Native Ġboxes Ġinline + Number ") ĊĠĠĠ Ġinline Ġfun ĠView . scale To ( scale X : ĠNumber , Ġscale Y : ĠNumber Ġ= Ġscale X , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġscale To ( scale X . toDouble (), Ġscale Y . toDouble (), Ġtime , Ġeasing ) ĊĠĠĠ Ġ@ Deprecated (" Kotlin / Native Ġboxes Ġinline + Number ") ĊĠĠĠ Ġinline Ġfun ĠView . moveTo ( x : ĠNumber , Ġy : ĠNumber , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġmove To ( x . toDouble (), Ġy . toDouble (), Ġtime , Ġeasing ) ĊĠĠĠ Ġ@ Deprecated (" Kotlin / Native Ġboxes Ġinline + Number ") ĊĠĠĠ Ġinline Ġfun ĠView . moveTo With Speed ( x : ĠNumber , Ġy : ĠNumber , Ġspeed : ĠNumber Ġ= Ġthis @ Animator . speed , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġmove To With Speed ( x . toDouble (), Ġy . toDouble (), Ġspeed . toDouble (), Ġeasing ) ĊĠĠĠ Ġ@ Deprecated (" Kotlin / Native Ġboxes Ġinline + Number ") ĊĠĠĠ Ġinline Ġfun ĠView . alpha ( alpha : ĠNumber , Ġtime : ĠTimeSpan Ġ= Ġthis @ Animator . time , Ġeasing : ĠE asing Ġ= Ġthis @ Animator . easing ) Ġ= Ġalpha ( alpha . toDouble (), Ġtime , Ġeasing ) ĊĊĠĠĠ Ġfun Ġwait ( time : ĠTimeSpan Ġ= Ġthis . time ) Ġ= Ġ__ t ween ( time Ġ= Ġtime ) ĊĠĠĠ Ġfun Ġwait ( time : Ġ() Ġ-> ĠTimeSpan ) Ġ= Ġ__ t ween ( lazy Time Ġ= Ġtime ) ĊĊĠĠĠ Ġfun Ġblock ( callback : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnodes . add ( object Ġ: ĠBase Animator Node Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecute () Ġ= Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute Immediate ly () Ġ= Ġcallback () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . anim ator ( ĊĠĠĠ Ġtime : ĠTimeSpan Ġ= ĠAn imator . DEFAULT _ TIME , ĊĠĠĠ Ġspeed : ĠDouble Ġ= ĠAn imator . DEFAULT _ SPEED , ĊĠĠĠ Ġeasing : ĠE asing Ġ= ĠAn imator . DEFAULT _ E AS ING , ĊĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= ĠAn imator . DEFAULT _ COMPLETE _ ON _ CANCEL , ĊĠĠĠ Ġkind : ĠAn imator . Node Kind Ġ= ĠAn imator . Node Kind . Sequence , ĊĠĠĠ Ġblock : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠAn imator Ġ= ĠAn imator ( this , Ġtime , Ġspeed , Ġeasing , Ġcomplete On Cancel , Ġkind ). apply ( block ) Ċ Ċ suspend Ġfun ĠView . launch Animate ( ĊĠĠĠ Ġtime : ĠTimeSpan Ġ= ĠAn imator . DEFAULT _ TIME , ĊĠĠĠ Ġspeed : ĠDouble Ġ= ĠAn imator . DEFAULT _ SPEED , ĊĠĠĠ Ġeasing : ĠE asing Ġ= ĠAn imator . DEFAULT _ E AS ING , ĊĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= ĠAn imator . DEFAULT _ COMPLETE _ ON _ CANCEL , ĊĠĠĠ Ġkind : ĠAn imator . Node Kind Ġ= ĠAn imator . Node Kind . Sequence , ĊĠĠĠ Ġblock : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠJob Ġ= Ġlaunch Immediate ly ( coroutine Context ) Ġ{ Ġanimate ( time , Ġspeed , Ġeasing , Ġcomplete On Cancel , Ġkind , Ġblock ) Ġ} Ċ Ċ suspend Ġfun ĠView . animate ( ĊĠĠĠ Ġtime : ĠTimeSpan Ġ= ĠAn imator . DEFAULT _ TIME , ĊĠĠĠ Ġspeed : ĠDouble Ġ= ĠAn imator . DEFAULT _ SPEED , ĊĠĠĠ Ġeasing : ĠE asing Ġ= ĠAn imator . DEFAULT _ E AS ING , ĊĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= ĠAn imator . DEFAULT _ COMPLETE _ ON _ CANCEL , ĊĠĠĠ Ġkind : ĠAn imator . Node Kind Ġ= ĠAn imator . Node Kind . Sequence , ĊĠĠĠ Ġblock : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠAn imator Ġ= ĠAn imator ( this , Ġtime , Ġspeed , Ġeasing , Ġcomplete On Cancel , Ġkind ). apply ( block ). also Ġ{ Ġit . execute () Ġ} Ċ Ċ suspend Ġfun ĠView . animate Sequence ( ĊĠĠĠ Ġtime : ĠTimeSpan Ġ= ĠAn imator . DEFAULT _ TIME , ĊĠĠĠ Ġspeed : ĠDouble Ġ= ĠAn imator . DEFAULT _ SPEED , ĊĠĠĠ Ġeasing : ĠE asing Ġ= ĠAn imator . DEFAULT _ E AS ING , ĊĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= ĠAn imator . DEFAULT _ COMPLETE _ ON _ CANCEL , ĊĠĠĠ Ġblock : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠAn imator Ġ= Ġanimate ( time , Ġspeed , Ġeasing , Ġcomplete On Cancel , ĠAn imator . Node Kind . Sequence , Ġblock ) Ċ Ċ suspend Ġfun ĠView . animate Parallel ( ĊĠĠĠ Ġtime : ĠTimeSpan Ġ= ĠAn imator . DEFAULT _ TIME , ĊĠĠĠ Ġspeed : ĠDouble Ġ= ĠAn imator . DEFAULT _ SPEED , ĊĠĠĠ Ġeasing : ĠE asing Ġ= ĠAn imator . DEFAULT _ E AS ING , ĊĠĠĠ Ġcomplete On Cancel : ĠBoolean Ġ= ĠAn imator . DEFAULT _ COMPLETE _ ON _ CANCEL , ĊĠĠĠ Ġblock : Ġ@ Animator Dsl Marker ĠAn imator . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠAn imator Ġ= Ġanimate ( time , Ġspeed , Ġeasing , Ġcomplete On Cancel , ĠAn imator . Node Kind . Parallel , Ġblock ) Ċ