package Ġspace . k science . vision forge . solid Ċ Ċ import Ġkotlinx . serialization . Serial Name Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġspace . k science . data forge . names . Name Ċ import Ġspace . k science . data forge . names . as Name Ċ import Ġspace . k science . data forge . names . plus Ċ import Ġspace . k science . vision forge .* Ċ Ċ @ Serializable Ċ @ Serial Name (" solid . line ") Ċ public Ġclass ĠPoly Line ( public Ġval Ġpoints : ĠList < Point 3 D >) Ġ: ĠSolid Base (), ĠVision Property Container < Poly Line > Ġ{ ĊĊĠĠĠ Ġ// var Ġline Type Ġby Ġstring () ĊĠĠĠ Ġpublic Ġvar Ġthickness : ĠNumber Ġby Ġnumber Property ( name Ġ= ĠSolid Material . MAT ERIAL _ KEY Ġ+ ĠTH ICK NESS _ KEY ) Ġ{ Ġ 1 . 0 Ġ} ĊĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġval ĠTH ICK NESS _ KEY : ĠName Ġ= Ġ" thickness ". as Name () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Vision Builder Ċ public Ġfun ĠVision Container Builder < Solid >. poly line ( ĊĠĠĠ Ġvar arg Ġpoints : ĠPoint 3 D , ĊĠĠĠ Ġname : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġaction : ĠPoly Line . () Ġ-> ĠUnit Ġ= Ġ{}, Ċ ): ĠPoly Line Ġ= ĠPoly Line ( points . toList ()). apply ( action ). also Ġ{ Ġset ( name , Ġit ) Ġ}