/* Ċ Ġ* Ġ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 .* Ċ import Ġjet brains . datal ore . plot . base . geom . legend . Composite Legend Key Element Factory Ċ import Ġjet brains . datal ore . plot . base . geom . legend . V Line Legend Key Element Factory Ċ import Ġjet brains . datal ore . plot . base . geom . util . Bar Tooltip Helper Ċ import Ġjet brains . datal ore . plot . base . geom . util . Geom Helper Ċ import Ġjet brains . datal ore . plot . base . geom . util . Geom Util Ċ import Ġjet brains . datal ore . plot . base . geom . util . Hint Color Util Ċ 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 . point . Point Shape Svg Ċ Ċ class ĠPoint Range Geom Ġ: ĠGe om Base () Ġ{ ĊĠĠĠ Ġvar Ġfat ten Mid Point : ĠDouble Ġ= ĊĠĠĠĠĠĠĠ ĠDEF _ F ATT EN ĊĊĠĠĠ Ġoverride Ġval Ġlegend Key Element Factory : ĠLegend Key Element Factory ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠComposite Legend Key Element Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV Line Legend Key Element Factory (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPoint Legend Key Element Factory ( DEF _ F ATT EN ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠ Ġ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 () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( p Ġin ĠGe om Util . with Defined ( a est het ics . data Points (), ĠA es . X , ĠA es . Y , ĠA es . Y MIN , ĠA es . Y MAX )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġp . x () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġp . y () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġymin Ġ= Ġp . ymin () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġymax Ġ= Ġp . ymax () !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġvertical Ġline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= ĠDouble Vector ( x , Ġymin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= ĠDouble Vector ( x , Ġymax ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Ġ= Ġhelper . create Line ( start , Ġend , Ġp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . add ( line ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmid - point ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġgeom Helper . to Client ( Double Vector ( x , Ġy ), Ġp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshape Ġ= Ġp . shape () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= ĠPoint Shape Svg . create ( shape , Ġlocation , Ġp , Ġfat ten Mid Point ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . add ( wrap ( o )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġctx . target Collector . add Point ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . index (), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshape . size ( p ) Ġ* Ġfat ten Mid line Ġ/ Ġ 2 , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint Geom . tooltip Params ( p ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠBar Tooltip Helper . collect Rectangle Targets ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Aes . Y MAX , ĠA es . Y MIN ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa est het ics , Ġpos , Ġcoord , Ġctx , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrectangle By DataPoint ( fat ten Mid Point ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠHint Color Util . from Color ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHAND LES _ GROUP S Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEF _ F ATT EN Ġ= Ġ 5 . 0 ĊĊĠĠĠĠĠĠĠ Ġfun Ġrectangle By DataPoint ( fat ten : ĠDouble ): Ġ( DataPoint A est het ics ) Ġ-> ĠDouble Rectangle ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ{ Ġp Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p . defined ( Aes . X ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . defined ( Aes . Y ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġp . x () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġp . y () !! ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshape Ġ= Ġp . shape () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshape Size Ġ= Ġshape . size ( p ) Ġ* Ġfat ten ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstrokeWidth Ġ= Ġshape . stroke Width ( p ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġshape Size Ġ+ ĠstrokeWidth ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorigin Ġ= ĠDouble Vector ( x Ġ- Ġwidth Ġ/ Ġ 2 , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdimensions Ġ= ĠDouble Vector ( width , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDouble Rectangle ( origin , Ġdimensions ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ