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 :: String -> Either ParseError (IO (VarLookup, [SymbolicObj2], [SymbolicObj3]))
- implicit :: Object obj vec => (vec -> ℝ) -> (vec, vec) -> obj
- data SymbolicObj2
- data SymbolicObj3
Documentation
:: Object obj vec | |
=> vec | Vector to translate by (Also: a is a vector, blah, blah) |
-> obj | Object to translate |
-> obj | Resulting object |
Translate an object by a vector of appropriate dimension.
:: Object obj vec | |
=> vec | Amount to scale by |
-> obj | Object to scale |
-> obj | Resulting scaled object |
Scale an object
difference :: forall obj vec. Object obj vec => [obj] -> obj Source #
:: Object obj vec | |
=> ℝ | The radius of rounding |
-> [obj] | objects to union |
-> obj | Resulting object |
Rounded union
:: Object obj vec | |
=> ℝ | The radius of rounding |
-> [obj] | Objects to intersect |
-> obj | Resulting object |
Rounded minimum
:: Object obj vec | |
=> ℝ | The radius of rounding |
-> [obj] | Objects to difference |
-> obj | Resulting object |
Rounded difference
:: Object obj vec | |
=> ℝ | width of shell |
-> obj | object to take shell of |
-> obj | resulting shell |
Make a shell of an object.
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 :: String -> Either ParseError (IO (VarLookup, [SymbolicObj2], [SymbolicObj3])) Source #
:: Object obj vec | |
=> (vec -> ℝ) | Implicit function |
-> (vec, vec) | Bounding box |
-> obj | Resulting object |
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.