/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . ĠJetBrains Ġs . r . o . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġjet brains . datal ore . plot . base . geom Ċ Ċ import Ġjet brains . datal ore . base . g common . collect . Closed Range Ċ import Ġjet brains . datal ore . base . geometry . Double Rectangle Ċ import Ġjet brains . datal ore . plot . base .* Ċ import Ġjet brains . datal ore . plot . base . geom . legend . Generic Legend Key Element Factory Ċ import Ġjet brains . datal ore . plot . base . interact . Geom Target Collector Ċ import Ġjet brains . datal ore . plot . base . render . Legend Key Element Factory Ċ import Ġjet brains . datal ore . plot . base . render . Svg Root Ċ import Ġjet brains . datal ore . plot . base . render . svg . Line Path Ċ import Ġjet brains . datal ore . plot . common . data . Series Util Ċ import Ġjet brains . datal ore . vis . svg . Svg G Element Ċ import Ġjet brains . datal ore . vis . svg . slim . Svg Slim Elements Ċ import Ġjet brains . datal ore . vis . svg . slim . Svg Slim Group Ċ import Ġjet brains . datal ore . vis . svg . slim . Svg Slim Object Ċ Ċ abstract Ġclass ĠGe om Base Ġ: ĠGe om Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġlegend Key Element Factory : ĠLegend Key Element Factory ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠGeneric Legend Key Element Factory () ĊĊĠĠĠ Ġoverride Ġfun Ġbuild ( ĊĠĠĠĠĠĠĠ Ġroot : ĠSvg Root , ĊĠĠĠĠĠĠĠ Ġa est het ics : ĠA est het ics , ĊĠĠĠĠĠĠĠ Ġpos : ĠPosition Adjustment , ĊĠĠĠĠĠĠĠ Ġcoord : ĠCoordinate System , ĊĠĠĠĠĠĠĠ Ġctx : ĠGe om Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild Intern ( root , Ġa est het ics , Ġpos , Ġcoord , Ġctx ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Geom Target Collector ( ctx : ĠGe om Context ): ĠGe om Target Collector Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġctx . target Collector ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġbuild Intern ( ĊĠĠĠĠĠĠĠ Ġroot : ĠSvg Root , ĊĠĠĠĠĠĠĠ Ġa est het ics : ĠA est het ics , ĊĠĠĠĠĠĠĠ Ġpos : ĠPosition Adjustment , ĊĠĠĠĠĠĠĠ Ġcoord : ĠCoordinate System , ĊĠĠĠĠĠĠĠ Ġctx : ĠGe om Context ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġwrap ( slim Group : ĠSvg Slim Group ): ĠSvg G Element Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg Ġ= ĠSvg G Element () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . is Pre built Sub tree Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . children (). add ( slim Group . as Dummy Svg Node ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġg ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġwrap ( o : ĠSvg Slim Object ): ĠSvg G Element Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs lim Group Ġ= ĠSvg Slim Elements . g ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . appendTo ( slim Group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwrap ( slim Group ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġaes View Port ( a est het ics : ĠA est het ics ): ĠDouble Rectangle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa est het ics . overall Range ( Aes . X ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa est het ics . overall Range ( Aes . Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġaes BoundingBox ( a est het ics : ĠA est het ics ): ĠDouble Rectangle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa est het ics . range ( Aes . X ) !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa est het ics . range ( Aes . Y ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġrect ( range X : ĠClosed Range < Double >, Ġrange Y : ĠClosed Range < Double >): ĠDouble Rectangle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDouble Rectangle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange X . lower End , Ġrange Y . lower End , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSeries Util . span ( range X ), ĠSeries Util . span ( range Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġappend Nodes ( paths : ĠList < Line Path >, Ġroot : ĠSvg Root ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( path Ġin Ġpaths ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . add ( path . root Group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ