-- | Mecha Examples module Language.Mecha.Examples ( example ) where import Language.Mecha.Assembly import Language.Mecha.Primitives import Language.Mecha.Types -- | A simple design example. example :: IO () example = view design design :: Asm () design = do a <- part 1 0.06 8 $ difference sphereCube cyl3 b <- part 1 0.08 8 $ sphereCube c <- part 1.5 0.08 8 $ cyl3 color (0, 0, 0.8) $ place a move (-4, 0, 0) $ color (0.8, 0, 0) $ place b move ( 0, 4, 0) $ color (0, 0.8, 0) $ place c sphereCube = intersection sphere $ scaleXYZ 0.75 cube cyl = scale (0.5, 0.5, 1.2) $ cylinder cyl3 = unions [cyl, rotateX (pi / 2) cyl, rotateY (pi / 2) cyl]