package Ġcom . yan bin . geo . serializer Ċ Ċ import Ġkotlinx . serialization . Serialization Exception Ċ import Ġkotlinx . serialization . json . Json Element Ċ import Ġkotlinx . serialization . json . float Ċ import Ġkotlinx . serialization . json . json Array Ċ import Ġkotlinx . serialization . json . jsonObject Ċ import Ġkotlinx . serialization . json . json Primitive Ċ Ċ internal Ġobject ĠTransform Deserializer : ĠJson Element Deserializer < Transform > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( json Element : ĠJson Element ): ĠTransform Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġraw Transform Ġ= Ġjson Element . jsonObject ĊĠĠĠĠĠĠĠ Ġif Ġ(! raw Transform . containsKey (" scale ") Ġ|| Ġ! raw Transform . containsKey (" translate ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠSerialization Exception (" transform Ġmust Ġcontains Ġboth Ġ' scale ' Ġand Ġ' translate '") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġraw Scale Ġ= Ġraw Transform [" scale "] !!. json Array ĊĠĠĠĠĠĠĠ Ġval Ġraw Translate Ġ= Ġraw Transform [" translate "] !!. json Array ĊĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠPair ( raw Scale [ 0 ]. json Primitive . float , Ġraw Scale [ 1 ]. json Primitive . float ) ĊĠĠĠĠĠĠĠ Ġval Ġtranslate Ġ= ĠPair ( raw Translate [ 0 ]. json Primitive . float , Ġraw Translate [ 1 ]. json Primitive . float ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠTransform ( scale , Ġtranslate ) ĊĠĠĠ Ġ} Ċ } Ċ