package Ġcom . example . sync lient . ar Logic Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . RadioButton Ċ import Ġandroid . widget . TextView Ċ import Ġcom . example . sync lient . R Ċ import Ġcom . google . ar . core . Anchor Ċ import Ġcom . google . ar . scene form . Anchor Node Ċ import Ġcom . google . ar . scene form . math . Quaternion Ċ import Ġcom . google . ar . scene form . math . Vector 3 Ċ import Ġcom . google . ar . scene form . rendering . View Render able Ċ import Ġcom . google . ar . scene form . ux . Ar Fragment Ċ import Ġcom . google . ar . scene form . ux . Transform able Node ĊĊ Ċ /** Ċ Ġ* ĠÐļ Ð»Ð°ÑģÑģ ĠPort View Builder Ċ Ġ* Ċ Ġ* ĠÐļ Ð»Ð°ÑģÑģ ĠÐ´Ð»Ñı ĠÑģÐ¾Ð·Ð´ Ð°Ð½Ð¸Ñı ĠÐ¸ ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ñı ĠÐ¾Ð± ÑĮ ÐµÐºÑĤ Ð° ĠÐ¿ Ð¾ÑĢ ÑĤÐ° ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ²Ð° . Ċ Ġ*/ Ċ class ĠPort View Builder Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġnode : ĠTransform able Node ĊĠĠĠ Ġlateinit Ġvar Ġview : ĠView ĊĠĠĠ Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġlateinit Ġvar Ġinfo View : ĠView ĊĠĠĠ Ġlateinit Ġvar Ġport Radio : ĠRadio Button ĊĠĠĠ Ġvar Ġis Checked Ġ= Ġfalse ĊĠĠĠ Ġvar Ġport Color Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐľ ÐµÑĤ Ð¾Ð´ ĠÐ´Ð»Ñı ĠÑģÐ¾Ð·Ð´ Ð°Ð½Ð¸Ñı ĠÐ¸ ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ñı ĠÐ¿ Ð¾ÑĢ ÑĤÐ° ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ²Ð° . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠÐľ ÐµÑĤ Ð¾Ð´ ĠÑģÐ¾Ð·Ð´ Ð°ÐµÑĤ ĠÐ¾Ð± ÑĮ ÐµÐºÑĤ Ġview Render able ĠÑģ ĠÐ· Ð°ÑĢ Ð°Ð½ ÐµÐµ ĠÐ·Ð°Ð´ Ð°Ð½ Ð½ÑĭÐ¼ Ġport _ layout . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġar Fragment ĠÐŃ Ðº Ð· ÐµÐ¼ Ð¿ Ð»Ñı ÑĢ Ġar Fragment ĠÐ¸Ð· ĠAR Core . ĊĠĠĠĠ Ġ* Ġ@ param Ġanchor ĠÐŃ Ðº Ð· ÐµÐ¼ Ð¿ Ð»Ñı ÑĢ ĠAnchor ĠÐ¸Ð· ĠAR Core . ĊĠĠĠĠ Ġ* Ġ@ param Ġport Number ĠÐĿ Ð¾Ð¼ ÐµÑĢ ĠÐ¿ Ð¾ÑĢ ÑĤÐ° . ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠÐļ Ð¾Ð½ ÑĤ ÐµÐº ÑģÑĤ ĠÐ° Ðº ÑĤ Ð¸Ð² Ð¸ÑĤ Ð¸ ĠÑĢÐ°Ð±Ð¾ÑĤ Ñĭ ĠÑģ ĠÐº Ð°Ð¼ ÐµÑĢ Ð¾Ð¹ . ĊĠĠĠĠ Ġ* Ġ@ param Ġx ĠÐļ Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤÐ° ĠÐ¾Ñģ Ð¸ Ġx . ĊĠĠĠĠ Ġ* Ġ@ param Ġy ĠÐļ Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤÐ° ĠÐ¾Ñģ Ð¸ Ġy . ĊĠĠĠĠ Ġ* Ġ@ param Ġz ĠÐļ Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤÐ° ĠÐ¾Ñģ Ð¸ Ġz . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Port ( ĊĠĠĠĠĠĠĠ Ġar Fragment : ĠAr Fragment , ĊĠĠĠĠĠĠĠ Ġanchor : ĠAnchor , ĊĠĠĠĠĠĠĠ Ġport Number : ĠInt , ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġvector : ĠVector 3 , ĊĠĠĠĠĠĠĠ Ġquaternion : ĠQuaternion ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ ĠView Render able . builder (). setView ( context , ĠR . layout . port _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Accept Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Port ( ar Fragment , Ġanchor , Ġit , Ġport Number , Ġvector , Ġquaternion ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐľ ÐµÑĤ Ð¾Ð´ ĠÐ´Ð»Ñı ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ñı ĠÐ¸ ĠÑģ Ð´ Ð² Ð¸Ð³ Ð° ĠÐ¾Ð± ÑĮ ÐµÐºÑĤ Ð° ĠÐ¿ Ð¾ÑĢ ÑĤÐ° ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ²Ð° . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠÐľ ÐµÑĤ Ð¾Ð´ ĠÐ¿ÑĢ Ð¸Ð½ Ð¸Ð¼ Ð°ÐµÑĤ Ġview Render able ĠÐ¸ ĠÐ¿ÐµÑĢ ÐµÐ´ Ð² Ð¸Ð³ Ð°ÐµÑĤ ĠÐ²Ð¸Ð´ Ð¶ ÐµÑĤ ĠÐ¿Ð¾ ĠÐ¾ÑĤ Ð½Ð¾ ÑĪ ÐµÐ½Ð¸ Ñİ ĠÐº Ġanchor . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġar Fragment ĠÐŃ Ðº Ð· ÐµÐ¼ Ð¿ Ð»Ñı ÑĢ Ġar Fragment ĠÐ¸Ð· ĠAR Core . ĊĠĠĠĠ Ġ* Ġ@ param Ġanchor ĠÐŃ Ðº Ð· ÐµÐ¼ Ð¿ Ð»Ñı ÑĢ ĠAnchor ĠÐ¸Ð· ĠAR Core . ĊĠĠĠĠ Ġ* Ġ@ param Ġview Render able ĠÐŃ Ðº Ð· ÐµÐ¼ Ð¿ Ð»Ñı ÑĢ ĠView Render able ĠÐ´Ð»Ñı ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ñı ĠÐ²Ð¸Ð´ Ð¶ ÐµÑĤ Ð° ĠÐ¸Ð· ĠAR Core . ĊĠĠĠĠ Ġ* Ġ@ param Ġport Number ĠÐĿ Ð¾Ð¼ ÐµÑĢ ĠÐ¿ Ð¾ÑĢ ÑĤÐ° . ĊĠĠĠĠ Ġ* Ġ@ param Ġx ĠÐļ Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤÐ° ĠÐ¾Ñģ Ð¸ Ġx . ĊĠĠĠĠ Ġ* Ġ@ param Ġy ĠÐļ Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤÐ° ĠÐ¾Ñģ Ð¸ Ġy . ĊĠĠĠĠ Ġ* Ġ@ param Ġz ĠÐļ Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤÐ° ĠÐ¾Ñģ Ð¸ Ġz . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdisplay Port ( ĊĠĠĠĠĠĠĠ Ġar Fragment : ĠAr Fragment , ĊĠĠĠĠĠĠĠ Ġanchor : ĠAnchor , ĊĠĠĠĠĠĠĠ Ġview Render able : ĠView Render able , ĊĠĠĠĠĠĠĠ Ġport Number : ĠInt , ĊĠĠĠĠĠĠĠ Ġvector : ĠVector 3 , ĊĠĠĠĠĠĠĠ Ġquaternion : ĠQuaternion ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġanchor Node Ġ= ĠAnchor Node ( anchor ) ĊĠĠĠĠĠĠĠ Ġnode Ġ= ĠTransform able Node ( ar Fragment . transformation System ) ĊĊĠĠĠĠĠĠĠ Ġnode . scale Controller . min Scale Ġ= Ġ 0 . 0 2 5 0 f ĊĠĠĠĠĠĠĠ Ġnode . scale Controller . max Scale Ġ= Ġ 0 . 0 2 5 1 f ĊĊĠĠĠĠĠĠĠ Ġ// Ðļ Ð¾ÑĢ ÑĢ ÐµÐº ÑĤÐ¸ ÑĢÑĥ ÐµÑĤ ĠÑĢÐ°Ñģ Ð¿ Ð¾Ð» Ð¾Ð¶ ÐµÐ½Ð¸Ðµ ĠÐ²Ð¸Ð´ Ð¶ ÐµÑĤ Ð° ĠÐ² ĠÐ· Ð°Ð² Ð¸Ñģ Ð¸Ð¼Ð¾ÑģÑĤ Ð¸ ĠÐ¾ÑĤ ĠÐ½ Ð°Ð¹ Ð´ ÐµÐ½ Ð½Ð¾Ð³Ð¾ Ġanchor . ĊĠĠĠĠĠĠĠ Ġnode . world Position Ġ= Ġvector ĊĠĠĠĠĠĠĠ Ġnode . world Rotation Ġ= Ġquaternion ĊĠĠĠĠĠĠĠ Ġnode . parent Ġ= Ġanchor Node ĊĠĠĠĠĠĠĠ Ġnode . render able Ġ= Ġview Render able ĊĠĠĠĠĠĠĠ Ġar Fragment . ar Scene View . scene . addChild ( anchor Node ) ĊĠĠĠĠĠĠĠ Ġnode . select () ĊĠĠĠĠĠĠĠ Ġ// ÐĿ Ð° ÑħÐ¾Ð´ Ð¸ ÑĪ ÑĮ ĠÐ½Ðµ Ð¾Ð±ÑħÐ¾Ð´ Ð¸Ð¼ ÑĭÐ¹ ĠTextView ĠÐ´Ð»Ñı ĠÐ¾ÑĤ Ð¾Ð± ÑĢ Ð¾Ð¶ ÐµÐ½Ð¸Ñı ĠÐ½ Ð¾Ð¼ ÐµÑĢÐ° ĠÐ¿ Ð¾ÑĢ ÑĤÐ° . ĊĠĠĠĠĠĠĠ Ġview Ġ= Ġview Render able . view ĊĠĠĠĠĠĠĠ Ġport Radio Ġ= Ġview . findViewById < RadioButton >( R . id . port Checked ) ĊĠĠĠĠĠĠĠ Ġvar Ġport Text Ġ= Ġview . findViewById < TextView >( R . id . port Number Text ) ĊĠĠĠĠĠĠĠ Ġport Text . text Ġ= Ġ" Port Ġ$ port Number " ĊĠĠĠĠĠĠĠ Ġval Ġview Port Ġ= Ġview . findViewById < View >( R . id . port View ) ĊĠĠĠĠĠĠĠ Ġport Radio . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġ! isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġport Radio . isChecked Ġ= Ġis Checked ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Port Status () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġ! isChecked ĊĠĠĠĠĠĠĠ Ġport Radio . isChecked Ġ= Ġis Checked ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstat ust To ( status : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġstatus ĊĠĠĠĠĠĠĠ Ġport Radio . isChecked Ġ= Ġis Checked ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Active ( isEnabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġport Radio . isEnabled Ġ= Ġis Enabled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Port Color ( color : ĠInt , Ġsave : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( save ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġport Color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ Ġval Ġcolor State List Ġ= ĠColor State List ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf (- android . R . attr . state _ enabled ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( android . R . attr . state _ enabled ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . GRAY , Ġ Ġ// Ġdisabled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ// Ġenabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġport Radio . button Tint List Ġ= Ġcolor State List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Port Text ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġport Text Ġ= Ġview . findViewById < TextView >( R . id . port Number Text ) ĊĠĠĠĠĠĠĠ Ġport Text . text Ġ= Ġtext ĊĠĠĠ Ġ} Ċ Ċ }