Safe Haskell | None |
---|---|
Language | Haskell98 |
- sphere :: ℝ -> SymbolicObj3
- rect3R :: ℝ -> ℝ3 -> ℝ3 -> SymbolicObj3
- cylinder2 :: ℝ -> ℝ -> ℝ -> SymbolicObj3
- cylinder :: ℝ -> ℝ -> SymbolicObj3
- circle :: ℝ -> SymbolicObj2
- rectR :: ℝ -> ℝ2 -> ℝ2 -> SymbolicObj2
- polygonR :: ℝ -> [ℝ2] -> SymbolicObj2
- polygon :: [ℝ2] -> SymbolicObj2
- class Object obj vec | obj -> vec where
- translate :: vec -> obj -> obj
- scale :: vec -> obj -> obj
- complement :: obj -> obj
- unionR :: ℝ -> [obj] -> obj
- intersectR :: ℝ -> [obj] -> obj
- differenceR :: ℝ -> [obj] -> obj
- outset :: ℝ -> obj -> obj
- shell :: ℝ -> obj -> obj
- getBox :: obj -> (vec, vec)
- getImplicit :: obj -> vec -> ℝ
- implicit :: (vec -> ℝ) -> (vec, vec) -> obj
- union :: Object obj vec => [obj] -> obj
- difference :: Object obj vec => [obj] -> obj
- intersect :: Object obj vec => [obj] -> obj
- extrudeR :: ℝ -> SymbolicObj2 -> ℝ -> SymbolicObj3
- extrudeRM :: ℝ -> Maybe (ℝ -> ℝ) -> Maybe (ℝ -> ℝ) -> Maybe (ℝ -> ℝ2) -> SymbolicObj2 -> Either ℝ (ℝ2 -> ℝ) -> SymbolicObj3
- rotateExtrude :: ℝ -> Maybe ℝ -> Either ℝ2 (ℝ -> ℝ2) -> Either ℝ (ℝ -> ℝ) -> SymbolicObj2 -> SymbolicObj3
- extrudeOnEdgeOf :: SymbolicObj2 -> SymbolicObj2 -> SymbolicObj3
- rotate3 :: (ℝ, ℝ, ℝ) -> SymbolicObj3 -> SymbolicObj3
- rotate3V :: ℝ -> ℝ3 -> SymbolicObj3 -> SymbolicObj3
- pack3 :: ℝ2 -> ℝ -> [SymbolicObj3] -> Maybe SymbolicObj3
- rotate :: ℝ -> SymbolicObj2 -> SymbolicObj2
- pack2 :: ℝ2 -> ℝ -> [SymbolicObj2] -> Maybe SymbolicObj2
Documentation
3D Primitives
:: ℝ | 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 cylinder |
-> ℝ | Second radius of the cylinder |
-> ℝ | Height of the cylinder |
-> SymbolicObj3 | Resulting cylinder |
cylinder :: ℝ -> ℝ -> SymbolicObj3 Source
2D Primitives
:: ℝ | radius of the circle |
-> SymbolicObj2 | resulting circle |
:: ℝ | |
-> ℝ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 |
polygon :: [ℝ2] -> SymbolicObj2 Source
Shared Operations
class Object obj vec | obj -> vec where Source
:: 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.
:: vec | Amount to scale by |
-> obj | Object to scale |
-> obj | Resulting scaled object |
Scale an object
:: obj | Object to complement |
-> obj | Result |
Complement an Object
:: ℝ | The radius of rounding |
-> [obj] | objects to union |
-> obj | Resulting object |
Rounded union
:: ℝ | The radius of rounding |
-> [obj] | Objects to intersect |
-> obj | Resulting object |
Rounded minimum
:: ℝ | The radius of rounding |
-> [obj] | Objects to difference |
-> obj | Resulting object |
Rounded difference
:: ℝ | distance to outset |
-> obj | object to outset |
-> obj | resulting object |
Outset an object.
:: ℝ | width of shell |
-> obj | object to take shell of |
-> obj | resulting shell |
Make a shell of an object.
:: obj | Object to get box of |
-> (vec, vec) | Bounding box |
Get the bounding box an object
:: obj | Object to get implicit function of |
-> vec -> ℝ | Implicit function |
Get the implicit function for an object
:: (vec -> ℝ) | Implicit function |
-> (vec, vec) | Bounding box |
-> obj | Resulting object |
difference :: Object obj vec => [obj] -> obj Source
extrudeR :: ℝ -> SymbolicObj2 -> ℝ -> SymbolicObj3 Source
extrudeRM :: ℝ -> Maybe (ℝ -> ℝ) -> Maybe (ℝ -> ℝ) -> Maybe (ℝ -> ℝ2) -> SymbolicObj2 -> Either ℝ (ℝ2 -> ℝ) -> SymbolicObj3 Source
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