/
Implicit.hs
66 lines (59 loc) · 1.98 KB
/
Implicit.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
-- Implicit CAD. Copyright (C) 2011, Christopher Olah (chris@colah.ca)
-- Released under the GNU GPL, see LICENSE
{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, FlexibleContexts, TypeSynonymInstances, UndecidableInstances #-}
{- The sole purpose of this file it to pass on the
functionality we want to be accessible to the end user. -}
module Graphics.Implicit(
-- Operations
translate,
scale,
complement,
union, intersect, difference,
unionR, intersectR, differenceR,
shell,
--slice,
extrudeR,
extrudeOnEdgeOf,
-- Primitives
sphere,
rect3R,
circle,
cylinder,
cylinder2,
rectR,
--regularPolygon,
--zsurface,
polygon,
-- Export
writeSVG,
writeSTL,
writeBinSTL,
writeOBJ,
writeTHREEJS,
writeSCAD2,
writeSCAD3,
writeGCodeHacklabLaser,
writeHacklabUltimakerGCode,
writePNG,
runOpenscad,
implicit,
SymbolicObj2,
SymbolicObj3
) where
-- Let's be explicit about where things come from :)
import Graphics.Implicit.Primitives
import Graphics.Implicit.ExtOpenScad (runOpenscad)
import qualified Graphics.Implicit.Export as Export
import Graphics.Implicit.Definitions
-- We want Export to be a bit less polymorphic
-- (so that types will collapse nicely)
writeSVG = Export.writeSVG :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
writeSTL = Export.writeSTL :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeBinSTL = Export.writeBinSTL :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeOBJ = Export.writeOBJ :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeSCAD2 = Export.writeSCAD2 :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
writeSCAD3 = Export.writeSCAD3 :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeTHREEJS = Export.writeTHREEJS :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeGCodeHacklabLaser = Export.writeGCodeHacklabLaser :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
writeHacklabUltimakerGCode = Export.writeHacklabUltimakerGCode :: FilePath -> SymbolicObj3 -> IO ()
writePNG = Export.writePNG :: ℝ -> FilePath -> SymbolicObj3 -> IO ()