implicit-0.3.0.0: Graphics/Implicit.hs
-- Implicit CAD. Copyright (C) 2011, Christopher Olah (chris@colah.ca)
-- Copyright (C) 2014 2015 2016, Julia Longtin (julial@turinglace.com)
-- Released under the GNU AGPLV3+, see LICENSE
{- The purpose of this file is to pass on the functionality we want
to be accessible to an end user who is compiling objects using
this haskell library. -}
module Graphics.Implicit (
module P,
module E,
module W,
writeSVG,
writeDXF2,
writeSTL,
writeBinSTL,
writeOBJ,
writeTHREEJS,
writeSCAD2,
writeSCAD3,
writeGCodeHacklabLaser,
writePNG2,
writePNG3
) where
import Prelude(FilePath, IO)
-- The primitive objects, and functions for manipulating them.
-- MAYBEFIXME: impliment slice operation, regularPolygon and zsurface primitives.
import Graphics.Implicit.Primitives as P (translate, scale, complement, union, intersect, difference, unionR, intersectR, differenceR, shell, extrudeR, extrudeRM, extrudeRotateR, extrudeOnEdgeOf, sphere, rect3R, circle, cylinder, cylinder2, rectR, polygonR, rotateExtrude, rotate3, rotate3V, pack3, rotate, pack2, implicit)
-- The Extended OpenScad interpreter.
import Graphics.Implicit.ExtOpenScad as E (runOpenscad)
-- typesclasses and types defining the world, or part of the world.
import Graphics.Implicit.Definitions as W (ℝ, SymbolicObj2, SymbolicObj3)
-- Functions for writing files based on the result of operations on primitives.
import qualified Graphics.Implicit.Export as Export (writeSVG, writeDXF2, writeSTL, writeBinSTL, writeOBJ, writeSCAD2, writeSCAD3, writeTHREEJS, writeGCodeHacklabLaser, writePNG)
-- We want Export to be a bit less polymorphic
-- (so that types will collapse nicely)
writeSVG :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
writeSVG = Export.writeSVG
writeDXF2 :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
writeDXF2 = Export.writeDXF2
writeSTL :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeSTL = Export.writeSTL
writeBinSTL :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeBinSTL = Export.writeBinSTL
writeOBJ :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeOBJ = Export.writeOBJ
writeSCAD2 :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
writeSCAD2 = Export.writeSCAD2
writeSCAD3 :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeSCAD3 = Export.writeSCAD3
writeTHREEJS :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writeTHREEJS = Export.writeTHREEJS
writeGCodeHacklabLaser :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
writeGCodeHacklabLaser = Export.writeGCodeHacklabLaser
writePNG2 :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
writePNG2 = Export.writePNG
writePNG3 :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
writePNG3 = Export.writePNG