package Ġcom . b sel zer . k tx . geometry . dimension . tri . serialization Ċ Ċ import Ġcom . b sel zer . k tx . geometry . dimension . tri . position . Point 3 D Ċ import Ġkotlinx . serialization . K Serializer Ċ import Ġkotlinx . serialization . builtins . List Serializer Ċ import Ġkotlinx . serialization . builtins . serializer Ċ import Ġkotlinx . serialization . descriptors . Serial Descriptor Ċ import Ġkotlinx . serialization . encoding . Decoder Ċ import Ġkotlinx . serialization . encoding . Encoder Ċ Ċ /** Ċ Ġ* ĠA Ġserializer Ġfor Ġconverting Ġan Ġarray Ġinto Ġa Ġthree - dimensional Ġpoint . Ċ Ġ*/ Ċ class ĠPoint 3 D Serializer Ġ: ĠK Serializer < Point 3 D > Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġserializer Ġof Ġthe Ġ 3 D Ġpoint Ġdata . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġserializer Ġ= ĠList Serializer ( Double . serializer ()) ĊĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor Ġ= Ġserializer . descriptor ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠPoint 3 D Ġ= Ġdeserialize ( serializer . deserialize ( decoder )) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverts Ġa Ġlist Ġto Ġa Ġ[ Point 3 D ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlist Ġthe Ġthree - dimensional Ġcomponents ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdeserialize ( list : ĠList < Double >) Ġ= ĠPoint 3 D ( list . getOrElse ( 0 ) Ġ{ Ġ 0 . 0 Ġ}, Ġlist . getOrElse ( 1 ) Ġ{ Ġ 0 . 0 Ġ}, Ġlist . getOrElse ( 2 ) Ġ{ Ġ 0 . 0 Ġ}) ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠPoint 3 D ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( value . x , Ġvalue . y , Ġvalue . z ) ĊĠĠĠĠĠĠĠ Ġserializer . serialize ( encoder , Ġlist ) ĊĠĠĠ Ġ} Ċ }