package Ġsc ient ifik . plot ly Ċ Ċ import Ġhe p . data forge . io . toJson Ċ import Ġhe p . data forge . meta . Meta Ċ import Ġhe p . data forge . meta . Meta Repr Ċ import Ġhe p . data forge . meta . build Meta Ċ import Ġkotlinx . serialization . json . JsonObject Ċ import Ġkotlinx . serialization . json . json Ċ import Ġkotlinx . serialization . json . json Array Ċ import Ġsc ient ifik . plot ly . models . Layout Ċ import Ġsc ient ifik . plot ly . models . Trace Ċ Ċ class ĠPlot 2 D Ġ: ĠMeta Repr Ġ{ ĊĠĠĠ Ġvar Ġdata : ĠMutable List < Trace > Ġ= ĠArrayList () ĊĠĠĠ Ġvar Ġlayout : ĠLayout Ġ= ĠLayout . empty () ĊĊĠĠĠ Ġfun Ġlayout ( block : ĠLayout . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Ġ= ĠLayout . build ( block ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtrace ( var arg Ġtrace : ĠTrace ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata . addAll ( trace ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtrace ( x : ĠDouble Array , Ġblock : ĠTrace . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace ( Trace . build ( x , Ġblock )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtrace ( x : ĠDouble Array , Ġy : ĠDouble Array , Ġblock : ĠTrace . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace ( Trace . build ( x , Ġy , Ġblock )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Meta (): ĠMeta Ġ= Ġbuild Meta Ġ{ ĊĠĠĠĠĠĠĠ Ġ" layout " Ġto Ġlayout . config ĊĠĠĠĠĠĠĠ Ġ" data " Ġto Ġdata . map Ġ{ Ġit . config Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠtoJson (): ĠJsonObject Ġ= Ġjson Ġ{ ĊĠĠĠĠĠĠĠ Ġ" layout " Ġto Ġlayout . config . toJson () ĊĠĠĠĠĠĠĠ Ġ" data " Ġto Ġjson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ it . config . toJson () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun ĠPlot 2 D . trace ( x : ĠIterable < Number >, Ġy : ĠIterable < Number >, Ġblock : ĠTrace . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġtrace ( x . map Ġ{ Ġit . toDouble () Ġ}. toDouble Array (), Ġy . map Ġ{ Ġit . toDouble () Ġ}. toDouble Array (), Ġblock ) Ċ } Ċ Ċ fun ĠPlot 2 D . trace ( x : ĠIterable < Number >, Ġblock : ĠTrace . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġtrace ( x . map Ġ{ Ġit . toDouble () Ġ}. toDouble Array (), Ġblock ) Ċ } Ċ Ċ fun ĠPlot 2 D . trace ( block : ĠTrace . () Ġ-> ĠUnit ){ ĊĠĠĠ Ġtrace ( Trace . build ( block )) Ċ } Ċ