module Graphics.X11.TurtleShape(
lookupShape,
classic
) where
import Control.Arrow(second)
import Data.Maybe(fromMaybe)
lookupShape :: String -> [(Double, Double)]
lookupShape sn = fromMaybe (error errMsg) $ lookup sn shapeList
where errMsg = "There is no shape named " ++ sn
shapeList :: [(String, [(Double, Double)])]
shapeList = [
("classic", classic),
("turtle", turtle)
]
classic :: [(Double, Double)]
classic = clssc ++ reverse (map (second negate) clssc)
where
clssc = [
( 10, 0),
( 16, 6),
(0, 0)
]
turtle :: [(Double, Double)]
turtle = ttl ++ reverse (map (second negate) ttl)
where
ttl = [
( 10, 0),
( 8, 3),
( 10, 5),
( 7, 9),
( 5, 6),
(0, 8),
(4, 7),
(6, 10),
(8, 7),
(7, 5),
(10, 2),
(13, 3),
(16, 0)
]