package Ġspace . k science . gd ml Ċ Ċ import Ġkotlin . reflect . type Of ĊĊ Ċ public Ġinterface ĠG d ml Material Registry Ġ: ĠG d ml Name Generator Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġ< R Ġ: ĠG d ml Material > Ġregister Material ( item : ĠR ): ĠG d ml Ref < R > ĊĊĠĠĠ Ġpublic Ġval Ġdefault Material : ĠG d ml Ref < Gd ml Material > Ċ } Ċ Ċ public Ġinline Ġfun ĠG d ml Material Registry . is otope ( name : ĠString ? Ġ= Ġnull , Ġbuild : ĠG d ml Is otope . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠG d ml Ref < Gd ml Is otope > Ġ= ĊĠĠĠ Ġregister Material ( Gd ml Is otope ( generate Name ( name , ĠtypeOf < Gd ml Is otope >() )). apply ( build )) Ċ Ċ public Ġinline Ġfun ĠG d ml Material Registry . element ( name : ĠString ? Ġ= Ġnull , Ġbuild : ĠG d ml Element . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠG d ml Ref < Gd ml Element > Ġ= ĊĠĠĠ Ġregister Material ( Gd ml Element ( generate Name ( name , Ġ ĠtypeOf < Gd ml Element >() )). apply ( build )) Ċ Ċ public Ġinline Ġfun ĠG d ml Material Registry . composite ( name : ĠString ? Ġ= Ġnull , Ġbuild : ĠG d ml Composite . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠG d ml Ref < Gd ml Composite > Ġ= ĊĠĠĠ Ġregister Material ( Gd ml Composite ( generate Name ( name , Ġ ĠtypeOf < Gd ml Composite >() )). apply ( build )) Ċ