package Ġc ga . exercise . components . geometry . mesh Ċ Ċ import Ġc ga . exercise . components . geometry . I Render able Ċ import Ġc ga . exercise . components . geometry . transform able . Transform able Ċ import Ġc ga . exercise . components . shader . Shader Program Ċ import Ġorg . j om l . Matrix 4 f ĊĊ Ċ open Ġclass ĠRender able Base ( var Ġmeshes : ĠMutable List < Mesh >, Ġmodel Matrix : ĠMatrix 4 f Ġ= ĠMatrix 4 f (), Ġparent : ĠTransform able ? Ġ= Ġnull ) Ġ: ĠTransform able ( model Matrix , Ġparent ), ĊĠĠĠ ĠI Render able Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( shader Program : ĠShader Program ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshader Program . use () ĊĠĠĠĠĠĠĠ Ġshader Program . set Uniform (" model _ matrix " Ġ, Ġget World Model Matrix (), false ) ĊĠĠĠĠĠĠĠ Ġmeshes . forEach Ġ{ Ġm Ġ-> Ġm . render ( shader Program ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcleanup () Ġ{ ĊĠĠĠĠĠĠĠ Ġmeshes . forEach Ġ{ Ġit . cleanup () Ġ} ĊĠĠĠ Ġ} Ċ }