package Ġcom . so y wiz . k orge . view . camera Ċ Ċ import Ġcom . so y wiz . k ds .* Ċ import Ġcom . so y wiz . k lock .* Ċ import Ġcom . so y wiz . k orge . annotations .* Ċ import Ġcom . so y wiz . k orge . t ween .* Ċ import Ġcom . so y wiz . k orge . view .* Ċ import Ġcom . so y wiz . kor io . lang .* Ċ import Ġcom . so y wiz . k orm a . geom .* Ċ import Ġcom . so y wiz . k orm a . interpolation .* Ċ import Ġkotlin . math .* Ċ Ċ @ K orge Experimental Ċ inline Ġfun ĠContainer . camera Container Old ( ĊĠĠĠ Ġwidth : ĠDouble , ĊĠĠĠ Ġheight : ĠDouble , ĊĠĠĠ Ġcamera : ĠCamera Old Ġ= ĠCamera Old ( 0 . 0 , Ġ 0 . 0 , Ġwidth , Ġheight ), ĊĠĠĠ Ġno inline Ġdecoration : Ġ@ View Dsl Marker ĠCamera Container Old . () Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġcontent : Ġ@ View Dsl Marker ĠContainer . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ= ĠCamera Container Old ( width , Ġheight , Ġcamera , Ġdecoration ). addTo ( this ). also Ġ{ Ġcontent ( it . content ) Ġ} Ċ Ċ @ K orge Experimental Ċ class ĠCamera Container Old ( ĊĠĠĠ Ġoverride Ġvar Ġwidth : ĠDouble Ġ= Ġ 1 0 0 . 0 , ĊĠĠĠ Ġoverride Ġvar Ġheight : ĠDouble Ġ= Ġ 1 0 0 . 0 , ĊĠĠĠ Ġcamera : ĠCamera Old Ġ= ĠCamera Old ( 0 . 0 , Ġ 0 . 0 , Ġwidth , Ġheight ), ĊĠĠĠ Ġdecoration : Ġ@ View Dsl Marker ĠCamera Container Old . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ: ĠFixed Size Container ( width , Ġheight , Ġtrue ), ĠView . Reference Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontent Container Ġ= ĠContainer () ĊĊĠĠĠ Ġval Ġcontent : ĠContainer Ġ= Ġobject Ġ: ĠContainer (), ĠReference Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Local Bounds Internal ( out : ĠRectangle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . set To ( 0 , Ġ 0 , Ġthis @ Camera Container Old . width , Ġthis @ Camera Container Old . height ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcamera : ĠCamera Old Ġ= Ġcamera ĊĠĠĠĠĠĠĠ Ġset ( new Camera ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Camera . container Ġ!= Ġnull ) Ġthrow ĠIllegalStateException (" You Ġcan 't Ġuse ĠCamera Ġthat Ġis Ġalready Ġattached ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera . detach () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Camera . attach ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset To ( new Camera ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġnew Camera ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdecoration ( this ) ĊĠĠĠĠĠĠĠ Ġcontent Container . addTo ( this ) ĊĠĠĠĠĠĠĠ Ġcontent . addTo ( content Container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinline Ġfun Ġupdate Content ( action : ĠContainer . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent . action () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġset To ( ĊĠĠĠĠĠĠĠ Ġx : ĠDouble , ĊĠĠĠĠĠĠĠ Ġy : ĠDouble , ĊĠĠĠĠĠĠĠ Ġwidth : ĠDouble , ĊĠĠĠĠĠĠĠ Ġheight : ĠDouble , ĊĠĠĠĠĠĠĠ Ġzoom : ĠDouble , ĊĠĠĠĠĠĠĠ Ġangle : ĠAngle , ĊĠĠĠĠĠĠĠ Ġanchor X : ĠDouble , ĊĠĠĠĠĠĠĠ Ġanchor Y : ĠDouble ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreal Scale X Ġ= Ġ( content . un scaled Width Ġ/ Ġwidth ) Ġ* Ġzoom ĊĠĠĠĠĠĠĠ Ġval Ġreal Scale Y Ġ= Ġ( content . un scaled Height Ġ/ Ġheight ) Ġ* Ġzoom ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Container X Ġ= Ġwidth Ġ* Ġanchor X ĊĠĠĠĠĠĠĠ Ġval Ġcontent Container Y Ġ= Ġheight Ġ* Ġanchor Y ĊĊĠĠĠĠĠĠĠ Ġcontent . x Ġ= Ġ- x ĊĠĠĠĠĠĠĠ Ġcontent . y Ġ= Ġ- y ĊĠĠĠĠĠĠĠ Ġcontent Container . x Ġ= Ġcontent Container X ĊĠĠĠĠĠĠĠ Ġcontent Container . y Ġ= Ġcontent Container Y ĊĠĠĠĠĠĠĠ Ġcontent Container . rotation Ġ= Ġangle ĊĠĠĠĠĠĠĠ Ġcontent Container . scale X Ġ= Ġreal Scale X ĊĠĠĠĠĠĠĠ Ġcontent Container . scale Y Ġ= Ġreal Scale Y ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġset To ( camera : ĠCamera Old ) Ġ= Ġset To ( ĊĠĠĠĠĠĠĠ Ġcamera . x , ĊĠĠĠĠĠĠĠ Ġcamera . y , ĊĠĠĠĠĠĠĠ Ġcamera . width , ĊĠĠĠĠĠĠĠ Ġcamera . height , ĊĠĠĠĠĠĠĠ Ġcamera . zoom , ĊĠĠĠĠĠĠĠ Ġcamera . angle , ĊĠĠĠĠĠĠĠ Ġcamera . anchor X , ĊĠĠĠĠĠĠĠ Ġcamera . anchor Y ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ K orge Experimental Ċ class ĠCamera Old ( ĊĠĠĠ Ġx : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġy : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġwidth : ĠDouble Ġ= Ġ 1 0 0 . 0 , ĊĠĠĠ Ġheight : ĠDouble Ġ= Ġ 1 0 0 . 0 , ĊĠĠĠ Ġzoom : ĠDouble Ġ= Ġ 1 . 0 , ĊĠĠĠ Ġangle : ĠAngle Ġ= Ġ 0 . degrees , ĊĠĠĠ Ġoverride Ġvar Ġanchor X : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠ Ġoverride Ġvar Ġanchor Y : ĠDouble Ġ= Ġ 0 . 0 Ċ ) Ġ: ĠMutable Interpol able < Camera Old >, ĠInterpol able < Camera Old >, ĠAnchor able Ġ{ ĊĊĠĠĠ Ġvar Ġx : ĠDouble Ġby ĠObservable ( x , Ġbefore Ġ= Ġ{ Ġif Ġ( with Update ) Ġset To ( x Ġ= Ġit ) Ġ}) ĊĠĠĠ Ġvar Ġy : ĠDouble Ġby ĠObservable ( y , Ġbefore Ġ= Ġ{ Ġif Ġ( with Update ) Ġset To ( y Ġ= Ġit ) Ġ}) ĊĠĠĠ Ġvar Ġwidth : ĠDouble Ġby ĠObservable ( width , Ġbefore Ġ= Ġ{ Ġif Ġ( with Update ) Ġset To ( width Ġ= Ġit ) Ġ}) ĊĠĠĠ Ġvar Ġheight : ĠDouble Ġby ĠObservable ( height , Ġbefore Ġ= Ġ{ Ġif Ġ( with Update ) Ġset To ( height Ġ= Ġit ) Ġ}) ĊĠĠĠ Ġvar Ġzoom : ĠDouble Ġby ĠObservable ( zoom , Ġbefore Ġ= Ġ{ Ġif Ġ( with Update ) Ġset To ( zoom Ġ= Ġit ) Ġ}) ĊĠĠĠ Ġvar Ġangle : ĠAngle Ġby ĠObservable ( angle , Ġbefore Ġ= Ġ{ Ġif Ġ( with Update ) Ġset To ( angle Ġ= Ġit ) Ġ}) ĊĊĠĠĠ Ġinternal Ġvar Ġcontainer : ĠCamera Container Old ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcancel Following : ĠC ancellable ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġwith Update : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġinternal Ġfun Ġattach ( container : ĠCamera Container Old ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . container Ġ= Ġcontainer ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġdetach () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġwhen Ġwe Ġdon 't Ġwant Ġto Ġupdate ĠCamera Container ĊĠĠĠ Ġprivate Ġinline Ġfun Ġwithout Update ( callback : ĠCamera Old . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprev Ġ= Ġwith Update ĊĠĠĠĠĠĠĠ Ġwith Update Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠ Ġwith Update Ġ= Ġprev ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset To ( other : ĠCamera Old ) Ġ= Ġset To ( ĊĠĠĠĠĠĠĠ Ġother . x , ĊĠĠĠĠĠĠĠ Ġother . y , ĊĠĠĠĠĠĠĠ Ġother . width , ĊĠĠĠĠĠĠĠ Ġother . height , ĊĠĠĠĠĠĠĠ Ġother . zoom , ĊĠĠĠĠĠĠĠ Ġother . angle , ĊĠĠĠĠĠĠĠ Ġother . anchor X , ĊĠĠĠĠĠĠĠ Ġother . anchor Y ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġset To ( ĊĠĠĠĠĠĠĠ Ġx : ĠDouble Ġ= Ġthis . x , ĊĠĠĠĠĠĠĠ Ġy : ĠDouble Ġ= Ġthis . y , ĊĠĠĠĠĠĠĠ Ġwidth : ĠDouble Ġ= Ġthis . width , ĊĠĠĠĠĠĠĠ Ġheight : ĠDouble Ġ= Ġthis . height , ĊĠĠĠĠĠĠĠ Ġzoom : ĠDouble Ġ= Ġthis . zoom , ĊĠĠĠĠĠĠĠ Ġangle : ĠAngle Ġ= Ġthis . angle , ĊĠĠĠĠĠĠĠ Ġanchor X : ĠDouble Ġ= Ġthis . anchor X , ĊĠĠĠĠĠĠĠ Ġanchor Y : ĠDouble Ġ= Ġthis . anchor Y ĊĠĠĠ Ġ): ĠCamera Old Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( with Update ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer ?. set To ( x , Ġy , Ġwidth , Ġheight , Ġzoom , Ġangle , Ġanchor X , Ġanchor Y ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwithout Update Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġheight ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . zoom Ġ= Ġzoom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . angle Ġ= Ġangle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anchor X Ġ= Ġanchor X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . anchor Y Ġ= Ġanchor Y ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġt ween To ( other : ĠCamera Old , Ġtime : ĠTimeSpan , Ġeasing : ĠE asing Ġ= ĠE asing . LINEAR ) Ġ= Ġt ween To ( ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġother . x , ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġother . y , ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġother . width , ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġother . height , ĊĠĠĠĠĠĠĠ Ġzoom Ġ= Ġother . zoom , ĊĠĠĠĠĠĠĠ Ġangle Ġ= Ġother . angle , ĊĠĠĠĠĠĠĠ Ġanchor X Ġ= Ġother . anchor X , ĊĠĠĠĠĠĠĠ Ġanchor Y Ġ= Ġother . anchor Y , ĊĠĠĠĠĠĠĠ Ġtime Ġ= Ġtime , ĊĠĠĠĠĠĠĠ Ġeasing Ġ= Ġeasing ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġsuspend Ġfun Ġt ween To ( ĊĠĠĠĠĠĠĠ Ġx : ĠDouble Ġ= Ġthis . x , ĊĠĠĠĠĠĠĠ Ġy : ĠDouble Ġ= Ġthis . y , ĊĠĠĠĠĠĠĠ Ġwidth : ĠDouble Ġ= Ġthis . width , ĊĠĠĠĠĠĠĠ Ġheight : ĠDouble Ġ= Ġthis . height , ĊĠĠĠĠĠĠĠ Ġzoom : ĠDouble Ġ= Ġthis . zoom , ĊĠĠĠĠĠĠĠ Ġangle : ĠAngle Ġ= Ġthis . angle , ĊĠĠĠĠĠĠĠ Ġanchor X : ĠDouble Ġ= Ġthis . anchor X , ĊĠĠĠĠĠĠĠ Ġanchor Y : ĠDouble Ġ= Ġthis . anchor Y , ĊĠĠĠĠĠĠĠ Ġtime : ĠTimeSpan , ĊĠĠĠĠĠĠĠ Ġeasing : ĠE asing Ġ= ĠE asing . LINEAR ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinitial X Ġ= Ġthis . x ĊĠĠĠĠĠĠĠ Ġval Ġinitial Y Ġ= Ġthis . y ĊĠĠĠĠĠĠĠ Ġval Ġinitial Width Ġ= Ġthis . width ĊĠĠĠĠĠĠĠ Ġval Ġinitial Height Ġ= Ġthis . height ĊĠĠĠĠĠĠĠ Ġval Ġinitial Zoom Ġ= Ġthis . zoom ĊĠĠĠĠĠĠĠ Ġval Ġinitial Angle Ġ= Ġthis . angle ĊĠĠĠĠĠĠĠ Ġval Ġinitial Anchor X Ġ= Ġthis . anchor X ĊĠĠĠĠĠĠĠ Ġval Ġinitial Anchor Y Ġ= Ġthis . anchor Y ĊĠĠĠĠĠĠĠ Ġcontainer ?. t ween ( time Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) Ġ{ Ġratio Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset To ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġratio . interpolate ( initial X , Ġx ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġratio . interpolate ( initial Y , Ġy ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġratio . interpolate ( initial Width , Ġwidth ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġratio . interpolate ( initial Height , Ġheight ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġratio . interpolate ( initial Zoom , Ġzoom ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġratio . interpolate ( initial Angle , Ġangle ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġratio . interpolate ( initial Anchor X , Ġanchor X ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġratio . interpolate ( initial Anchor Y , Ġanchor Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfollow ( view : ĠView , Ġthreshold : ĠDouble Ġ= Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinside Ġ= Ġcontainer ?. content ?. let Ġ{ Ġview . has Ancestor ( it ) Ġ} Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! inside ) Ġthrow ĠIllegalStateException (" Can 't Ġfollow Ġview Ġthat Ġis Ġnot Ġin Ġthe Ġcontent Ġof ĠCamera Container ") ĊĠĠĠĠĠĠĠ Ġcancel Following ?. cancel () ĊĠĠĠĠĠĠĠ Ġcancel Following Ġ= Ġview . add Updater Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcamera Ġ= Ġthis @ Camera Old ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġview . x Ġ+ Ġview . width Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġview . y Ġ+ Ġview . height Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdx Ġ= Ġx Ġ- Ġcamera . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdy Ġ= Ġy Ġ- Ġcamera . y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abs ( dx ) Ġ> Ġthreshold Ġ|| Ġabs ( dy ) Ġ> Ġthreshold ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcamera . xy ( x Ġ- Ġdx . sign Ġ* Ġthreshold , Ġy Ġ- Ġdy . sign Ġ* Ġthreshold ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġun follow () Ġ{ ĊĠĠĠĠĠĠĠ Ġcancel Following ?. cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy ( ĊĠĠĠĠĠĠĠ Ġx : ĠDouble Ġ= Ġthis . x , ĊĠĠĠĠĠĠĠ Ġy : ĠDouble Ġ= Ġthis . y , ĊĠĠĠĠĠĠĠ Ġwidth : ĠDouble Ġ= Ġthis . width , ĊĠĠĠĠĠĠĠ Ġheight : ĠDouble Ġ= Ġthis . height , ĊĠĠĠĠĠĠĠ Ġzoom : ĠDouble Ġ= Ġthis . zoom , ĊĠĠĠĠĠĠĠ Ġangle : ĠAngle Ġ= Ġthis . angle , ĊĠĠĠĠĠĠĠ Ġanchor X : ĠDouble Ġ= Ġthis . anchor X , ĊĠĠĠĠĠĠĠ Ġanchor Y : ĠDouble Ġ= Ġthis . anchor Y ĊĠĠĠ Ġ) Ġ= ĠCamera Old ( ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġx , ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġy , ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġwidth , ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġheight , ĊĠĠĠĠĠĠĠ Ġzoom Ġ= Ġzoom , ĊĠĠĠĠĠĠĠ Ġangle Ġ= Ġangle , ĊĠĠĠĠĠĠĠ Ġanchor X Ġ= Ġanchor X , ĊĠĠĠĠĠĠĠ Ġanchor Y Ġ= Ġanchor Y ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġset To Interpol ated ( ratio : ĠDouble , Ġl : ĠCamera Old , Ġr : ĠCamera Old ) Ġ= Ġset To ( ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġratio . interpolate ( l . x , Ġr . x ), ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġratio . interpolate ( l . y , Ġr . y ), ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġratio . interpolate ( l . width , Ġr . width ), ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġratio . interpolate ( l . height , Ġr . height ), ĊĠĠĠĠĠĠĠ Ġzoom Ġ= Ġratio . interpolate ( l . zoom , Ġr . zoom ), ĊĠĠĠĠĠĠĠ Ġangle Ġ= Ġratio . interpolate ( l . angle , Ġr . angle ), ĊĠĠĠĠĠĠĠ Ġanchor X Ġ= Ġratio . interpolate ( l . anchor X , Ġr . anchor X ), ĊĠĠĠĠĠĠĠ Ġanchor Y Ġ= Ġratio . interpolate ( l . anchor Y , Ġr . anchor Y ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġinterpolate With ( ratio : ĠDouble , Ġother : ĠCamera Old ) Ġ= ĠCamera Old (). set To Interpol ated ( ratio , Ġthis , Ġother ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Camera (" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" x =$ x , Ġy =$ y , Ġwidth =$ width , Ġheight =$ height , Ġ" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" zoom =$ zoom , Ġangle =$ angle , Ġanchor X =$ anchor X , Ġanchor Y =$ anchor Y )" Ċ } Ċ Ċ fun ĠCamera Old . xy ( x : ĠDouble , Ġy : ĠDouble ): ĠCamera Old Ġ{ ĊĠĠĠ Ġreturn Ġset To ( x Ġ= Ġx , Ġy Ġ= Ġy ) Ċ } Ċ Ċ fun ĠCamera Old . size ( width : ĠDouble , Ġheight : ĠDouble ): ĠCamera Old Ġ{ ĊĠĠĠ Ġreturn Ġset To ( width Ġ= Ġwidth , Ġheight Ġ= Ġheight ) Ċ } Ċ Ċ fun ĠCamera Old . anchor ( anchor X : ĠDouble , Ġanchor Y : ĠDouble ): ĠCamera Old Ġ{ ĊĠĠĠ Ġreturn Ġset To ( anchor X Ġ= Ġanchor X , Ġanchor Y Ġ= Ġanchor Y ) Ċ } Ċ Ċ suspend Ġfun ĠCamera Old . moveTo ( x : ĠDouble , Ġy : ĠDouble , Ġtime : ĠTimeSpan , Ġeasing : ĠE asing Ġ= ĠE asing . LINEAR ) Ġ{ ĊĠĠĠ Ġt ween To ( x Ġ= Ġx , Ġy Ġ= Ġy , Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) Ċ } Ċ Ċ suspend Ġfun ĠCamera Old . move By ( dx : ĠDouble , Ġdy : ĠDouble , Ġtime : ĠTimeSpan , Ġeasing : ĠE asing Ġ= ĠE asing . LINEAR ) Ġ{ ĊĠĠĠ Ġt ween To ( x Ġ= Ġx Ġ+ Ġdx , Ġy Ġ= Ġy Ġ+ Ġdy , Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) Ċ } Ċ Ċ suspend Ġfun ĠCamera Old . resize To ( width : ĠDouble , Ġheight : ĠDouble , Ġtime : ĠTimeSpan , Ġeasing : ĠE asing Ġ= ĠE asing . LINEAR ) Ġ{ ĊĠĠĠ Ġt ween To ( width Ġ= Ġwidth , Ġheight Ġ= Ġheight , Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) Ċ } Ċ Ċ suspend Ġfun ĠCamera Old . rotate ( angle : ĠAngle , Ġtime : ĠTimeSpan , Ġeasing : ĠE asing Ġ= ĠE asing . LINEAR ) Ġ{ ĊĠĠĠ Ġt ween To ( angle Ġ= Ġthis . angle Ġ+ Ġangle , Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) Ċ } Ċ Ċ suspend Ġfun ĠCamera Old . zoom ( value : ĠDouble , Ġtime : ĠTimeSpan , Ġeasing : ĠE asing Ġ= ĠE asing . LINEAR ) Ġ{ ĊĠĠĠ Ġt ween To ( zoom Ġ= Ġvalue , Ġtime Ġ= Ġtime , Ġeasing Ġ= Ġeasing ) Ċ } Ċ