package Ġru . rog gi . comp . math . view . t ornado Ċ Ċ import Ġjavafx . collections . Observable List Ċ import Ġjavafx . scene . chart . XY Chart Ċ import Ġru . rog gi . comp . math . model . Equation Ċ import Ġt orn ad of x . Controller Ċ import Ġt orn ad of x . to Observable Ċ Ċ class ĠGraph Service Ġ: ĠController () Ġ{ ĊĠĠĠ Ġfun Ġget Plot Meta ( ĊĠĠĠĠĠĠĠ Ġequation : ĠE quation ?, ĊĠĠĠĠĠĠĠ Ġfrom : ĠDouble , ĊĠĠĠĠĠĠĠ Ġto : ĠDouble , ĊĠĠĠĠĠĠĠ Ġstep : ĠDouble ĊĠĠĠ Ġ): ĠObservable List < XY Chart . Data < Double , ĠDouble >> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( step Ġ== Ġ 0 . 0 ) Ġreturn Ġmutable ListOf < XY Chart . Data < Double , ĠDouble >> (). to Observable () ĊĠĠĠĠĠĠĠ Ġif Ġ( equation Ġ== Ġnull ) Ġreturn Ġmutable ListOf < XY Chart . Data < Double , ĠDouble >> (). to Observable () ĊĊĠĠĠĠĠĠĠ Ġval Ġdots : ĠMutable Map < Double , ĠDouble > Ġ= Ġlinked Map Of () ĊĊĠĠĠĠĠĠĠ Ġvar Ġfrom Copy Ġ= Ġfrom ĊĠĠĠĠĠĠĠ Ġwhile Ġ( from Copy Ġ<= Ġto ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdots [ from Copy ] Ġ= Ġequation . evaluate ( from Copy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Copy Ġ+= Ġstep ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdots . toList (). map Ġ{ Ġpair : ĠPair < Double , ĠDouble > Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠXY Chart . Data ( pair . first , Ġpair . second ) ĊĠĠĠĠĠĠĠ Ġ}. to Observable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġgraph Model : ĠGraph Model ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġshow : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġhide : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ