{-# LANGUAGE     OverloadedStrings       #-}



module Icons.Office where

import           Text.Blaze.Svg11 ((!))
import           Text.Blaze.Svg11 as S
import           Text.Blaze.Svg11.Attributes as A

import Core.Utils



{- |
A list with all the icons of this module, 
together with appropriate names.

>svgOffice :: [ (String , S.Svg) ]
>svgOffice =
>  [ (,) "envelope"   envelope
>  , (,) "pencil"     pencil
>  , (,) "document"   document
>  , (,) "archive"    archive
>  , (,) "pin"        pin
>  , (,) "clip"       paperclip
>  , (,) "clipboard"  clipboard
>  , (,) "printer"    printer
>  , (,) "lupe"       lupe
>  , (,) "briefcase"  briefcase
>  ]
-}
svgOffice :: [ (String , S.Svg) ]
svgOffice :: [(String, MarkupM ())]
svgOffice =
  [ (,) String
"envelope"   MarkupM ()
envelope
  , (,) String
"pencil"     MarkupM ()
pencil
  , (,) String
"document"   MarkupM ()
document
  , (,) String
"archive"    MarkupM ()
archive
  , (,) String
"pin"        MarkupM ()
pin
  , (,) String
"paperclip"  MarkupM ()
paperclip
  , (,) String
"clipboard"  MarkupM ()
clipboard
  , (,) String
"printer"    MarkupM ()
printer
  , (,) String
"lupe"       MarkupM ()
lupe
  , (,) String
"briefcase"  MarkupM ()
briefcase
  ]


--------------------------------------------------------------------------------




{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/envelope_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/envelope_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/envelope_strk.svg)
-}
envelope :: Svg
envelope :: MarkupM ()
envelope =
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
dirs
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinejoin AttributeValue
"round"
  where
    kx :: Double
kx = Double
0.94
    ky :: Double
ky = Double
0.618 forall a. Num a => a -> a -> a
* Double
kx
    mx :: Double
mx = Double
0
    my :: Double
my = Double
0
    s :: Double
s  = Double
0.03
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
kx)  (-Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
mx)      ( Double
my)
      forall a. Show a => a -> a -> Path
l   ( Double
kx)  (-Double
ky)
      Path
S.z
      forall a. Show a => a -> a -> Path
m   (-Double
kx)      (-Double
ky forall a. Num a => a -> a -> a
+ Double
s)
      forall a. Show a => a -> a -> Path
l   (-Double
kx)      ( Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
kx)      ( Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
kx)      (-Double
ky forall a. Num a => a -> a -> a
+ Double
s)
      forall a. Show a => a -> a -> Path
l   ( Double
mx)      ( Double
my forall a. Num a => a -> a -> a
+ Double
s)
      Path
S.z
      


{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/pencil_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/pencil_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/pencil_strk.svg)
-}
pencil :: Svg
pencil :: MarkupM ()
pencil =
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
pencilPath
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinejoin AttributeValue
"round"
  where
    w :: Double
w  = Double
0.6   -- width of the pencil

    x1 :: Double
x1 = -Double
wforall a. Fractional a => a -> a -> a
/Double
2
    x2 :: Double
x2 =  Double
wforall a. Fractional a => a -> a -> a
/Double
2
    y1 :: Double
y1 = -Double
0.9
    y2 :: Double
y2 = -Double
0.76
    y3 :: Double
y3 = -Double
0.6
    y4 :: Double
y4 =  Double
0.4
    y5 :: Double
y5 =  Double
y6 forall a. Num a => a -> a -> a
- Double
0.15
    y6 :: Double
y6 =  Double
0.94
    pencilPath :: AttributeValue
pencilPath = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   Double
0   Double
y5
      forall a. Show a => a -> a -> Path
l   Double
0   Double
y6
      forall a. Show a => a -> a -> Path
l   Double
x1  Double
y4
      forall a. Show a => a -> a -> Path
l   Double
x2  Double
y4
      forall a. Show a => a -> a -> Path
l   Double
0   Double
y6
      forall a. Show a => a -> a -> Path
m   Double
x1  Double
y4
      forall a. Show a => a -> a -> Path
l   Double
x1  Double
y3
      forall a. Show a => a -> a -> Path
l   Double
x2  Double
y3
      forall a. Show a => a -> a -> Path
l   Double
x2  Double
y4
      forall a. Show a => a -> a -> Path
m   Double
0   Double
y4
      forall a. Show a => a -> a -> Path
l   Double
0   Double
y3
      forall a. Show a => a -> a -> Path
m   Double
x1  Double
y3
      forall a. Show a => a -> a -> Path
l   Double
x1  Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x2  Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x2  Double
y3
      forall a. Show a => a -> a -> Path
m   Double
x1  Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x1  Double
y1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  (Double
wforall a. Fractional a => a -> a -> a
/Double
2) Double
0.03 Double
0 Bool
True Bool
True Double
x2 Double
y1
      forall a. Show a => a -> a -> Path
l   Double
x2  Double
y2



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/document_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/document_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/document_strk.svg)
-}
document :: Svg
document :: MarkupM ()
document = 
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
paperBorder
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinecap AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
lines
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
xMark
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
fill AttributeValue
"none"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinecap AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
transform (forall a. Show a => a -> a -> AttributeValue
translate (-Double
0.25) Double
0.55 forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
45 Integer
0 Integer
0)
      MarkupM ()
pencil 
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
transform (forall a. Show a => a -> a -> AttributeValue
translate   Double
0.55  Double
0.35 forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
45 Integer
0 Integer
0 forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> a -> AttributeValue
S.scale Double
0.4 Double
0.4)
  where
    py :: Double
py = Double
0.95
    px :: Double
px = Double
0.618 forall a. Num a => a -> a -> a
* Double
py
    paperBorder :: MarkupM ()
paperBorder =
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinejoin AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinecap  AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
fill AttributeValue
"none"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
paperPath
    paperPath :: AttributeValue
paperPath = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   ( Double
px)  (-Double
0.16)
      forall a. Show a => a -> a -> Path
l   ( Double
px)  (-Double
py)
      forall a. Show a => a -> a -> Path
l   (-Double
px)  (-Double
py)
      forall a. Show a => a -> a -> Path
l   (-Double
px)  ( Double
py)
      forall a. Show a => a -> a -> Path
l   ( Double
px)  ( Double
py)
      forall a. Show a => a -> a -> Path
l   ( Double
px)  ( Double
0.7)
    --------------------------------------------------

    xl :: Double
xl =  Double
0.4
    y1 :: Double
y1 = -Double
0.65
    y2 :: Double
y2 = -Double
0.35
    y3 :: Double
y3 = -Double
0.05
    lines :: AttributeValue
lines = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  (-Double
xl) Double
y1   forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>   forall a. Show a => a -> a -> Path
l  Double
xl  Double
y1
      forall a. Show a => a -> a -> Path
m  (-Double
xl) Double
y2   forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>   forall a. Show a => a -> a -> Path
l  Double
xl  Double
y2
      forall a. Show a => a -> a -> Path
m  (-Double
xl) Double
y3   forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>   forall a. Show a => a -> a -> Path
l  Double
xl  Double
y3  
    --------------------------------------------------

    m1 :: Double
m1 = Double
0.15
    xMark :: AttributeValue
xMark = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  (-Double
m1)   Double
0
      forall a. Show a => a -> a -> Path
l  ( Double
m1)   Double
0
      forall a. Show a => a -> a -> Path
m    Double
0   (-Double
m1)
      forall a. Show a => a -> a -> Path
l    Double
0   ( Double
m1)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/archive_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/archive_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/archive_strk.svg)
-}
archive :: S.Svg
archive :: MarkupM ()
archive = 
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinejoin AttributeValue
"round"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
archiveBody
    Double -> MarkupM ()
archiveHandle (-Double
ky forall a. Num a => a -> a -> a
* Double
2forall a. Fractional a => a -> a -> a
/Double
3)
    Double -> MarkupM ()
archiveHandle  Double
0
    Double -> MarkupM ()
archiveHandle ( Double
ky forall a. Num a => a -> a -> a
* Double
2forall a. Fractional a => a -> a -> a
/Double
3)
  where
    ky :: Double
ky = Double
0.96
    kx :: Double
kx = Double
0.75
    archiveBody :: AttributeValue
archiveBody = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
kx)  (-Double
ky)
      forall a. Show a => a -> a -> Path
l   (-Double
kx)  ( Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
kx)  ( Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
kx)  (-Double
ky)
      Path
S.z
      forall a. Show a => a -> a -> Path
m   (-Double
kx)  (-Double
1forall a. Fractional a => a -> a -> a
/Double
3 forall a. Num a => a -> a -> a
* Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
kx)  (-Double
1forall a. Fractional a => a -> a -> a
/Double
3 forall a. Num a => a -> a -> a
* Double
ky)
      forall a. Show a => a -> a -> Path
m   (-Double
kx)  ( Double
1forall a. Fractional a => a -> a -> a
/Double
3 forall a. Num a => a -> a -> a
* Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
kx)  ( Double
1forall a. Fractional a => a -> a -> a
/Double
3 forall a. Num a => a -> a -> a
* Double
ky)
    archiveHandle :: Double -> MarkupM ()
archiveHandle Double
h =
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill AttributeValue
"none"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinecap AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 (Double
hrforall a. Fractional a => a -> a -> a
/Double
2))
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d (Double -> AttributeValue
handleDirs Double
h)
    hx :: Double
hx = Double
0.25
    hr :: Double
hr = Double
0.07
    handleDirs :: Double -> AttributeValue
handleDirs Double
h = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
hx)      (Double
h forall a. Num a => a -> a -> a
- Double
hr)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
hr  Double
hr  Double
0  Bool
False Bool
False (-Double
hx forall a. Num a => a -> a -> a
+ Double
hr) (Double
h)
      forall a. Show a => a -> a -> Path
l   ( Double
hx forall a. Num a => a -> a -> a
- Double
hr) (Double
h)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
hr  Double
hr  Double
0  Bool
False Bool
False ( Double
hx)      (Double
h forall a. Num a => a -> a -> a
- Double
hr)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/pin_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/pin_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/pin_strk.svg)
-}
pin :: Svg
pin :: MarkupM ()
pin =
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinejoin AttributeValue
"arcs"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeMiterlimit AttributeValue
"8"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d (Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ Path
topPath forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Path
bodyPath forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Path
needlePath)
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> a -> AttributeValue
S.rotateAround Integer
45 Integer
0 Integer
0)
  where
    w1 :: Double
w1 = Double
0.26
    w2 :: Double
w2 = Double
0.08
    y1 :: Double
y1 = -Double
0.95
    y2 :: Double
y2 = -Double
0.7
    y3 :: Double
y3 = -Double
0.1
    y4 :: Double
y4 =  Double
0.16
    y5 :: Double
y5 =  Double
0.6
    y6 :: Double
y6 =  Double
1.03
    r1 :: Double
r1 = (Double
y2 forall a. Num a => a -> a -> a
- Double
y1) forall a. Fractional a => a -> a -> a
/ Double
2
    r2 :: Double
r2 = (Double
y4 forall a. Num a => a -> a -> a
- Double
y3)
    topPath :: Path
topPath = do
      forall a. Show a => a -> a -> Path
m   (-Double
w1)  Double
y1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r1 Double
r1 Double
0 Bool
True Bool
False (-Double
w1) Double
y2
      forall a. Show a => a -> a -> Path
l   ( Double
w1)  Double
y2
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r1 Double
r1 Double
0 Bool
True Bool
False ( Double
w1) Double
y1
      forall a. Show a => a -> a -> Path
l   (-Double
w1)  Double
y1
    bodyPath :: Path
bodyPath = do
      forall a. Show a => a -> a -> Path
m   (-Double
w1)  Double
y2
      forall a. Show a => a -> a -> Path
l   (-Double
w1)  Double
y3
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r2 Double
r2 Double
0 Bool
False Bool
False (-Double
w1 forall a. Num a => a -> a -> a
- Double
r2) Double
y4
      forall a. Show a => a -> a -> Path
l   ( Double
w1 forall a. Num a => a -> a -> a
+ Double
r2) Double
y4
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r2 Double
r2 Double
0 Bool
False Bool
False ( Double
w1)      Double
y3
      forall a. Show a => a -> a -> Path
l   ( Double
w1)  Double
y2
    needlePath :: Path
needlePath = do
      forall a. Show a => a -> a -> Path
m   (-Double
w2)  Double
y4
      forall a. Show a => a -> a -> Path
l   (-Double
w2)  Double
y5
      forall a. Show a => a -> a -> Path
l     Double
0    Double
y6
      forall a. Show a => a -> a -> Path
l   ( Double
w2)  Double
y5
      forall a. Show a => a -> a -> Path
l   ( Double
w2)  Double
y4



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/paperclip_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/paperclip_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/paperclip_strk.svg)
-}
paperclip :: Svg
paperclip :: MarkupM ()
paperclip =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ 
      MarkupM ()
S.path 
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
clipDirs
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
45 Integer
0 Integer
0)
  where
    w :: Double
w  = Double
0.07
    x1 :: Double
x1 =  Double
0.2
    x2 :: Double
x2 =  Double
0.44
    r1 :: Double
r1 =  Double
x1
    r2 :: Double
r2 = (Double
x1 forall a. Num a => a -> a -> a
+ Double
x2) forall a. Fractional a => a -> a -> a
/ Double
2
    r3 :: Double
r3 =  Double
x2
    y1 :: Double
y1 =  Double
0.5
    y2 :: Double
y2 = -Double
0.48
    y3 :: Double
y3 =  Double
0.68
    y4 :: Double
y4 = -Double
0.66
    clipDirs :: AttributeValue
clipDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  (-Double
x1 forall a. Num a => a -> a -> a
- Double
w)  Double
y1
      forall a. Show a => a -> a -> Path
l  (-Double
x1 forall a. Num a => a -> a -> a
- Double
w)  Double
y2
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa ( Double
r1 forall a. Num a => a -> a -> a
+ Double
w)  ( Double
r1 forall a. Num a => a -> a -> a
+ Double
w)   Double
0   Bool
True  Bool
True  ( Double
x1 forall a. Num a => a -> a -> a
+ Double
w)  Double
y2
      forall a. Show a => a -> a -> Path
l  ( Double
x1 forall a. Num a => a -> a -> a
+ Double
w)  Double
y3
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa ( Double
r2 forall a. Num a => a -> a -> a
+ Double
w)  ( Double
r2 forall a. Num a => a -> a -> a
+ Double
w)   Double
0   Bool
True  Bool
True  (-Double
x2 forall a. Num a => a -> a -> a
- Double
w)  Double
y3
      forall a. Show a => a -> a -> Path
l  (-Double
x2 forall a. Num a => a -> a -> a
- Double
w)  Double
y4
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa ( Double
r3 forall a. Num a => a -> a -> a
+ Double
w)  ( Double
r3 forall a. Num a => a -> a -> a
+ Double
w)   Double
0   Bool
True  Bool
True  ( Double
x2 forall a. Num a => a -> a -> a
+ Double
w)  Double
y4
      forall a. Show a => a -> a -> Path
l  ( Double
x2 forall a. Num a => a -> a -> a
+ Double
w)  Double
y1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa (      Double
w)  (      Double
w)   Double
0   Bool
True  Bool
True  ( Double
x2 forall a. Num a => a -> a -> a
- Double
w)  Double
y1
      forall a. Show a => a -> a -> Path
l  ( Double
x2 forall a. Num a => a -> a -> a
- Double
w)  Double
y4
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa ( Double
r3 forall a. Num a => a -> a -> a
- Double
w)  ( Double
r3 forall a. Num a => a -> a -> a
- Double
w)   Double
0   Bool
True  Bool
False (-Double
x2 forall a. Num a => a -> a -> a
+ Double
w)  Double
y4
      forall a. Show a => a -> a -> Path
l  (-Double
x2 forall a. Num a => a -> a -> a
+ Double
w)  Double
y3
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa ( Double
r2 forall a. Num a => a -> a -> a
- Double
w)  ( Double
r2 forall a. Num a => a -> a -> a
- Double
w)   Double
0   Bool
True  Bool
False ( Double
x1 forall a. Num a => a -> a -> a
- Double
w)  Double
y3
      forall a. Show a => a -> a -> Path
l  ( Double
x1 forall a. Num a => a -> a -> a
- Double
w)  Double
y2
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa ( Double
r1 forall a. Num a => a -> a -> a
- Double
w)  ( Double
r1 forall a. Num a => a -> a -> a
- Double
w)   Double
0   Bool
True  Bool
False (-Double
x1 forall a. Num a => a -> a -> a
+ Double
w)  Double
y2
      forall a. Show a => a -> a -> Path
l  (-Double
x1 forall a. Num a => a -> a -> a
+ Double
w)  Double
y1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa (      Double
w)  (      Double
w)   Double
0   Bool
True  Bool
True  (-Double
x1 forall a. Num a => a -> a -> a
- Double
w)  Double
y1
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/clipboard_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/clipboard_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/clipboard_strk.svg)
-}
clipboard :: Svg
clipboard :: MarkupM ()
clipboard =
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
boardDirs
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
clipDirs
  where
    dx1 :: Double
dx1 = Double
0.3
    dx2 :: Double
dx2 = Double
0.7
    y1 :: Double
y1 = -Double
0.9
    y2 :: Double
y2 = -Double
0.7
    y3 :: Double
y3 = -Double
0.5
    y4 :: Double
y4 =  Double
0.9
    r1 :: Double
r1 =  Double
0.2
    r2 :: Double
r2 =  Double
0.24
    boardDirs :: AttributeValue
boardDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
dx1     ) (Double
y2     )
      forall a. Show a => a -> a -> Path
l   (-Double
dx2 forall a. Num a => a -> a -> a
+ Double
r2) (Double
y2     )
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r2  Double
r2  Double
0  Bool
False Bool
False (-Double
dx2     ) (Double
y2 forall a. Num a => a -> a -> a
+ Double
r2)
      forall a. Show a => a -> a -> Path
l   (-Double
dx2     ) (Double
y4 forall a. Num a => a -> a -> a
- Double
r2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r2  Double
r2  Double
0  Bool
False Bool
False (-Double
dx2 forall a. Num a => a -> a -> a
+ Double
r2) (Double
y4     )
      forall a. Show a => a -> a -> Path
l   ( Double
dx2 forall a. Num a => a -> a -> a
- Double
r2) (Double
y4     )
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r2  Double
r2  Double
0  Bool
False Bool
False ( Double
dx2     ) (Double
y4 forall a. Num a => a -> a -> a
- Double
r2)
      forall a. Show a => a -> a -> Path
l   ( Double
dx2     ) (Double
y2 forall a. Num a => a -> a -> a
+ Double
r2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r2  Double
r2  Double
0  Bool
False Bool
False ( Double
dx2 forall a. Num a => a -> a -> a
- Double
r2) (Double
y2     )
      forall a. Show a => a -> a -> Path
l   ( Double
dx1     ) (Double
y2     )
    clipDirs :: AttributeValue
clipDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
dx1     ) (Double
y2     )
      forall a. Show a => a -> a -> Path
l   (-Double
dx1     ) (Double
y3     )
      forall a. Show a => a -> a -> Path
l   ( Double
dx1     ) (Double
y3     )
      forall a. Show a => a -> a -> Path
l   ( Double
dx1     ) (Double
y1 forall a. Num a => a -> a -> a
+ Double
r1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r1  Double
r1  Double
0  Bool
False Bool
False ( Double
dx1 forall a. Num a => a -> a -> a
- Double
r1) (Double
y1     )
      forall a. Show a => a -> a -> Path
l   (-Double
dx1 forall a. Num a => a -> a -> a
+ Double
r1) (Double
y1     )
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r1  Double
r1  Double
0  Bool
False Bool
False (-Double
dx1     ) (Double
y1 forall a. Num a => a -> a -> a
+ Double
r1)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/printer_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/printer_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/printer_strk.svg)
-}
printer :: Svg
printer :: MarkupM ()
printer =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
topDirs
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
midDirs
      MarkupM ()
S.path 
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinecap AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
botDirs
      MarkupM ()
dots
  where
    x0 :: Double
x0 =  Double
0.5
    x1 :: Double
x1 =  Double
0.9
    x2 :: Double
x2 =  Double
x0 forall a. Num a => a -> a -> a
- Double
0.1
    y0 :: Double
y0 =  Double
0.4
    y1 :: Double
y1 =  Double
0.8
    y2 :: Double
y2 =  Double
0.2
    y3 :: Double
y3 =  Double
0.94
    ky :: Double
ky = (Double
y3 forall a. Num a => a -> a -> a
- Double
y2)forall a. Fractional a => a -> a -> a
/Double
4
    r0 :: Double
r0 =  Double
0.1
    dx :: Float
dx =  Float
0.3
    dy :: Float
dy = -Float
0.1
    dr :: Float
dr =  Float
0.09
    topDirs :: AttributeValue
topDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
x0)  (-Double
y0)
      forall a. Show a => a -> a -> Path
l   (-Double
x0)  (-Double
y1)
      forall a. Show a => a -> a -> Path
l   ( Double
x0)  (-Double
y1)
      forall a. Show a => a -> a -> Path
l   ( Double
x0)  (-Double
y0)
    midDirs :: AttributeValue
midDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
x0)      ( Double
y0)
      forall a. Show a => a -> a -> Path
l   (-Double
x1 forall a. Num a => a -> a -> a
+ Double
r0) ( Double
y0)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r0  Double
r0  Double
0  Bool
False Bool
True  (-Double
x1)      ( Double
y0 forall a. Num a => a -> a -> a
- Double
r0)
      forall a. Show a => a -> a -> Path
l   (-Double
x1)      (-Double
y0 forall a. Num a => a -> a -> a
+ Double
r0)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r0  Double
r0  Double
0  Bool
False Bool
True  (-Double
x1 forall a. Num a => a -> a -> a
+ Double
r0) (-Double
y0)
      forall a. Show a => a -> a -> Path
l   ( Double
x1 forall a. Num a => a -> a -> a
- Double
r0) (-Double
y0)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r0  Double
r0  Double
0  Bool
False Bool
True  ( Double
x1)      (-Double
y0 forall a. Num a => a -> a -> a
+ Double
r0)
      forall a. Show a => a -> a -> Path
l   ( Double
x1)      ( Double
y0 forall a. Num a => a -> a -> a
- Double
r0)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
r0  Double
r0  Double
0  Bool
False Bool
True  ( Double
x1 forall a. Num a => a -> a -> a
- Double
r0) ( Double
y0)
      forall a. Show a => a -> a -> Path
l   ( Double
x0)      ( Double
y0)
    botDirs :: AttributeValue
botDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
x0)  Double
y2
      forall a. Show a => a -> a -> Path
l   ( Double
x0)  Double
y2
      forall a. Show a => a -> a -> Path
l   ( Double
x0)  Double
y3
      forall a. Show a => a -> a -> Path
l   (-Double
x0)  Double
y3
      Path
S.z
      forall a. Show a => a -> a -> Path
m   (-Double
x2)  (Double
y2 forall a. Num a => a -> a -> a
+   Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
x2)  (Double
y2 forall a. Num a => a -> a -> a
+   Double
ky)
      forall a. Show a => a -> a -> Path
m   (-Double
x2)  (Double
y2 forall a. Num a => a -> a -> a
+ Double
2forall a. Num a => a -> a -> a
*Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
x2)  (Double
y2 forall a. Num a => a -> a -> a
+ Double
2forall a. Num a => a -> a -> a
*Double
ky)
      forall a. Show a => a -> a -> Path
m   (-Double
x2)  (Double
y2 forall a. Num a => a -> a -> a
+ Double
3forall a. Num a => a -> a -> a
*Double
ky)
      forall a. Show a => a -> a -> Path
l   ( Double
x2)  (Double
y2 forall a. Num a => a -> a -> a
+ Double
3forall a. Num a => a -> a -> a
*Double
ky)
    dots :: MarkupM ()
dots =
      do
        MarkupM ()
S.circle
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.stroke AttributeValue
"none"
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cx (AttributeValue -> Attribute) -> Float -> Attribute
.: (-Float
dx))
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
dy)
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.r  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
dr)
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill AttributeValue
"hotpink"
        MarkupM ()
S.circle
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.stroke AttributeValue
"none"
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0 )
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
dy)
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.r  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
dr)
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill AttributeValue
"lime"
        MarkupM ()
S.circle
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.stroke AttributeValue
"none"
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
dx)
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
dy)
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.r  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
dr)
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill AttributeValue
"deepskyblue"



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/lupe_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/lupe_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/lupe_strk.svg)
-}
lupe :: S.Svg
lupe :: MarkupM ()
lupe =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fillRule AttributeValue
"evenodd"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
45 Integer
0 Integer
0)
  where
    w1 :: Double
w1 = Double
0.08
    w2 :: Double
w2 = Double
0.12
    r1 :: Double
r1 = Double
0.54
    r2 :: Double
r2 = Double
r1 forall a. Num a => a -> a -> a
+ Double
2forall a. Num a => a -> a -> a
*Double
w1
    x1 :: Double
x1 = Double
0.07
    x2 :: Double
x2 = Double
w2
    y1 :: Double
y1 = Double
0.3
    y2 :: Double
y2 = Double
0.6
    y3 :: Double
y3 = Double
1.12
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m     Double
0   (Double
y1 forall a. Num a => a -> a -> a
- Double
w1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
r1   Double
r1   Double
0  Bool
True  Bool
False (-Double
0.01) ( Double
y1 forall a. Num a => a -> a -> a
- Double
w1)
      Path
S.z
      forall a. Show a => a -> a -> Path
m   (-Double
x1) (Double
y1 forall a. Num a => a -> a -> a
+ Double
w1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
r2   Double
r2   Double
0  Bool
True  Bool
True  ( Double
x1)   ( Double
y1 forall a. Num a => a -> a -> a
+ Double
w1)
      forall a. Show a => a -> a -> a -> a -> Path
q     Double
x2  (Double
y2 forall a. Num a => a -> a -> a
- Double
0.18)   Double
x2   Double
y2
      forall a. Show a => a -> a -> Path
l     Double
x2   Double
y3
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
w2   Double
w2   Double
0  Bool
True  Bool
True  (-Double
x2)   ( Double
y3)
      forall a. Show a => a -> a -> Path
l   (-Double
x2)  Double
y2
      forall a. Show a => a -> a -> a -> a -> Path
q   (-Double
x2) (Double
y2 forall a. Num a => a -> a -> a
- Double
0.18) (-Double
x1)  (Double
y1 forall a. Num a => a -> a -> a
+ Double
w1)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/briefcase_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/briefcase_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/office/briefcase_strk.svg)
-}
briefcase :: Svg
briefcase :: MarkupM ()
briefcase = 
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinejoin AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
top
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinejoin AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
bot
      MarkupM ()
button
  where
    r1 :: Float
r1 =  Float
0.2
    r2 :: Float
r2 =  Float
0.07
    x1 :: Float
x1 =  Float
0.94
    x2 :: Float
x2 =  Float
0.46
    x3 :: Float
x3 =  Float
0.3
    y1 :: Float
y1 = -Float
0.86
    y2 :: Float
y2 = -Float
0.7
    y3 :: Float
y3 = -Float
0.54
    y4 :: Float
y4 =  Float
0
    y5 :: Float
y5 =  Float
0.06
    y6 :: Float
y6 =  Float
0.8
    rx1 :: Float
rx1 = Float
0.12
    ry1 :: Float
ry1 = Float
0.18
    rx2 :: Float
rx2 = Float
0.07
    ry2 :: Float
ry2 = Float
0.135
    top :: AttributeValue
top = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m     Float
x3        Float
y3
      forall a. Show a => a -> a -> Path
l     Float
x3        Float
y2
      forall a. Show a => a -> a -> Path
l   (-Float
x3)       Float
y2
      forall a. Show a => a -> a -> Path
l   (-Float
x3)       Float
y3 
      Path
S.z
      forall a. Show a => a -> a -> Path
m   (-Float
x1)       Float
y4
      forall a. Show a => a -> a -> Path
l   (-Float
x1)      (Float
y3 forall a. Num a => a -> a -> a
+ Float
r1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
r1        Float
r1   Float
0   Bool
False Bool
True  (-Float
x1 forall a. Num a => a -> a -> a
+ Float
r1)  Float
y3
      forall a. Show a => a -> a -> Path
l   (-Float
x2)       Float
y3
      forall a. Show a => a -> a -> Path
l   (-Float
x2)      (Float
y1 forall a. Num a => a -> a -> a
+ Float
r2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
r2        Float
r2   Float
0   Bool
False Bool
True  (-Float
x2 forall a. Num a => a -> a -> a
+ Float
r2)  Float
y1
      forall a. Show a => a -> a -> Path
l   ( Float
x2 forall a. Num a => a -> a -> a
- Float
r2)  Float
y1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
r2        Float
r2   Float
0   Bool
False Bool
True  ( Float
x2)      (Float
y1 forall a. Num a => a -> a -> a
+ Float
r2)
      forall a. Show a => a -> a -> Path
l     Float
x2        Float
y3
      forall a. Show a => a -> a -> Path
l   ( Float
x1 forall a. Num a => a -> a -> a
- Float
r1)  Float
y3
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
r1        Float
r1   Float
0   Bool
False Bool
True  ( Float
x1)      (Float
y3 forall a. Num a => a -> a -> a
+ Float
r1)
      forall a. Show a => a -> a -> Path
l     Float
x1        Float
y4
      forall a. Show a => a -> a -> Path
l     Float
rx1       Float
y4
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
rx1       Float
ry1  Float
0   Bool
False Bool
False (-Float
rx1)      Float
y4
      Path
S.z
    bot :: AttributeValue
bot = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Float
x1)       Float
y5
      forall a. Show a => a -> a -> Path
l   (-Float
x1)      (Float
y6 forall a. Num a => a -> a -> a
- Float
r1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
r1        Float
r1   Float
0   Bool
False Bool
False (-Float
x1 forall a. Num a => a -> a -> a
+ Float
r1)  Float
y6
      forall a. Show a => a -> a -> Path
l   ( Float
x1 forall a. Num a => a -> a -> a
- Float
r1)  Float
y6
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
r1        Float
r1   Float
0   Bool
False Bool
False   Float
x1       (Float
y6 forall a. Num a => a -> a -> a
- Float
r1)
      forall a. Show a => a -> a -> Path
l     Float
x1        Float
y5
      forall a. Show a => a -> a -> Path
l     Float
rx1       Float
y5
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
rx1       Float
ry1  Float
0   Bool
False Bool
True  (-Float
rx1)      Float
y5
      Path
S.z
    button :: MarkupM ()
button = 
      MarkupM ()
S.ellipse
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cy (AttributeValue -> Attribute) -> Float -> Attribute
.: (Float
y5 forall a. Num a => a -> a -> a
+ Float
y4)forall a. Fractional a => a -> a -> a
/Float
2)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.rx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
rx2)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.ry (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
ry2)