package Ġcom . in nov att ic . gdx ar sample . ui . model . andy Ċ Ċ import Ġandroid . opengl . GLES 2 0 Ċ import Ġcom . badlogic . gdx . assets . Asset Manager Ċ import Ġcom . badlogic . gdx . assets . loaders . resolvers . Internal File Handle Resolver Ċ import Ġcom . badlogic . gdx . graphics . Texture Ċ import Ġcom . badlogic . gdx . graphics . g 3 d . Material Ċ import Ġcom . badlogic . gdx . graphics . g 3 d . Model Ċ import Ġcom . badlogic . gdx . graphics . g 3 d . Model Instance Ċ import Ġcom . badlogic . gdx . graphics . g 3 d . attributes . Bl ending Attribute Ċ import Ġcom . badlogic . gdx . graphics . g 3 d . attributes . Texture Attribute Ċ import Ġcom . badlogic . gdx . graphics . g 3 d . loader . Obj Loader Ċ import Ġcom . badlogic . gdx . graphics . g 3 d . utils . Model Builder Ċ Ċ /** Ċ Ġ* ĠModel Ġof ĠAnd y Ġthe ĠAndroid . ĠThis Ġincludes Ġloading Ġ 2 ĠOBJ Ġmodels Ġand Ġcombining Ġthem Ġinto Ġone Ġmodel . Ċ Ġ* ĠThe Ġassets Ġare Ġloaded Ġusing Ġthe Ġinternal Ġfile Ġloader , Ġso Ġthe Ġpath Ġto Ġthe Ġassets Ġis Ġrelative Ġto Ċ Ġ* Ġsrc / main / assets Ġin Ġthe Ġsource Ġproject . Ċ Ġ*/ Ċ class ĠAnd y Model Loader ( asset Manager : ĠAsset Manager ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġmodel : ĠModel ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa Ġnew Ġmodel . ĠThe Ġasset Ġmanager Ġis Ġused Ġto Ġbegin Ġthe Ġasynchronous Ġloading Ġof Ġthe Ġmodel ĊĠĠĠĠ Ġ* Ġassets . ĠTo Ġmake Ġsure Ġthe Ġassets Ġare Ġloaded , Ġthe Ġcaller Ġneeds Ġto Ġadd Ġasset Manager . update () Ġto ĊĠĠĠĠ Ġ* Ġthe Ġrender () Ġmethod . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġasset Manager . set Loader ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠModel :: class . java , Ġ". obj ", ĠObj Loader ( Internal File Handle Resolver ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġobj Loader Parameters Ġ= ĠObj Loader . Obj Loader Parameters () ĊĠĠĠĠĠĠĠ Ġobj Loader Parameters . flip V Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġasset Manager . load ( AND Y _ MODEL , ĠModel :: class . java , Ġobj Loader Parameters ) ĊĠĠĠĠĠĠĠ Ġasset Manager . load ( AND Y _ SH ADOW _ MODEL , ĠModel :: class . java , Ġobj Loader Parameters ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitializes Ġthe Ġmodel . ĠThis Ġneeds Ġto Ġbe Ġcalled Ġwhen Ġthe Ġmodel Ġassets Ġare Ġloaded Ġinto Ġmemory . ĠIf ĊĠĠĠĠ Ġ* Ġthey Ġcannot Ġbe Ġfound Ġyet , Ġit Ġis Ġassumed Ġthat Ġthey Ġare Ġstill Ġloading . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinitialize ( asset Manager : ĠAsset Manager ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isInitialized ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! asset Manager . is Loaded ( AND Y _ MODEL , ĠModel :: class . java ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! asset Manager . is Loaded ( AND Y _ SH ADOW _ MODEL , ĠModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġasset Manager . get ( AND Y _ MODEL , ĠModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġshadow Ġ= Ġasset Manager . get ( AND Y _ SH ADOW _ MODEL , ĠModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( body Ġ!= Ġnull Ġ&& Ġshadow Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Material Ġ= ĠMaterial ( Texture Attribute . create Diffuse ( Texture ( AND Y _ TEXTURE ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshadow Material Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial ( Texture Attribute . create Diffuse ( Texture ( AND Y _ SH ADOW _ TEXTURE ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Material . set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBl ending Attribute ( true , ĠGLES 2 0 . GL _ ZERO , ĠGLES 2 0 . GL _ ONE _ MINUS _ SRC _ ALPHA , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠModel Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . begin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( part Ġin Ġbody . mesh Parts ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . part ( part , Ġbody Material ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( part Ġin Ġshadow . mesh Parts ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . part ( part , Ġshadow Material ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Ġ= Ġbuilder . end () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Instance (): ĠModel Instance Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠModel Instance ( model ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Initialized () Ġ= Ġmodel Ġ!= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAND Y _ MODEL Ġ= Ġ" models / andy / andy . obj " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAND Y _ TEXTURE Ġ= Ġ" models / andy / andy . png " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAND Y _ SH ADOW _ MODEL Ġ= Ġ" models / andy / andy _ shadow . obj " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAND Y _ SH ADOW _ TEXTURE Ġ= Ġ" models / andy / andy _ shadow . png " ĊĠĠĠ Ġ} Ċ } Ċ