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, Epsilon point) =>
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, Epsilon 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, Epsilon point) =>
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, Epsilon 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, Epsilon point) =>
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, Epsilon 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, Epsilon 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, Epsilon point) =>
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, Epsilon 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)
]