/* Ċ Ġ* Ġ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 . util Ċ Ċ import Ġjet brains . datal ore . plot . base . DataPoint A est het ics Ċ import Ġjet brains . datal ore . plot . base . geom . util . Multi Point Data Constructor . reducer Ċ import Ġjet brains . datal ore . plot . base . geom . util . Multi Point Data Constructor . single Point Appender Ċ import Ġjet brains . datal ore . plot . base . interact . Geom Target Collector Ċ import Ġjet brains . datal ore . plot . base . interact . Geom Target Collector . Tooltip Params . Companion . params Ċ import Ġjet brains . datal ore . plot . base . render . svg . Line Path Ċ Ċ class ĠLine Path Constructor ( ĊĠĠĠ Ġprivate Ġval Ġmy Target Collector : ĠGe om Target Collector , ĊĠĠĠ Ġprivate Ġval Ġmy Data Points : ĠIterable < DataPoint A est het ics >, ĊĠĠĠ Ġprivate Ġval Ġmy Lines Helper : ĠLines Helper , ĊĠĠĠ Ġprivate Ġval Ġmy Close Path : ĠBoolean Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġconstruct (): ĠList < Line Path > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġline Paths Ġ= ĠArrayList < Line Path >() ĊĊĠĠĠĠĠĠĠ Ġval Ġmulti Point DataList Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMulti Point Data Constructor . create Multi Point Data By Group ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Data Points , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Point Appender Ġ{ Ġp Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Lines Helper . to Client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGe om Util . TO _ LOCATION _ X _ Y ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) !! , Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreducer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDROP _ POINT _ DISTANCE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Close Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( multi Point Data Ġin Ġmulti Point DataList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( my Close Path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Target Collector . add Polygon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Point Data . points , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Point Data . local To Global Index , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams (). setColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHint Color Util . from Fill ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Point Data . aes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Target Collector . add Path ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Point Data . points , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Point Data . local To Global Index , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams (). setColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHint Color Util . from Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Point Data . aes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġline Paths . addAll ( my Lines Helper . create Paths ( multi Point Data . aes , Ġmulti Point Data . points , Ġmy Close Path )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġline Paths ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDROP _ POINT _ DISTANCE Ġ= Ġ 0 . 9 9 9 ĊĠĠĠ Ġ} Ċ } Ċ