/* Ċ Ġ* Ġ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 Vector Ċ import Ġjet brains . datal ore . vis . svg . Svg Transform . Companion . MATRIX Ċ import Ġjet brains . datal ore . vis . svg . Svg Transform . Companion . ROT ATE Ċ import Ġjet brains . datal ore . vis . svg . Svg Transform . Companion . SCALE Ċ import Ġjet brains . datal ore . vis . svg . Svg Transform . Companion . S KE W _ X Ċ import Ġjet brains . datal ore . vis . svg . Svg Transform . Companion . S KE W _ Y Ċ import Ġjet brains . datal ore . vis . svg . Svg Transform . Companion . TRANSL ATE Ċ Ċ class ĠSvg Transform Builder Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmy StringBuilder Ġ= ĠStringBuilder () ĊĊĠĠĠ Ġfun Ġbuild (): ĠSvg Transform Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSvg Transform ( my StringBuilder . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Transformation ( name : ĠString , Ġvar arg Ġvalues : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġmy StringBuilder . append ( name ). append (' (' ) ĊĠĠĠĠĠĠĠ Ġfor Ġ(` val ` Ġin Ġvalues ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy StringBuilder . append (` val `). append (' Ġ') ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmy StringBuilder . append (" ) Ġ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmatrix ( a : ĠDouble , Ġb : ĠDouble , Ġc : ĠDouble , Ġd : ĠDouble , Ġe : ĠDouble , Ġf : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( MATRIX , Ġa , Ġb , Ġc , Ġd , Ġe , Ġf ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtranslate ( x : ĠDouble , Ġy : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( TRANSL ATE , Ġx , Ġy ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtranslate ( vector : ĠDouble Vector ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtranslate ( vector . x , Ġvector . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtranslate ( x : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( TRANSL ATE , Ġx ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġscale ( x : ĠDouble , Ġy : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( SCALE , Ġx , Ġy ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġscale ( x : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( SCALE , Ġx ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrotate ( a : ĠDouble , Ġx : ĠDouble , Ġy : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( ROT ATE , Ġa , Ġx , Ġy ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrotate ( a : ĠDouble , Ġorigin : ĠDouble Vector ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrotate ( a , Ġorigin . x , Ġorigin . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrotate ( a : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( ROT ATE , Ġa ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġskew X ( a : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( S KE W _ X , Ġa ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġskew Y ( a : ĠDouble ): ĠSvg Transform Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd Transformation ( S KE W _ Y , Ġa ) ĊĠĠĠ Ġ} Ċ }