/** Ċ Ġ* ĠDesign ed Ġand Ġdeveloped Ġby ĠSe ang hay ĠY ath Ġ(@ se ang hay ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . se ang hay . studio . gles . transition Ċ Ċ import Ġcom . se ang hay . studio . gles . graphics . Vector 4 f Ċ import Ġcom . se ang hay . studio . gles . graphics . uniform . uniform 1 f Ċ import Ġcom . se ang hay . studio . gles . graphics . uniform . uniform 4 f Ċ Ċ open Ġclass ĠBo unce Transition Ġ: ĠTransition (" bounce ", ĠSOURCE , Ġ 1 0 0 0 L ) Ġ{ ĊĊĠĠĠ Ġopen Ġvar Ġshadow Colour : ĠVector 4 f Ġ= ĠVector 4 f ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 . 6 f ) ĊĠĠĠ Ġopen Ġvar Ġshadow Colour Uniform Ġ= Ġuniform 4 f (" shadow _ colour "). auto Init () ĊĠĠĠ Ġopen Ġvar Ġshadow Height : ĠFloat Ġ= Ġ 0 . 0 7 5 f ĊĠĠĠ Ġopen Ġvar Ġshadow Height Uniform Ġ= Ġuniform 1 f (" shadow _ height "). auto Init () ĊĠĠĠ Ġopen Ġvar Ġbo unc es : ĠFloat Ġ= Ġ 3 f ĊĠĠĠ Ġopen Ġvar Ġbo unc es Uniform Ġ= Ġuniform 1 f (" bounc es "). auto Init () ĊĊĠĠĠ Ġoverride Ġfun ĠonUpdate Uniform s () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Update Uniform s () ĊĊĠĠĠĠĠĠĠ Ġshadow Colour Uniform . setValue ( shadow Colour ) ĊĠĠĠĠĠĠĠ Ġshadow Height Uniform . setValue ( shadow Height ) ĊĠĠĠĠĠĠĠ Ġbo unc es Uniform . setValue ( bounc es ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġlanguage = glsl ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSOURCE Ġ= Ġ""" Ċ // ĠAuthor : ĠAd rian ĠPur ser Ċ // ĠLicense : ĠMIT Ċ Ċ uniform Ġvec 4 Ġshadow _ colour ; Ġ// Ġ= Ġvec 4 ( 0 ., 0 ., 0 ., . 6 ) Ċ uniform Ġfloat Ġshadow _ height ; Ġ// Ġ= Ġ 0 . 0 7 5 Ċ uniform Ġfloat Ġbo unc es ; Ġ// Ġ= Ġ 3 . 0 Ċ Ċ const Ġfloat ĠPI Ġ= Ġ 3 . 1 4 1 5 9 2 6 5 3 5 8 ; Ċ Ċ vec 4 Ġtransition Ġ( vec 2 Ġuv ) Ġ{ ĊĠ Ġfloat Ġtime Ġ= Ġprogress ; ĊĠ Ġfloat Ġst ime Ġ= Ġsin ( time Ġ* ĠPI Ġ/ Ġ 2 .); ĊĠ Ġfloat Ġphase Ġ= Ġtime Ġ* ĠPI Ġ* Ġbo unc es ; ĊĠ Ġfloat Ġy Ġ= Ġ( abs ( cos ( phase ))) Ġ* Ġ( 1 . 0 Ġ- Ġst ime ); ĊĠ Ġfloat Ġd Ġ= Ġuv . y Ġ- Ġy ; ĊĠ Ġreturn Ġmix ( ĊĠĠĠ Ġmix ( ĊĠĠĠĠĠ Ġget To Color ( uv ), ĊĠĠĠĠĠ Ġshadow _ colour , ĊĠĠĠĠĠ Ġstep ( d , Ġshadow _ height ) Ġ* Ġ( 1 . Ġ- Ġmix ( ĊĠĠĠĠĠĠĠ Ġ(( d Ġ/ Ġshadow _ height ) Ġ* Ġshadow _ colour . a ) Ġ+ Ġ( 1 . 0 Ġ- Ġshadow _ colour . a ), ĊĠĠĠĠĠĠĠĠ 1 . 0 , ĊĠĠĠĠĠĠĠ Ġsmooth step ( 0 . 9 5 , Ġ 1 ., Ġprogress ) Ġ// Ġfade - out Ġthe Ġshadow Ġat Ġthe Ġend ĊĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ), ĊĠĠĠ Ġget From Color ( vec 2 ( uv . x , Ġuv . y Ġ+ Ġ( 1 . 0 Ġ- Ġy ))), ĊĠĠĠ Ġstep ( d , Ġ 0 . 0 ) ĊĠ Ġ); Ċ } ĊĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ} Ċ } Ċ