/* Ċ Ġ* Ġ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 . geometry . Double Rectangle Ċ import Ġjet brains . datal ore . base . geometry . Double Vector Ċ import Ġjet brains . datal ore . plot . base . A est het ics Ċ import Ġjet brains . datal ore . plot . base . Coordinate System Ċ import Ġjet brains . datal ore . plot . base . Geom Context Ċ import Ġjet brains . datal ore . plot . base . Position Adjustment Ċ import Ġjet brains . datal ore . plot . base . aes . Aes Scaling Ċ import Ġjet brains . datal ore . plot . base . geom . legend . H Line Legend Key Element Factory Ċ import Ġjet brains . datal ore . plot . base . geom . util . Geom Helper Ċ import Ġjet brains . datal ore . plot . base . geom . util . Hint Color Util Ċ import Ġjet brains . datal ore . plot . base . interact . Geom Target Collector Ċ import Ġjet brains . datal ore . plot . base . interact . Tip Layout Hint Ċ 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 . common . data . Series Util Ċ import Ġjet brains . datal ore . vis . svg . Svg Line Element Ċ Ċ class ĠH Line Geom Ġ: ĠGe om Base () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġlegend Key Element Factory : ĠLegend Key Element Factory ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠLE G END _ KEY _ ELEMENT _ FACTORY ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Intern ( ĊĠĠĠĠĠĠĠ Ġroot : ĠSvg Root , ĊĠĠĠĠĠĠĠ Ġa est het ics : ĠA est het ics , ĊĠĠĠĠĠĠĠ Ġpos : ĠPosition Adjustment , ĊĠĠĠĠĠĠĠ Ġcoord : ĠCoordinate System , ĊĠĠĠĠĠĠĠ Ġctx : ĠGe om Context ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġgeom Helper Ġ= ĠGe om Helper ( pos , Ġcoord , Ġctx ) ĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= Ġgeom Helper . create Svg Element Helper () ĊĊĠĠĠĠĠĠĠ Ġval Ġview Port Ġ= Ġaes View Port ( a est het ics ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= ĠArrayList < Svg Line Element >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( p Ġin Ġa est het ics . data Points ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintercept Ġ= Ġp . intercept Y () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Series Util . is Finite ( intercept )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Port . y Range (). contains ( intercept !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= ĠDouble Vector ( view Port . left , Ġintercept ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= ĠDouble Vector ( view Port . right , Ġintercept ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Ġ= Ġhelper . create Line ( start , Ġend , Ġp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlines . add ( line ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Ġ= ĠA es Scaling . stroke Width ( p ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorigin Ġ= ĠDouble Vector ( 0 . 0 , Ġintercept Ġ- Ġh / 2 Ġ- Ġ 2 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdimensions Ġ= ĠDouble Vector ( end . x , Ġh Ġ+ Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠDouble Rectangle ( origin , Ġdimensions ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . target Collector . add Rectangle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . index (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgeom Helper . to Client ( rect , Ġp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGe om Target Collector . Tooltip Params . params () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Hint Color Util . from Color ( p )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTip Layout Hint . Kind . CURSOR _ TOOL TIP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlines . forEach Ġ{ Ġroot . add ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHAND LES _ GROUP S Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval ĠLE G END _ KEY _ ELEMENT _ FACTORY : ĠLegend Key Element Factory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH Line Legend Key Element Factory () ĊĠĠĠ Ġ} Ċ } Ċ