/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 . Ġ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 . vis . svg Ċ Ċ import Ġjet brains . datal ore . base . geometry . Double Rectangle Ċ import Ġjet brains . datal ore . base . geometry . Double Vector Ċ import Ġjet brains . datal ore . base . observable . property . Property Ċ import Ġjet brains . datal ore . base . observable . property . Writable Property Ċ import Ġjet brains . datal ore . vis . svg . Svg Container . Companion . CLIP _ PATH Ċ import Ġjet brains . datal ore . vis . svg . Svg Container . Companion . OP ACITY Ċ Ċ class ĠSvg Svg Element () Ġ: ĠSvg St yl ableElement (), ĠSvg Container , ĊĠĠĠ ĠSvg Loc atable Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠX : ĠSvg Attribute Spec < Double > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Attribute Spec . create Spec (" x ") ĊĠĠĠĠĠĠĠ Ġval ĠY : ĠSvg Attribute Spec < Double > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Attribute Spec . create Spec (" y ") ĊĠĠĠĠĠĠĠ Ġval ĠWIDTH : ĠSvg Attribute Spec < Double > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Attribute Spec . create Spec ( Svg Constants . WIDTH ) ĊĠĠĠĠĠĠĠ Ġval ĠHEIGHT : ĠSvg Attribute Spec < Double > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Attribute Spec . create Spec ( Svg Constants . HEIGHT ) ĊĠĠĠĠĠĠĠ Ġval ĠVIEW _ BOX : ĠSvg Attribute Spec < View Box Rectangle > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Attribute Spec . create Spec (" view Box ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġelement Name Ġ= Ġ" svg " ĊĊĠĠĠ Ġoverride Ġval Ġb Box : ĠDouble Rectangle ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcontainer (). get Peer () !!. getB Box ( this ) ĊĊĠĠĠ Ġconstructor ( width : ĠDouble , Ġheight : ĠDouble ) Ġ: Ġthis () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġset Attribute ( WIDTH , Ġwidth ) ĊĠĠĠĠĠĠĠ Ġset Attribute ( HEIGHT , Ġheight ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Style ( css : ĠSvg Css Resource ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchildren (). add ( Svg Style Element ( css )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġx (): ĠProperty < Double ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Attribute ( X ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġy (): ĠProperty < Double ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Attribute ( Y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwidth (): ĠProperty < Double ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Attribute ( WIDTH ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġheight (): ĠProperty < Double ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Attribute ( HEIGHT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠviewBox (): ĠProperty < View Box Rectangle ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Attribute ( VIEW _ BOX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠviewBox Rect (): ĠWrit able Property < Double Rectangle > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠWrit able Property < Double Rectangle > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset ( value : ĠDouble Rectangle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewBox (). set ( View Box Rectangle ( value )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopacity (): ĠProperty < Double ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Attribute ( OP ACITY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclip Path (): ĠProperty < Svg IR I ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Attribute ( CLIP _ PATH ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpoint To Trans formed Coordinates ( point : ĠDouble Vector ): ĠDouble Vector Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontainer (). get Peer () !!. invert Transform ( this , Ġpoint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpoint To Absolute Coordinates ( point : ĠDouble Vector ): ĠDouble Vector Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontainer (). get Peer () !!. apply Transform ( this , Ġpoint ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġclass ĠView Box Rectangle Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġmy X : ĠDouble Ġ= Ġ 0 . toDouble () ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġmy Y : ĠDouble Ġ= Ġ 0 . toDouble () ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġmy Width : ĠDouble Ġ= Ġ 0 . toDouble () ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġmy Height : ĠDouble Ġ= Ġ 0 . toDouble () ĊĊĠĠĠĠĠĠĠ Ġconstructor ( x : ĠDouble , Ġy : ĠDouble , Ġwidth : ĠDouble , Ġheight : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy X Ġ= Ġx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Y Ġ= Ġy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Width Ġ= Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Height Ġ= Ġheight ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( rect : ĠDouble Rectangle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy X Ġ= Ġrect . origin . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Y Ġ= Ġrect . origin . y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Width Ġ= Ġrect . dimension . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Height Ġ= Ġrect . dimension . y ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġconstructor ( rect : ĠRectangle ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmy X Ġ= Ġrect . origin . x Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmy Y Ġ= Ġrect . origin . y Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmy Width Ġ= Ġrect . dimension . x Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmy Height Ġ= Ġrect . dimension . y Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"$ my X Ġ$ my Y Ġ$ my Width Ġ$ my Height " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }