package Ġcom . yal antis . gl ata . motion . bounding shape Ċ Ċ import Ġcom . yal antis . gl ata . core . scene . Scene Params Ċ import Ġcom . yal antis . gl ata . motion . Ray Pick ing Ċ import Ġcom . yal antis . gl ata . primitive . Align Ċ import Ġcom . yal antis . gl ata . primitive . Vector 2 Ċ import Ġcom . yal antis . gl ata . primitive . Vector 3 Ċ Ċ class ĠBounding Rect ( ĊĠĠĠĠĠĠĠ Ġvar Ġwidth : ĠFloat , ĊĠĠĠĠĠĠĠ Ġvar Ġheight : ĠFloat , ĊĠĠĠĠĠĠĠ Ġval Ġposition : ĠVector 3 , ĊĠĠĠĠĠĠĠ Ġvar Ġalign : ĠAlign Ġ= ĠAlign . CENTER ) Ġ{ ĊĊĠĠĠ Ġvar Ġlast Touch Coords : ĠVector 2 ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġlast Touch Scene Coords : ĠVector 2 ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġset Size ( width : ĠFloat Ġ= Ġthis . width , Ġheight : ĠFloat Ġ= Ġthis . height ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġheight ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Position ( x : ĠFloat , Ġy : ĠFloat , Ġz : ĠFloat Ġ= Ġposition . z ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . position . set ( x , Ġy , Ġz ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Position ( position : ĠVector 3 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . position . set From ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Scene Coords Of Touch ( sp : ĠScene Params , Ġscreen X : ĠFloat , Ġscreen Y : ĠFloat ): ĠVector 2 Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRay Pick ing (). intersection With XO Y ( screen X , Ġscreen Y , Ġsp . camera . view Matrix , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp . camera . projection Matrix , Ġsp . camera . viewport Matrix ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck If Tou ched ( sp : ĠScene Params , Ġscreen X : ĠFloat , Ġscreen Y : ĠFloat ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtouched Coords Ġ= Ġfind Scene Coords Of Touch ( sp , Ġscreen X , Ġscreen Y ) ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġtouched Coords . x ĊĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġtouched Coords . y ĊĠĠĠĠĠĠĠ Ġval Ġis Tou ched Ġ= Ġx Ġ> Ġposition . x Ġ- Ġalign . get Left Margin ( width ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ< Ġposition . x Ġ+ Ġalign . get Right Margin ( width ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ> Ġposition . y Ġ- Ġalign . get Bottom Margin ( height ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ< Ġposition . y Ġ+ Ġalign . get Top Margin ( height ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Tou ched ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Touch Coords Ġ= ĠVector 2 ( screen X , Ġscreen Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Touch Scene Coords Ġ= Ġtouched Coords ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġis Tou ched ĊĠĠĠ Ġ} Ċ Ċ }