/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠAl berto ĠIr ur ue ta ĠCar ro Ġ( al berto @ ir ur ue ta . com ) Ċ Ġ* Ċ Ġ* Ġ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 . ir ur ue ta . android . gl . cube Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġcom . ir ur ue ta . android . gl utils . GL Texture View Ċ import Ġcom . ir ur ue ta . geometry . Camera Exception Ċ import Ġcom . ir ur ue ta . geometry . Pin hole Camera Ċ Ċ /** Ċ Ġ* ĠDraw s Ġa Ġ 3 D Ġcube Ġusing Ġa Ġ[ GL Texture View ], Ġwhich Ġallows Ġtransparent Ġbackground Ċ Ġ* Ġand Ġother Ġview Ġeffects Ġand Ġanimations . Ċ Ġ*/ Ċ class ĠCube Texture View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠGL Texture View ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRenderer Ġin Ġcharge Ġof Ġdrawing Ġthe Ġscene . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġcube Renderer : ĠCube Renderer Ġ= ĠCube Renderer ( context ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġlistener Ġbeing Ġnotified Ġwhen ĠGL Ġsurface Ġis Ġcreated Ġand Ġchanges Ġits Ġsize . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġon Surface Changed Listener ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . on Surface Changed Listener ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . on Surface Changed Listener Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDiff use Ġcolor Ġto Ġbe Ġused Ġfor Ġlight ing Ġpurposes . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ* ĠThis Ġis Ġonly Ġtaken Ġinto Ġaccount Ġif Ġnormals Ġare Ġused . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġdiffuse Color ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . diffuse Color ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . diffuse Color Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġorientation Ġto Ġcompute Ġa Ġpin hole Ġcamera Ġexpressed Ġin Ġview Ġcoordinates . ĊĠĠĠĠ Ġ* ĠIf Ġorientation Ġis Ġunknown , Ġview Ġcamera Ġis Ġnot Ġused . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġorientation ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . orientation ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . orientation Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠColor Ġto Ġclear Ġthe Ġscene . ĊĠĠĠĠ Ġ* ĠIf Ġclear Ġcolor Ġis Ġtransparent , Ġviews Ġbehind Ġthis Ġview Ġwill Ġbe Ġvisible . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġclear Color ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . clear Color ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . clear Color Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġcube Ġsize . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcube Size ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . cube Size ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . cube Size Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCube Ġposition . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcube Position ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . cube Position ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . cube Position Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCube Ġrotation . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcube Rotation ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . cube Rotation ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . cube Rotation Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġnear Ġplane Ġvalue . ĊĠĠĠĠ Ġ* ĠAny Ġvertex Ġne arer Ġto Ġthe Ġcamera Ġthan Ġthis Ġvalue Ġis Ġignored Ġand Ġnot Ġdrawn . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġnear Plane : ĠFloat ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . near Plane Ġ?: ĠCube Renderer . DEFAULT _ NEAR _ PL ANE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . near Plane Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġfar Ġplane Ġvalue . ĊĠĠĠĠ Ġ* ĠAny Ġvertex Ġfurther Ġfrom Ġthe Ġcamera Ġthan Ġthis Ġvalue Ġis Ġignored Ġand Ġnot Ġdrawn . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġfar Plane : ĠFloat ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . far Plane Ġ?: ĠCube Renderer . DEFAULT _ FAR _ PL ANE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . far Plane Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġnear Ġand Ġfar Ġplane Ġvalues Ġand Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ* ĠAny Ġvertex Ġne arer Ġto Ġthe Ġcamera Ġthan Ġthe Ġnear Ġplane , Ġor Ġany Ġvertex Ġfurther ĊĠĠĠĠ Ġ* Ġfrom Ġthe Ġcamera Ġthan Ġthe Ġfar Ġplane Ġis Ġignored Ġand Ġnot Ġdrawn . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġnear Plane Ġnear Ġplane . ĊĠĠĠĠ Ġ* Ġ@ param Ġfar Plane Ġfar Ġplane . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Near Far Planes ( near Plane : ĠFloat , Ġfar Plane : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcube Renderer . set Near Far Planes ( near Plane , Ġfar Plane ) ĊĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġcamera Ġdefining Ġpoint Ġof Ġview Ġto Ġdraw Ġthe Ġscene . ĊĠĠĠĠ Ġ* ĠThis Ġcamera Ġdoes Ġnot Ġtake Ġinto Ġaccount ĠAndroid Ġview Ġcoordinates , Ġin ĠLay man ĊĠĠĠĠ Ġ* Ġterms Ġthis Ġmeans Ġthat Ġy Ġcoordinates Ġincrease Ġup wards . ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠCamera Exception Ġif Ġthere Ġare Ġnumerical Ġinst abilities Ġin Ġprovided Ġcamera . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcamera ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . camera ĊĠĠĠĠĠĠĠ Ġ@ Throws ( Camera Exception :: class ) ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . camera Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġcamera Ġthat Ġdefines Ġpoint Ġof Ġview Ġto Ġdraw Ġthe Ġscene Ġexpressed Ġin ĊĠĠĠĠ Ġ* ĠAndroid Ġview Ġcoordinates . ĊĠĠĠĠ Ġ* ĠThis Ġis Ġonly Ġavailable Ġor Ġcan Ġonly Ġbe Ġset Ġif Ġsurface Ġis Ġinitialized Ġand Ġorientation Ġis ĊĠĠĠĠ Ġ* Ġdefined Ġ( not Ġunknown ). ĊĠĠĠĠ Ġ* ĠSetter Ġrequests Ġto Ġrender Ġa Ġframe . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġvalue Ġto Ġbe Ġset Ġis Ġnot Ġnull Ġwhen Ġorientation Ġis Ġunknown , ĊĠĠĠĠ Ġ* Ġor Ġif Ġvalue Ġto Ġbe Ġset Ġis Ġnull Ġwhen Ġorientation Ġis Ġknown . ĊĠĠĠĠ Ġ* Ġ@ throws ĠCamera Exception Ġif Ġthere Ġare Ġnumerical Ġinst abilities Ġin Ġprovided Ġcamera . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġview Camera ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . view Camera ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class , ĠCamera Exception :: class ) ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . view Camera Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġcamera Ġintr insic Ġparameters . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġprovided Ġvalue Ġis Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcamera Intr insic Parameters ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . camera Intr insic Parameters ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . camera Intr insic Parameters Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġcamera Ġcenter Ġposition . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġprovided Ġvalue Ġis Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcamera Center ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . camera Center ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . camera Center Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġcamera Ġrotation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġprovided Ġvalue Ġis Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcamera Rotation ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . camera Rotation ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . camera Rotation Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġview Ġcamera Ġintr insic Ġparameters . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalStateException Ġif Ġorientation Ġis Ġunknown . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġprovided Ġvalue Ġis Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġview Camera Intr insic Parameters ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . view Camera Intr insic Parameters ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalStateException :: class , ĠIllegalArgumentException :: class ) ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . view Camera Intr insic Parameters Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġview Ġcamera Ġcenter Ġposition . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalStateException Ġif Ġorientation Ġis Ġunknown . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġprovided Ġvalue Ġis Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġview Camera Center ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . view Camera Center ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalStateException :: class , ĠIllegalArgumentException :: class ) ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . view Camera Center Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġor Ġsets Ġview Ġcamera Ġrotation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalStateException Ġif Ġorientation Ġis Ġunknown . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġprovided Ġvalue Ġis Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġview Camera Rotation ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcube Renderer . view Camera Rotation ĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalStateException :: class , ĠIllegalArgumentException :: class ) ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcube Renderer . view Camera Rotation Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġall Ġrequired Ġvalues Ġto Ġcompute Ġthe Ġscene Ġcamera Ġmatrices . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġnear Plane Ġnear Ġplane . ĠAny Ġvertex Ġne arer Ġto Ġthe Ġcamera Ġthan Ġthis Ġvalue Ġwill Ġbe Ġignored ĊĠĠĠĠ Ġ* Ġand Ġnot Ġdrawn . ĊĠĠĠĠ Ġ* Ġ@ param Ġfar Plane Ġfar Ġplane . ĠAny Ġvertex Ġfurther Ġfrom Ġthe Ġcamera Ġthan Ġthis Ġvalue Ġwill Ġbe Ġignored ĊĠĠĠĠ Ġ* Ġand Ġnot Ġdrawn . ĊĠĠĠĠ Ġ* Ġ@ param Ġcamera Ġcamera Ġto Ġbe Ġset . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ throws ĠCamera Exception Ġif Ġthere Ġare Ġnumerical Ġinst abilities Ġin Ġprovided Ġcamera . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Camera Exception :: class ) ĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġset Values ( near Plane : ĠFloat , Ġfar Plane : ĠFloat , Ġcamera : ĠPin hole Camera ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcube Renderer . set Values ( near Plane , Ġfar Plane , Ġcamera ) ĊĠĠĠĠĠĠĠ Ġrequest Render () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġwindow Ġis Ġdet ached . ĊĠĠĠĠ Ġ* ĠDest ro ys ĠOpenGL Ġprogram . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Detached From Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġcube Renderer . destroy () ĊĠĠĠĠĠĠĠ Ġsuper . on Detached From Window () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġan ĠOpenGL ĠES Ġ 2 . 0 Ġcontext ĊĠĠĠĠĠĠĠ Ġset EGL Context Client Version ( 2 ) ĊĠĠĠĠĠĠĠ Ġ// Ġenforce Ġtransparent Ġbackground ĊĠĠĠĠĠĠĠ Ġis Opaque Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset EGL Config Chooser ( 8 , Ġ 8 , Ġ 8 , Ġ 8 , Ġ 1 6 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġrender Ġonly Ġwhen Ġnew Ġcamera Ġposition Ġis Ġset . ĊĠĠĠĠĠĠĠ Ġset Renderer ( cube Renderer ) ĊĊĠĠĠĠĠĠĠ Ġrender Mode Ġ= ĠR ENDER MODE _ WHEN _ DIR TY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠListener Ġto Ġnotify Ġwhen Ġsurface Ġsize Ġchanges . ĊĠĠĠĠ Ġ* ĠThis Ġcan Ġbe Ġused Ġto Ġinitialize Ġthis Ġview Ġonce Ġthe Ġunderlying ĠOpenGL Ġsurface Ġis Ġinitialized . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn Surface Changed Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalled Ġwhen Ġsurface Ġsize Ġchanges . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġwidth Ġwidth Ġof Ġsurface Ġexpressed Ġin Ġpixels . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġheight Ġheight Ġof Ġsurface Ġexpressed Ġin Ġpixels . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġon Surface Changed ( width : ĠInt , Ġheight : ĠInt ) ĊĠĠĠ Ġ} Ċ }