{-# LANGUAGE     OverloadedStrings       #-}



module SvgIcons.Icons.Religion 
  ( svgReligion
  , xp
  , taijitu
  , crossLatin
  , crossGreek
  , crescentAndStar
  , starOfDavid
  , crossOrthodox
  , dharmachakra
  , iChingHexagram
  , ouroboros
  , ichthys
  ) where

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

import SvgIcons.Core.Geometry
import SvgIcons.Core.Utils



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

>svgReligion :: [ (String , S.Svg) ]
>svgReligion =
>  [ (,) "xp"               xp
>  , (,) "taijitu"         (taijitu "black" "white")
>  , (,) "crossLatin"       crossLatin
>  , (,) "crossGreek"       crossGreek
>  , (,) "crescentAndStar"  crescentAndStar
>  , (,) "starOfDavid"      starOfDavid
>  , (,) "crossOrthodox"    crossOrthodox
>  , (,) "dharmachakra"     dharmachakra
>  , (,) "exampleHexagram" (iChingHexagram (8,8,7,8,7,7))
>  , (,) "ouroboros"        ouroboros
>  , (,) "ichthys"          ichthys
>  ]
-}
svgReligion :: [ (String , S.Svg) ]
svgReligion :: [(String, Svg)]
svgReligion =
  [ (,) String
"xp"               Svg
xp
  , (,) String
"taijitu"         (String -> String -> Svg
taijitu String
"black" String
"white")
  , (,) String
"crossLatin"       Svg
crossLatin
  , (,) String
"crossGreek"       Svg
crossGreek
  , (,) String
"crescentAndStar"  Svg
crescentAndStar
  , (,) String
"starOfDavid"      Svg
starOfDavid
  , (,) String
"crossOrthodox"    Svg
crossOrthodox
  , (,) String
"dharmachakra"     Svg
dharmachakra
  , (,) String
"exampleHexagram" ((Int, Int, Int, Int, Int, Int) -> Svg
iChingHexagram (Int
8,Int
8,Int
7,Int
8,Int
7,Int
7))
  , (,) String
"ouroboros"        Svg
ouroboros
  , (,) String
"ichthys"          Svg
ichthys
  ]


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




{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/xp_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/xp_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/xp_strk.svg)
-}
xp :: Svg
xp :: Svg
xp = 
  Svg -> Svg
S.g 
    forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__xp"
    forall a b. (a -> b) -> a -> b
$ do
      Svg
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
rho
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fillRule AttributeValue
"evenodd"
      Svg
S.path 
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
chi
        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)
      Svg
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
alpha
        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.strokeLinejoin AttributeValue
"round"
      Svg
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
omega
        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.strokeLinejoin AttributeValue
"round"
  where
    w :: Double
w = Double
0.07
    k1 :: Double
k1 = Double
0.5
    k2 :: Double
k2 = Double
0.96
    k3 :: Double
k3 = Double
0.17
    r1 :: Double
r1 = Double
0.2
    a :: Double
a  = Double
0.3
    chi :: AttributeValue
chi = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (   -Double
w)  (   -Double
w)
      forall a. Show a => a -> a -> Path
l   (   -Double
w)  (-Double
k1forall a. Num a => a -> a -> a
+Double
w)
      forall a. Show a => a -> a -> a -> a -> Path
q   (   -Double
w)  (-Double
k1  )  ( -Double
2forall a. Num a => a -> a -> a
*Double
w)  (-Double
k1  )
      forall a. Show a => a -> a -> Path
l   (  Double
2forall a. Num a => a -> a -> a
*Double
w)  (-Double
k1  )
      forall a. Show a => a -> a -> a -> a -> Path
q   (    Double
w)  (-Double
k1  )  (    Double
w)  (-Double
k1forall a. Num a => a -> a -> a
+Double
w)
      forall a. Show a => a -> a -> Path
l   (    Double
w)  (   -Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
k1forall a. Num a => a -> a -> a
-Double
w)  (   -Double
w)
      forall a. Show a => a -> a -> a -> a -> Path
q   ( Double
k1  )  (   -Double
w)  ( Double
k1  )  ( -Double
2forall a. Num a => a -> a -> a
*Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
k1  )  (  Double
2forall a. Num a => a -> a -> a
*Double
w)
      forall a. Show a => a -> a -> a -> a -> Path
q   ( Double
k1  )  (    Double
w)  ( Double
k1forall a. Num a => a -> a -> a
-Double
w)  (    Double
w)
      forall a. Show a => a -> a -> Path
l   (    Double
w)  (    Double
w)
      forall a. Show a => a -> a -> Path
l   (    Double
w)  ( Double
k1forall a. Num a => a -> a -> a
-Double
w)
      forall a. Show a => a -> a -> a -> a -> Path
q   (    Double
w)  ( Double
k1  )  (  Double
2forall a. Num a => a -> a -> a
*Double
w)  ( Double
k1  )
      forall a. Show a => a -> a -> Path
l   ( -Double
2forall a. Num a => a -> a -> a
*Double
w)  ( Double
k1  )
      forall a. Show a => a -> a -> a -> a -> Path
q   (   -Double
w)  ( Double
k1  )  (   -Double
w)  ( Double
k1forall a. Num a => a -> a -> a
-Double
w)
      forall a. Show a => a -> a -> Path
l    (  -Double
w)  (    Double
w)
      forall a. Show a => a -> a -> Path
l   (-Double
k1forall a. Num a => a -> a -> a
+Double
w)  (    Double
w)
      forall a. Show a => a -> a -> a -> a -> Path
q   (-Double
k1  )  (    Double
w)  (-Double
k1  )  (  Double
2forall a. Num a => a -> a -> a
*Double
w)
      forall a. Show a => a -> a -> Path
l   (-Double
k1  )  ( -Double
2forall a. Num a => a -> a -> a
*Double
w)
      forall a. Show a => a -> a -> a -> a -> Path
q   (-Double
k1  )  (   -Double
w)  (-Double
k1forall a. Num a => a -> a -> a
+Double
w)  (   -Double
w)
      Path
S.z
    rho :: AttributeValue
rho = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (    Double
w)  (-Double
k2  )
      forall a. Show a => a -> a -> Path
l   ( -Double
2forall a. Num a => a -> a -> a
*Double
w)  (-Double
k2  )
      forall a. Show a => a -> a -> a -> a -> Path
q   (   -Double
w)  (-Double
k2  )  (   -Double
w)  (-Double
k2forall a. Num a => a -> a -> a
+Double
w)
      forall a. Show a => a -> a -> Path
l   (   -Double
w)  ( Double
k2forall a. Num a => a -> a -> a
-Double
w)
      forall a. Show a => a -> a -> a -> a -> Path
q   (   -Double
w)  ( Double
k2  )  ( -Double
2forall a. Num a => a -> a -> a
*Double
w)  ( Double
k2)
      forall a. Show a => a -> a -> Path
l   (  Double
2forall a. Num a => a -> a -> a
*Double
w)  ( Double
k2  )
      forall a. Show a => a -> a -> a -> a -> Path
q   (    Double
w)  ( Double
k2  )  (    Double
w)  ( Double
k2forall a. Num a => a -> a -> a
-Double
w)
      forall a. Show a => a -> a -> Path
l   (    Double
w)  (-Double
k2forall a. Num a => a -> a -> a
+Double
2forall a. Num a => a -> a -> a
*Double
r1)
      forall a. Show a => a -> a -> Path
l   ( Double
k3forall a. Num a => a -> a -> a
+Double
w)  (-Double
k2forall a. Num a => a -> a -> a
+Double
2forall 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
True  Bool
False ( Double
k3forall a. Num a => a -> a -> a
+Double
w)  (-Double
k2)
      Path
S.z
      forall a. Show a => a -> a -> Path
m   (    Double
w)  (-Double
k2forall a. Num a => a -> a -> a
+Double
2forall a. Num a => a -> a -> a
*Double
r1 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> a -> a -> a -> a -> Path
c   (Double
2forall a. Num a => a -> a -> a
*Double
k3forall a. Num a => a -> a -> a
+Double
w)  (-Double
k2forall a. Num a => a -> a -> a
+Double
2forall a. Num a => a -> a -> a
*Double
r1)  (Double
2forall a. Num a => a -> a -> a
*Double
k3forall a. Num a => a -> a -> a
+Double
w)  (-Double
k2)  ( Double
w) (-Double
k2 forall a. Num a => a -> a -> a
+ Double
w)
      Path
S.z
    alpha :: AttributeValue
alpha = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  (-Double
0.7forall a. Num a => a -> a -> a
-Double
aforall a. Fractional a => a -> a -> a
/Double
2)  ( Double
aforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l  (-Double
0.7    )  (-Double
aforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l  (-Double
0.7forall a. Num a => a -> a -> a
+Double
aforall a. Fractional a => a -> a -> a
/Double
2)  ( Double
aforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
m  (-Double
0.7forall a. Num a => a -> a -> a
-Double
aforall a. Fractional a => a -> a -> a
/Double
4)  ( Double
0  )
      forall a. Show a => a -> a -> Path
l  (-Double
0.7    )  ( Double
aforall a. Fractional a => a -> a -> a
/Double
4)
      forall a. Show a => a -> a -> Path
l  (-Double
0.7forall a. Num a => a -> a -> a
+Double
aforall a. Fractional a => a -> a -> a
/Double
4)  ( Double
0  )
    omega :: AttributeValue
omega = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  ( Double
0.7forall a. Num a => a -> a -> a
-Double
aforall a. Fractional a => a -> a -> a
/Double
2)  ( Double
aforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l  ( Double
0.7forall a. Num a => a -> a -> a
-Double
aforall a. Fractional a => a -> a -> a
/Double
5)  ( Double
aforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa (Double
aforall a. Fractional a => a -> a -> a
/Double
2)  (Double
aforall a. Fractional a => a -> a -> a
/Double
2)  Double
0  Bool
True  Bool
True  (Double
0.7forall a. Num a => a -> a -> a
+Double
aforall a. Fractional a => a -> a -> a
/Double
5) (Double
aforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l  ( Double
0.7forall a. Num a => a -> a -> a
+Double
aforall a. Fractional a => a -> a -> a
/Double
2)  ( Double
aforall a. Fractional a => a -> a -> a
/Double
2)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/taijitu_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/taijitu_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/taijitu_strk.svg)

You must provide both yin and yang colors
-}
taijitu :: String -> String -> Svg
taijitu :: String -> String -> Svg
taijitu String
yinColor String
yangColor =
    Svg -> Svg
S.g 
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__taijitu"
      forall a b. (a -> b) -> a -> b
$ do
        Svg
outerCircle
        Svg
yin
        Svg
yangDot
        Svg
yinDot
  where
    r1 :: Float
r1  = Float
0.92
    r1m :: Float
r1m = Float
0.5 forall a. Num a => a -> a -> a
* Float
r1
    r2 :: Float
r2  = Float
r1 forall a. Fractional a => a -> a -> a
/ Float
6
    outerCircle :: Svg
outerCircle =
      Svg
S.circle
        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
0)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.r  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
r1)
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill (forall a. ToValue a => a -> AttributeValue
S.toValue String
yangColor)
    yin :: Svg
yin =
      Svg
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill (forall a. ToValue a => a -> AttributeValue
S.toValue String
yinColor)
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
yinDirs
    yinDirs :: AttributeValue
yinDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   ( -Float
r1)  Float
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Float
r1m  Float
r1m  Float
0  Bool
True  Bool
False   Float
0    Float
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Float
r1m  Float
r1m  Float
0  Bool
True  Bool
True  ( Float
r1)  Float
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Float
r1   Float
r1   Float
0  Bool
True  Bool
True  (-Float
r1)  Float
0
      Path
S.z
    yangDot :: Svg
yangDot =
      Svg
S.circle
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0 forall a. Num a => a -> a -> a
+ Float
r1m)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0 )
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.r  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
r2)
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.stroke AttributeValue
"none"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill (forall a. ToValue a => a -> AttributeValue
S.toValue String
yangColor)
    yinDot :: Svg
yinDot =
      Svg
S.circle
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0 forall a. Num a => a -> a -> a
- Float
r1m)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0 )
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.r  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
r2)
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.stroke AttributeValue
"none"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill (forall a. ToValue a => a -> AttributeValue
S.toValue String
yinColor)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossLatin_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossLatin_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossLatin_strk.svg)
-}
crossLatin :: Svg
crossLatin :: Svg
crossLatin =
    Svg
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__crossLatin"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
  where
    w :: Double
w  = Double
0.1
    k1 :: Double
k1 = Double
0.9
    k2 :: Double
k2 = Double
k1 forall a. Num a => a -> a -> a
* Double
3forall a. Fractional a => a -> a -> a
/Double
4
    km :: Double
km = -Double
k1 forall a. Num a => a -> a -> a
+ Double
k1 forall a. Num a => a -> a -> a
* Double
2forall a. Fractional a => a -> a -> a
/Double
3
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  (-Double
w )  (-Double
k1    )
      forall a. Show a => a -> a -> Path
l  (-Double
w )  ( Double
km forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (-Double
k2)  ( Double
km forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (-Double
k2)  ( Double
km forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (-Double
w )  ( Double
km forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (-Double
w )  ( Double
k1    )
      forall a. Show a => a -> a -> Path
l  ( Double
w )  ( Double
k1    )
      forall a. Show a => a -> a -> Path
l  ( Double
w )  ( Double
km forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  ( Double
k2)  ( Double
km forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  ( Double
k2)  ( Double
km forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  ( Double
w )  ( Double
km forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  ( Double
w )  (-Double
k1    )
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossGreek_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossGreek_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossGreek_strk.svg)
-}
crossGreek :: Svg
crossGreek :: Svg
crossGreek = 
    Svg
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__crossGreek"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
  where
    w :: Double
w = Double
0.25
    k :: Double
k = Double
0.9
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
w)  (-Double
w)
      forall a. Show a => a -> a -> Path
l   (-Double
w)  (-Double
k)
      forall a. Show a => a -> a -> Path
l   ( Double
w)  (-Double
k)
      forall a. Show a => a -> a -> Path
l   ( Double
w)  (-Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
k)  (-Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
k)  ( Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
w)  ( Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
w)  ( Double
k)
      forall a. Show a => a -> a -> Path
l   (-Double
w)  ( Double
k)
      forall a. Show a => a -> a -> Path
l   (-Double
w)  ( Double
w)
      forall a. Show a => a -> a -> Path
l   (-Double
k)  ( Double
w)
      forall a. Show a => a -> a -> Path
l   (-Double
k)  (-Double
w)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossOrthodox_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossOrthodox_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crossOrthodox_strk.svg)
-}
crossOrthodox :: Svg
crossOrthodox :: Svg
crossOrthodox =
    Svg
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__crossOrthodox"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
  where
    w :: Double
w = Double
0.1
    y1 :: Double
y1 = -Double
0.84
    y2 :: Double
y2 = Double
y1 forall a. Num a => a -> a -> a
+ Double
2forall a. Num a => a -> a -> a
*Double
w
    y3 :: Double
y3 = Double
y1 forall a. Num a => a -> a -> a
+ Double
6forall a. Num a => a -> a -> a
*Double
w
    y4 :: Double
y4 = Double
0.6
    y5 :: Double
y5 = -Double
y1
    x1 :: Double
x1 = (Double
y1 forall a. Num a => a -> a -> a
+ Double
w) forall a. Num a => a -> a -> a
* Double
0.618 forall a. Num a => a -> a -> a
- Double
w
    x2 :: Double
x2 = Double
x1 forall a. Fractional a => a -> a -> a
/ Double
2
    x3 :: Double
x3 = Double
0
    x4 :: Double
x4 = Double
x5 forall a. Fractional a => a -> a -> a
/ Double
2
    x5 :: Double
x5 = -Double
x1
    α :: Double
α  = forall a. Floating a => a
pi forall a. Fractional a => a -> a -> a
/ Double
3
    ct :: Double
ct = Double
1 forall a. Fractional a => a -> a -> a
/ forall a. Floating a => a -> a
tan Double
α 
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  (Double
x3 forall a. Num a => a -> a -> a
- Double
w)  (Double
y3 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x1 forall a. Num a => a -> a -> a
- Double
w)  (Double
y3 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x1 forall a. Num a => a -> a -> a
- Double
w)  (Double
y3 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
- Double
w)  (Double
y3 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
- Double
w)  (Double
y2 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x2 forall a. Num a => a -> a -> a
- Double
w)  (Double
y2 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x2 forall a. Num a => a -> a -> a
- Double
w)  (Double
y2 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
- Double
w)  (Double
y2 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
- Double
w)  (Double
y1 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y1 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y2 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x4 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y2 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x4 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y2 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y2 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y3 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x5 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y3 forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x5 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y3 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y3 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y4 forall a. Num a => a -> a -> a
- Double
w forall a. Num a => a -> a -> a
+ Double
w  forall a. Num a => a -> a -> a
* Double
ct)
      forall a. Show a => a -> a -> Path
l  (Double
x4 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y4 forall a. Num a => a -> a -> a
- Double
w forall a. Num a => a -> a -> a
+ (Double
x4 forall a. Num a => a -> a -> a
+ Double
w) forall a. Num a => a -> a -> a
* Double
ct)
      forall a. Show a => a -> a -> Path
l  (Double
x4 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y4 forall a. Num a => a -> a -> a
+ Double
w forall a. Num a => a -> a -> a
+ (Double
x4 forall a. Num a => a -> a -> a
+ Double
w) forall a. Num a => a -> a -> a
* Double
ct)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y4 forall a. Num a => a -> a -> a
+ Double
w forall a. Num a => a -> a -> a
+ Double
w  forall a. Num a => a -> a -> a
* Double
ct)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
+ Double
w)  (Double
y5 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
- Double
w)  (Double
y5 forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
- Double
w)  (Double
y4 forall a. Num a => a -> a -> a
+ Double
w forall a. Num a => a -> a -> a
- Double
w  forall a. Num a => a -> a -> a
* Double
ct)
      forall a. Show a => a -> a -> Path
l  (Double
x2 forall a. Num a => a -> a -> a
- Double
w)  (Double
y4 forall a. Num a => a -> a -> a
+ Double
w forall a. Num a => a -> a -> a
- (Double
x4 forall a. Num a => a -> a -> a
+ Double
w) forall a. Num a => a -> a -> a
* Double
ct)
      forall a. Show a => a -> a -> Path
l  (Double
x2 forall a. Num a => a -> a -> a
- Double
w)  (Double
y4 forall a. Num a => a -> a -> a
- Double
w forall a. Num a => a -> a -> a
- (Double
x4 forall a. Num a => a -> a -> a
+ Double
w) forall a. Num a => a -> a -> a
* Double
ct)
      forall a. Show a => a -> a -> Path
l  (Double
x3 forall a. Num a => a -> a -> a
- Double
w)  (Double
y4 forall a. Num a => a -> a -> a
- Double
w forall a. Num a => a -> a -> a
- Double
w  forall a. Num a => a -> a -> a
* Double
ct)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crescentAndStar_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crescentAndStar_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/crescentAndStar_strk.svg)
-}
crescentAndStar :: Svg
crescentAndStar :: Svg
crescentAndStar =
    Svg -> Svg
S.g 
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__crescentAndStar"
      forall a b. (a -> b) -> a -> b
$ do
        Svg
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
moonDirs
        Int -> Float -> (Float, Float) -> Svg
starRegular Int
5 Float
0.3 (Float
0.55, Float
0.05)
  where
    kx :: Double
kx = Double
0.55
    ky :: Double
ky = Double
0.55
    r1 :: Double
r1 = Double
0.8
    r2 :: Double
r2 = Double
0.65
    moonDirs :: AttributeValue
moonDirs = 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 -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
r1    Double
r1   Double
0  Bool
True  Bool
False ( Double
kx) ( Double
ky)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
r2    Double
r2   Double
0  Bool
True  Bool
True  ( Double
kx) (-Double
ky)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/starOfDavid_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/starOfDavid_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/starOfDavid_strk.svg)
-}
starOfDavid :: Svg
starOfDavid :: Svg
starOfDavid =
  Svg -> Svg
S.g
    forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__starOfDavid"
    forall a b. (a -> b) -> a -> b
$ Int -> Float -> Float -> (Float, Float) -> Svg
starPolygonOverlap Int
6 Float
0.9 Float
0.1 (Float
0,Float
0)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/exampleHexagram_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/exampleHexagram_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/exampleHexagram_strk.svg)

Function to draw a hexagram from the Yi Ching (the Book of Mutations).

If all six numbers belong to @{0,1}@ it draws only the hexagram lines.
Otherwise, the numbers are printed right to their line

__NOTE:__ as always with the Yi Ching, numbers go from bottom to top 
(the first number of the tuple corresponds to the lowest line)
-}
iChingHexagram :: (Int,Int,Int,Int,Int,Int) -> Svg
iChingHexagram :: (Int, Int, Int, Int, Int, Int) -> Svg
iChingHexagram (Int
n1,Int
n2,Int
n3,Int
n4,Int
n5,Int
n6) =
    Svg -> Svg
S.g 
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__iChingHexagram"
      forall a b. (a -> b) -> a -> b
$ do
        Svg
S.path
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
lines
        if Bool
doNotPrintNumbers
          then forall a. Monoid a => a
mempty
          else Svg
numbers
  where
    doNotPrintNumbers :: Bool
doNotPrintNumbers =
      (\Int
k -> Int
k forall a. Eq a => a -> a -> Bool
== Int
0 Bool -> Bool -> Bool
|| Int
k forall a. Eq a => a -> a -> Bool
== Int
1) forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
`all` [Int
n1,Int
n2,Int
n3,Int
n4,Int
n5,Int
n6]
    x1 :: Float
x1 = Float
0.7
    x2 :: Float
x2 = Float
0.1
    ky :: Float
ky = Float
2 forall a. Fractional a => a -> a -> a
/ Float
14
    line :: a -> Float -> Path
line a
k Float
y =
      if (forall a. Integral a => a -> Bool
odd a
k)
        then   forall a. Show a => a -> a -> Path
m (-Float
x1) Float
y forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> forall a. Show a => a -> a -> Path
l Float
x1 Float
y
        else   forall a. Show a => a -> a -> Path
m (-Float
x1) Float
y forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> forall a. Show a => a -> a -> Path
l (-Float
x2) Float
y forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> forall a. Show a => a -> a -> Path
m Float
x2 Float
y forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> forall a. Show a => a -> a -> Path
l Float
x1 Float
y
    lines :: AttributeValue
lines = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall {a}. Integral a => a -> Float -> Path
line Int
n6 (-Float
5forall a. Num a => a -> a -> a
*Float
ky)
      forall {a}. Integral a => a -> Float -> Path
line Int
n5 (-Float
3forall a. Num a => a -> a -> a
*Float
ky)
      forall {a}. Integral a => a -> Float -> Path
line Int
n4 (-Float
1forall a. Num a => a -> a -> a
*Float
ky)
      forall {a}. Integral a => a -> Float -> Path
line Int
n3 ( Float
1forall a. Num a => a -> a -> a
*Float
ky)
      forall {a}. Integral a => a -> Float -> Path
line Int
n2 ( Float
3forall a. Num a => a -> a -> a
*Float
ky)
      forall {a}. Integral a => a -> Float -> Path
line Int
n1 ( Float
5forall a. Num a => a -> a -> a
*Float
ky)
    number :: a -> Float -> Svg
number a
k Float
y =
      Svg -> Svg
S.text_ (forall a. IsString a => String -> a
fromString forall a b. (a -> b) -> a -> b
$ forall a. Show a => a -> String
show a
k)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.x (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0.85)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.y (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
y)
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.dominantBaseline AttributeValue
"central"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.textAnchor  AttributeValue
"middle"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fontFamily  AttributeValue
"Times New Roman, serif"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fontSize    AttributeValue
"0.2"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeWidth AttributeValue
"0"
    numbers :: Svg
numbers = 
      Svg -> Svg
S.g forall a b. (a -> b) -> a -> b
$ do
        forall {a}. Show a => a -> Float -> Svg
number Int
n6 (-Float
5forall a. Num a => a -> a -> a
*Float
ky)
        forall {a}. Show a => a -> Float -> Svg
number Int
n5 (-Float
3forall a. Num a => a -> a -> a
*Float
ky)
        forall {a}. Show a => a -> Float -> Svg
number Int
n4 (-Float
1forall a. Num a => a -> a -> a
*Float
ky)
        forall {a}. Show a => a -> Float -> Svg
number Int
n3 ( Float
1forall a. Num a => a -> a -> a
*Float
ky)
        forall {a}. Show a => a -> Float -> Svg
number Int
n2 ( Float
3forall a. Num a => a -> a -> a
*Float
ky)
        forall {a}. Show a => a -> Float -> Svg
number Int
n1 ( Float
5forall a. Num a => a -> a -> a
*Float
ky)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/dharmachakra_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/dharmachakra_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/dharmachakra_strk.svg)
-}
dharmachakra :: Svg
dharmachakra :: Svg
dharmachakra =
    Svg
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__dharmachakra"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fillRule AttributeValue
"evenodd"
      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
dirs
  where
    w :: Double
w  = Double
0.07
    k :: Double
k  = forall a. Floating a => a -> a
sqrt Double
2
    k2 :: Double
k2 = Double
0.5 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2 
    r1 :: Double
r1 = Double
0.3
    r2 :: Double
r2 = Double
0.8
    trapezoid :: Double -> Path
trapezoid Double
β = do
      forall a. Show a => a -> a -> Path
m   (Double
r1 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos Double
β) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4))
          (Double
r1 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin Double
β) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4))
      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
False  Bool
True
          (Double
r1 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos Double
β))
          (Double
r1 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin Double
β))
      forall a. Show a => a -> a -> Path
l   (Double
r2 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
- forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
2))
          (Double
r2 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
- forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
2))
      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
False  Bool
False
          (Double
r2 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos Double
β) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ Double
3forall a. Num a => a -> a -> a
*forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4))
          (Double
r2 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin Double
β) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ Double
3forall a. Num a => a -> a -> a
*forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4))
      Path
S.z
    outerStick :: Double -> Path
outerStick Double
β = do
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
w  Double
w  Double
0  Bool
True  Bool
True
          (Double
r2 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos Double
β) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4))
          (Double
r2 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin Double
β) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4))
      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
False  Bool
True
          (Double
r2 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
cos Double
β))
          (Double
r2 forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin forall a b. (a -> b) -> a -> b
$ Double
β forall a. Num a => a -> a -> a
+ forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4) forall a. Num a => a -> a -> a
+ (Double
w forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sqrt Double
2) forall a. Num a => a -> a -> a
* (forall a. Floating a => a -> a
sin Double
β))
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m    Double
0.001   (Double
r1 forall a. Num a => a -> a -> a
- Double
w)
      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
0  (Double
r1 forall a. Num a => a -> a -> a
- Double
w)
      Path
S.z
      forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (Double -> Path
trapezoid  forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4 forall a. Num a => a -> a -> a
*)) [Double
0..Double
7]
      forall a. Show a => a -> a -> Path
m   (Double
r2 forall a. Num a => a -> a -> a
+ Double
w) (-Double
w)
      forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (Double -> Path
outerStick forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
4 forall a. Num a => a -> a -> a
*)) [Double
0..Double
7]
      Path
S.z
      


{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/ouroboros_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/ouroboros_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/ouroboros_strk.svg)
-}
ouroboros :: Svg
ouroboros :: Svg
ouroboros =
  Svg -> Svg
S.g 
    forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__ouroboros"
    forall a b. (a -> b) -> a -> b
$ Svg -> Svg
S.g 
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 Double
0.05 forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
30 Integer
0 Integer
0)
        forall a b. (a -> b) -> a -> b
$ do
          Svg
S.path
            forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fillRule AttributeValue
"evenodd"
            forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
          Svg
S.circle
            forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.cx AttributeValue
"-0.25"
            forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.cy AttributeValue
"-0.8"
            forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.r  AttributeValue
" 0.01"
  where
    w :: Double
w = Double
0.1
    r :: Double
r = Double
0.78
    β :: Double
β = -forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
2 forall a. Num a => a -> a -> a
- forall a. Floating a => a
piforall a. Fractional a => a -> a -> a
/Double
6
    r1 :: Double
r1 = Double
0.35
    r2 :: Double
r2 = Double
0.26
    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
r forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa       Double
w         Double
w  Double
0  Bool
True  Bool
False  Double
0  (- Double
r forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  (Double
r forall a. Num a => a -> a -> a
- Double
w)   (Double
r forall a. Num a => a -> a -> a
- Double
w) Double
0  Bool
True  Bool
True   ((Double
rforall a. Num a => a -> a -> a
-Double
w) forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
cos Double
β) ((Double
rforall a. Num a => a -> a -> a
-Double
w) forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sin Double
β)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r1        Double
r1     Double
0  Bool
False Bool
False  Double
0  (- Double
r forall a. Num a => a -> a -> a
+ Double
w)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa       Double
w         Double
w  Double
0  Bool
True  Bool
True   Double
0  (- Double
r forall a. Num a => a -> a -> a
- Double
w)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r2        Double
r2     Double
0  Bool
False Bool
False  ((Double
rforall a. Num a => a -> a -> a
+Double
w) forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
cos Double
β) ((Double
rforall a. Num a => a -> a -> a
+Double
w) forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sin Double
β)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  (Double
r forall a. Num a => a -> a -> a
+ Double
w)   (Double
r forall a. Num a => a -> a -> a
+ Double
w) Double
0  Bool
True  Bool
False  Double
0  (- Double
r forall a. Num a => a -> a -> a
- Double
w)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/ichthys_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/ichthys_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/religion/ichthys_strk.svg)
-}
ichthys :: Svg
ichthys :: Svg
ichthys =
    Svg
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.class_ AttributeValue
"HaskellSvgIcons__ichthys"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fillRule AttributeValue
"evenodd"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
  where
    k1 :: Double
k1 =  Double
0.1
    k2 :: Double
k2 =  Double
k1 forall a. Fractional a => a -> a -> a
/ forall a. Floating a => a -> a
sqrt Double
2
    x1 :: Double
x1 = -Double
0.85
    x2 :: Double
x2 =  Double
0.63
    x3 :: Double
x3 = -Double
x1
    y1 :: Double
y1 = -Double
0.5
    y2 :: Double
y2 = -Double
y1
    r1 :: Double
r1 =  Double
0.93
    r2 :: Double
r2 =  Double
r1 forall a. Num a => a -> a -> a
+ Double
2 forall a. Num a => a -> a -> a
* Double
k1
    dirs :: AttributeValue
dirs = 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
k1)  Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r1   Double
r1   Double
0   Bool
False  Bool
True   (Double
x2 forall a. Num a => a -> a -> a
- Double
k1)  Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r1   Double
r1   Double
0   Bool
False  Bool
True   (Double
x1 forall a. Num a => a -> a -> a
+ Double
k1)  Double
0
      Path
S.z
      forall a. Show a => a -> a -> Path
m   (Double
x1 forall a. Num a => a -> a -> a
- Double
k1)  Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r2   Double
r2   Double
0   Bool
False  Bool
True    Double
x2        (-Double
k1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r1   Double
r1   Double
0   Bool
False  Bool
False  (Double
x3 forall a. Num a => a -> a -> a
- Double
k2)  ( Double
y1)
      forall a. Show a => a -> a -> Path
l   (Double
x3 forall a. Num a => a -> a -> a
+ Double
k2)  ( Double
y1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r2   Double
r2   Double
0   Bool
False  Bool
True   (Double
x2 forall a. Num a => a -> a -> a
+ Double
k1)    Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r2   Double
r2   Double
0   Bool
False  Bool
True   (Double
x3 forall a. Num a => a -> a -> a
+ Double
k2)  ( Double
y2)
      forall a. Show a => a -> a -> Path
l   (Double
x3 forall a. Num a => a -> a -> a
- Double
k2)  ( Double
y2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r1   Double
r1   Double
0   Bool
False  Bool
False   Double
x2        ( Double
k1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r2   Double
r2   Double
0   Bool
False  Bool
True   (Double
x1 forall a. Num a => a -> a -> a
- Double
k1)    Double
0
      Path
S.z