package Ġcom . ak uw al ink . ball . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . ak uw al ink . ball . My Application Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . util . ArrayList Ċ Ċ /** Ċ Ġ* Ġ@ param Ġfname Ġæ¨¡ åŀĭ æĸĩä»¶ åĲį Ċ Ġ* Ġ åĬłè½½ é¡¶ çĤ¹ åĿĲæłĩ Ċ Ġ*/ Ċ fun Ġload V OBJ ( fname : String , context : ĠContext ): Float Array ? { ĊĠĠĠ Ġval Ġver _ min = ArrayList < Float >() ĊĠĠĠ Ġvar Ġvertex = ArrayList < Float >() ĊĠĠĠ Ġvar Ġresult : Float Array ?= null ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput = context . resources . assets . open ( fname ) ĊĠĠĠĠĠĠĠ Ġval Ġis r = InputStream Reader ( input ) ĊĠĠĠĠĠĠĠ Ġval Ġbr = BufferedReader ( isr ) ĊĠĠĠĠĠĠĠ Ġvar Ġs : String ?= br . readLine () ĊĠĠĠĠĠĠĠ Ġwhile ( s != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġss = s . split (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ss [ 0 ]. trim (). equals (" v ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex . add ( ss [ 1 ]. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex . add ( ss [ 2 ]. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex . add ( ss [ 3 ]. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif ( ss [ 0 ]. trim (). equals (" f ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 3 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex = ss [ i ]. split ("/ ")[ 0 ]. toInt ()- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver _ min . add ( vertex [ 3 * index ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver _ min . add ( vertex [ 3 * index + 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver _ min . add ( vertex [ 3 * index + 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs = br . readLine () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinput . close () ĊĠĠĠĠĠĠĠ Ġis r . close () ĊĠĠĠĠĠĠĠ Ġbr . close () ĊĠĠĠĠĠĠĠ Ġresult = ver _ min . toFloat Array () ĊĊĠĠĠ Ġ} catch Ġ( e : IOException ){ ĊĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ param Ġfname Ġæ¨¡ åŀĭ æĸĩä»¶ åĲį Ċ Ġ* Ġ åĬłè½½ çº ¹ çĲĨ æķ°æį® Ċ Ġ*/ Ċ fun Ġload TO BJ ( fname : String , context : ĠContext ): Float Array ? { ĊĠĠĠ Ġval Ġver _ min = ArrayList < Float >() ĊĠĠĠ Ġvar Ġvertex _ T = ArrayList < Float >() ĊĠĠĠ Ġvar Ġresult : Float Array ?= null ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput = context . resources . assets . open ( fname ) ĊĠĠĠĠĠĠĠ Ġval Ġis r = InputStream Reader ( input ) ĊĠĠĠĠĠĠĠ Ġval Ġbr = BufferedReader ( isr ) ĊĠĠĠĠĠĠĠ Ġvar Ġs : String ?= br . readLine () ĊĠĠĠĠĠĠĠ Ġwhile ( s != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġss = s . split (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ss [ 0 ]. trim (). equals (" vt ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex _ T . add ( ss [ 1 ]. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex _ T . add ( ss [ 2 ]. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif ( ss [ 0 ]. trim (). equals (" f ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 3 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex = ss [ i ]. split ("/ ")[ 1 ]. toInt ()- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver _ min . add ( vertex _ T [ 2 * index ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver _ min . add ( vertex _ T [ 2 * index + 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs = br . readLine () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinput . close () ĊĠĠĠĠĠĠĠ Ġis r . close () ĊĠĠĠĠĠĠĠ Ġbr . close () ĊĠĠĠĠĠĠĠ Ġresult = ver _ min . toFloat Array () ĊĊĠĠĠ Ġ} catch Ġ( e : IOException ){ ĊĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ param Ġfname Ġæ¨¡ åŀĭ æĸĩä»¶ åĲį Ċ Ġ* Ġ åĬłè½½ é¡¶ çĤ¹ æ³ķ åĲĳ éĩı Ċ Ġ*/ Ċ fun Ġload V NO BJ ( fname : String , context : ĠContext ): Float Array ? { ĊĠĠĠ Ġval Ġver _ min = ArrayList < Float >() ĊĠĠĠ Ġvar Ġvertex _ N = ArrayList < Float >() ĊĠĠĠ Ġvar Ġresult : Float Array ?= null ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput = context . resources . assets . open ( fname ) ĊĠĠĠĠĠĠĠ Ġval Ġis r = InputStream Reader ( input ) ĊĠĠĠĠĠĠĠ Ġval Ġbr = BufferedReader ( isr ) ĊĠĠĠĠĠĠĠ Ġvar Ġs : String ?= br . readLine () ĊĠĠĠĠĠĠĠ Ġwhile ( s != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġss = s . split (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ss [ 0 ]. trim (). equals (" vn ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex _ N . add ( ss [ 1 ]. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex _ N . add ( ss [ 2 ]. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex _ N . add ( ss [ 3 ]. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif ( ss [ 0 ]. trim (). equals (" f ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 3 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex = ss [ i ]. split ("/ ")[ 2 ]. toInt ()- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver _ min . add ( vertex _ N [ 3 * index ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver _ min . add ( vertex _ N [ 3 * index + 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver _ min . add ( vertex _ N [ 3 * index + 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs = br . readLine () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinput . close () ĊĠĠĠĠĠĠĠ Ġis r . close () ĊĠĠĠĠĠĠĠ Ġbr . close () ĊĠĠĠĠĠĠĠ Ġresult = ver _ min . toFloat Array () ĊĊĠĠĠ Ġ} catch Ġ( e : IOException ){ ĊĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ }