be a little more explicit, and use applicative more.

This commit is contained in:
Julia Longtin 2019-12-31 15:44:22 +00:00
parent 57784d24fe
commit 8528cc416f

View File

@ -1,7 +1,9 @@
-- Example 17, pulled from our benchmarking suite.
import Prelude ((<$>), ($), zip3, fmap, fromIntegral, (*), (/))
import Graphics.Implicit (union, translate, rect3R, writeSTL)
import Graphics.Implicit.Definitions (Fast, , 3, SymbolicObj3)
default (Fast, )
object2 :: SymbolicObj3
@ -10,12 +12,13 @@ object2 = squarePipe (10,10,10) 1 100
squarePipe :: 3 -> -> -> SymbolicObj3
squarePipe (x,y,z) diameter precision =
union
$ fmap (\start-> translate start
$ ((\start-> translate start
$ rect3R 0 (0,0,0) (diameter,diameter,diameter)
)
$ zip3 (fmap (\n->(fromIntegral n/precision)*x) [0..100])
<$>
zip3 (fmap (\n->(fromIntegral n/precision)*x) [0..100])
(fmap (\n->(fromIntegral n/precision)*y) [0..100])
(fmap (\n->(fromIntegral n/precision)*z) [0..100])
(fmap (\n->(fromIntegral n/precision)*z) [0..100]))
main = writeSTL 1 "example17.stl" object2