package Ġsilent orb . my th ic . looking lass . meshes . loading Ċ Ċ import Ġsilent orb . my th ic . spatial . Matrix Ċ import Ġsilent orb . my th ic . sc ener y .* Ċ Ċ fun Ġload Bounding Shape ( get Triangles : ĠGet Triangles ): Ġ( Map < String , ĠAny >) Ġ-> ĠShape ? Ġ= Ġ{ Ġsource Ġ-> ĊĠ Ġval Ġtype Ġ= Ġsource [" type "] Ġas ĠString ? ĊĠ Ġval Ġshape Ġ= Ġwhen Ġ( type ) Ġ{ ĊĊĠĠĠ Ġ" composite " Ġ-> Ġ{ ĊĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠ Ġval Ġshapes Ġ= Ġsource . getValue (" children ") Ġas ĠList < Map < String , ĠAny >> ĊĠĠĠĠĠ Ġval Ġshapes 2 Ġ= Ġshapes . map NotNull ( load Bounding Shape ( get Triangles )) ĊĠĠĠĠĠ ĠComposite Shape ( ĊĠĠĠĠĠĠĠĠĠ Ġshapes Ġ= Ġshapes 2 ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" cy linder " Ġ-> ĠCy linder ( ĊĠĠĠĠĠĠĠ Ġradius Ġ= ĠparseFloat ( source [" radius "]), ĊĠĠĠĠĠĠĠ Ġheight Ġ= ĠparseFloat ( source [" height "]) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ" mesh " Ġ-> ĠMesh Shape ( ĊĠĠĠĠĠĠĠ Ġtriangles Ġ= Ġget Triangles (), ĊĠĠĠĠĠĠĠ Ġradius Ġ= ĠparseFloat ( source [" radius "]), ĊĠĠĠĠĠĠĠ Ġheight Ġ= ĠparseFloat ( source [" height "]) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ" box " Ġ-> Ġ{ ĊĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠ Ġhalf Ext ents Ġ= Ġparse Vector 3 ( source [" dimensions "]) Ġ* Ġ 0 . 5 f ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġelse Ġ-> Ġnull ĊĠ Ġ} ĊĠ Ġval Ġoffset Ġ= Ġif Ġ( source . containsKey (" offset ")) ĊĠĠĠ Ġparse Vector 3 ( source [" offset "]) ĊĠ Ġelse ĊĠĠĠ Ġnull ĊĊĠ Ġif Ġ( shape Ġ!= Ġnull Ġ&& Ġoffset Ġ!= Ġnull ) ĊĠĠĠ ĠShape Transform ( transform Ġ= ĠMatrix . identity . translate ( offset ), Ġshape Ġ= Ġshape ) ĊĠ Ġelse ĊĠĠĠ Ġshape Ċ } Ċ Ċ fun Ġload Bounding Shape From Node ( node : ĠNode , Ġget Triangles : ĠGet Triangles ): ĠShape ? Ġ{ ĊĠ Ġval Ġshape Property Ġ= Ġnode . extras ?. get (" bounds ") ĊĠ Ġreturn Ġif Ġ( shape Property Ġ== Ġnull ) ĊĠĠĠ Ġnull ĊĠ Ġelse Ġ{ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġval Ġsource Ġ= Ġshape Property Ġas ĠMap < String , ĠAny > ĊĠĠĠ Ġreturn Ġload Bounding Shape ( get Triangles )( source ) ĊĠ Ġ} Ċ } Ċ