Safe Haskell | None |
---|---|
Language | Haskell98 |
- translate :: Object obj vec => vec -> obj -> obj
- scale :: Object obj vec => vec -> obj -> obj
- complement :: Object obj vec => obj -> obj
- union :: forall obj vec. Object obj vec => [obj] -> obj
- intersect :: forall obj vec. Object obj vec => [obj] -> obj
- difference :: forall obj vec. Object obj vec => [obj] -> obj
- unionR :: Object obj vec => ℝ -> [obj] -> obj
- intersectR :: Object obj vec => ℝ -> [obj] -> obj
- differenceR :: Object obj vec => ℝ -> [obj] -> obj
- shell :: Object obj vec => ℝ -> obj -> obj
- extrudeR :: ℝ -> SymbolicObj2 -> ℝ -> SymbolicObj3
- extrudeRotateR :: ℝ -> ℝ -> SymbolicObj2 -> ℝ -> SymbolicObj3
- extrudeRM :: ℝ -> Maybe (ℝ -> ℝ) -> Maybe (ℝ -> ℝ) -> Maybe (ℝ -> ℝ2) -> SymbolicObj2 -> Either ℝ (ℝ2 -> ℝ) -> SymbolicObj3
- extrudeOnEdgeOf :: SymbolicObj2 -> SymbolicObj2 -> SymbolicObj3
- sphere :: ℝ -> SymbolicObj3
- rect3R :: ℝ -> ℝ3 -> ℝ3 -> SymbolicObj3
- circle :: ℝ -> SymbolicObj2
- cylinder :: ℝ -> ℝ -> SymbolicObj3
- cylinder2 :: ℝ -> ℝ -> ℝ -> SymbolicObj3
- rectR :: ℝ -> ℝ2 -> ℝ2 -> SymbolicObj2
- polygonR :: ℝ -> [ℝ2] -> SymbolicObj2
- rotateExtrude :: ℝ -> Maybe ℝ -> Either ℝ2 (ℝ -> ℝ2) -> Either ℝ (ℝ -> ℝ) -> SymbolicObj2 -> SymbolicObj3
- rotate3 :: (ℝ, ℝ, ℝ) -> SymbolicObj3 -> SymbolicObj3
- rotate3V :: ℝ -> ℝ3 -> SymbolicObj3 -> SymbolicObj3
- pack3 :: ℝ2 -> ℝ -> [SymbolicObj3] -> Maybe SymbolicObj3
- rotate :: ℝ -> SymbolicObj2 -> SymbolicObj2
- pack2 :: ℝ2 -> ℝ -> [SymbolicObj2] -> Maybe SymbolicObj2
- writeSVG :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
- writeSTL :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
- writeBinSTL :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
- writeOBJ :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
- writeTHREEJS :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
- writeSCAD2 :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
- writeSCAD3 :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
- writeGCodeHacklabLaser :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
- writePNG2 :: ℝ -> FilePath -> SymbolicObj2 -> IO ()
- writePNG3 :: ℝ -> FilePath -> SymbolicObj3 -> IO ()
- runOpenscad :: [Char] -> Either ParseError (IO (VarLookup, [SymbolicObj2], [SymbolicObj3]))
- implicit :: Object obj vec => (vec -> ℝ) -> (vec, vec) -> obj
- data SymbolicObj2
- data SymbolicObj3
Documentation
translate :: Object obj vec => vec -> obj -> obj Source #
Translate an object by a vector of appropriate dimension.
complement :: Object obj vec => obj -> obj Source #
Complement an Object
difference :: forall obj vec. Object obj vec => [obj] -> obj Source #
intersectR :: Object obj vec => ℝ -> [obj] -> obj Source #
Rounded minimum
differenceR :: Object obj vec => ℝ -> [obj] -> obj Source #
Rounded difference
extrudeR :: ℝ -> SymbolicObj2 -> ℝ -> SymbolicObj3 Source #
extrudeRotateR :: ℝ -> ℝ -> SymbolicObj2 -> ℝ -> SymbolicObj3 Source #
extrudeRM :: ℝ -> Maybe (ℝ -> ℝ) -> Maybe (ℝ -> ℝ) -> Maybe (ℝ -> ℝ2) -> SymbolicObj2 -> Either ℝ (ℝ2 -> ℝ) -> SymbolicObj3 Source #
:: ℝ | Radius of the sphere |
-> SymbolicObj3 | Resulting sphere |
:: ℝ | Rounding of corners |
-> ℝ3 | Bottom.. corner |
-> ℝ3 | Top right... corner |
-> SymbolicObj3 | Resuting cube - (0,0,0) is bottom left... |
:: ℝ | radius of the circle |
-> SymbolicObj2 | resulting circle |
:: ℝ | Radius of the cylinder |
-> ℝ | Height of the cylinder |
-> SymbolicObj3 | Resulting cylinder |
:: ℝ | Radius of the cylinder |
-> ℝ | Second radius of the cylinder |
-> ℝ | Height of the cylinder |
-> SymbolicObj3 | Resulting cylinder |
:: ℝ | |
-> ℝ2 | Bottom left corner |
-> ℝ2 | Top right corner |
-> SymbolicObj2 | Resulting square (bottom right = (0,0) ) |
:: ℝ | Rouding of the polygon |
-> [ℝ2] | Verticies of the polygon |
-> SymbolicObj2 | Resulting polygon |
rotateExtrude :: ℝ -> Maybe ℝ -> Either ℝ2 (ℝ -> ℝ2) -> Either ℝ (ℝ -> ℝ) -> SymbolicObj2 -> SymbolicObj3 Source #
rotate3 :: (ℝ, ℝ, ℝ) -> SymbolicObj3 -> SymbolicObj3 Source #
rotate3V :: ℝ -> ℝ3 -> SymbolicObj3 -> SymbolicObj3 Source #
pack3 :: ℝ2 -> ℝ -> [SymbolicObj3] -> Maybe SymbolicObj3 Source #
rotate :: ℝ -> SymbolicObj2 -> SymbolicObj2 Source #
pack2 :: ℝ2 -> ℝ -> [SymbolicObj2] -> Maybe SymbolicObj2 Source #
writeBinSTL :: ℝ -> FilePath -> SymbolicObj3 -> IO () Source #
writeTHREEJS :: ℝ -> FilePath -> SymbolicObj3 -> IO () Source #
writeSCAD2 :: ℝ -> FilePath -> SymbolicObj2 -> IO () Source #
writeSCAD3 :: ℝ -> FilePath -> SymbolicObj3 -> IO () Source #
writeGCodeHacklabLaser :: ℝ -> FilePath -> SymbolicObj2 -> IO () Source #
runOpenscad :: [Char] -> Either ParseError (IO (VarLookup, [SymbolicObj2], [SymbolicObj3])) Source #
data SymbolicObj2 Source #
A symbolic 2D object format. We want to have a symbolic object so that we can accelerate rendering & give ideal meshes for simple cases.