module RevolutionExample ( revolutionExample ) where import Waterfall.Solids (Solid) import qualified Waterfall.TwoD.Path2D as Path2D import Waterfall.Revolution (revolution) import Linear (V2 (..)) revolutionExample :: Solid revolutionExample :: Solid revolutionExample = Path2D -> Solid revolution (Path2D -> Solid) -> Path2D -> Solid forall a b. (a -> b) -> a -> b $ V2 Double -> [V2 Double -> (V2 Double, Path2D)] -> Path2D forall path point. Monoid path => point -> [point -> (point, path)] -> path Path2D.pathFrom (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 0 Double 0) [ V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. AnyPath point path => point -> point -> (point, path) Path2D.lineTo (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 1 Double 0) , V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. (AnyPath point path, Num point) => point -> point -> (point, path) Path2D.lineRelative (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 0.1 Double 0.16) , V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. AnyPath point path => point -> point -> (point, path) Path2D.lineTo (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 1 Double 0.2) , Sense -> Double -> V2 Double -> V2 Double -> (V2 Double, Path2D) Path2D.arcRelative Sense Path2D.Clockwise Double 0.1 (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 0 Double 0.2) , V2 Double -> V2 Double -> V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. (AnyPath point path, Num point) => point -> point -> point -> point -> (point, path) Path2D.bezierRelative (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 (-Double 0.6) Double 0.0) (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 (-Double 0.8) Double 2.2) (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 (-Double 0.8) Double 2.6) , V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. AnyPath point path => point -> point -> (point, path) Path2D.lineTo (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 0.5 Double 3.0) , V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. (AnyPath point path, Num point) => point -> point -> (point, path) Path2D.lineRelative (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 0.1 Double 0.16) , V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. (AnyPath point path, Num point) => point -> point -> (point, path) Path2D.lineRelative (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 (-Double 0.2) Double 0.04) , V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. AnyPath point path => point -> point -> (point, path) Path2D.lineTo (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 0.1 Double 3.2) , V2 Double -> V2 Double -> V2 Double -> (V2 Double, Path2D) forall point path. (AnyPath point path, Num point) => point -> point -> point -> (point, path) Path2D.arcViaRelative (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 Double 0.5 Double 0.6) (Double -> Double -> V2 Double forall a. a -> a -> V2 a V2 (-Double 0.1) Double 1.2) ]