packages feed

waterfall-cad-examples-0.6.0.0: src/TwoDBooleansExample.hs

{-|
<<models/2d-booleans.glb>>
-}
module TwoDBooleansExample 
( twoDBooleansExample
) where

import qualified Waterfall.TwoD.Shape as Shape
import qualified Waterfall.Booleans as Booleans
import Waterfall.TwoD.Transforms (translate2D)
import Waterfall.Solids (prism, Solid)
import Linear (V2 (..))

twoDBooleansExample :: Solid
twoDBooleansExample = 
    let offsetSquare = translate2D (V2 0.5 0.5) Shape.centeredSquare
        complexShape = Booleans.difference 
            (Booleans.union Shape.unitCircle offsetSquare)
            (Booleans.intersection Shape.unitCircle offsetSquare)
    in prism 0.2 complexShape