Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Fastℕ = Fastℕ Int
- fromFastℕ :: FastN n => Fastℕ -> n
- toFastℕ :: FastN n => n -> Fastℕ
- data ℕ
- fromℕ :: N n => ℕ -> n
- toℕ :: N n => n -> ℕ
- type ℝ = Double
- type ℝ2 = (ℝ, ℝ)
- both :: (t -> b) -> (t, t) -> (b, b)
- type ℝ3 = (ℝ, ℝ, ℝ)
- allthree :: (t -> b) -> (t, t, t) -> (b, b, b)
- minℝ :: ℝ
- (⋅) :: InnerSpace a => a -> a -> Scalar a
- (⋯*) :: ComponentWiseMultable a => a -> a -> a
- (⋯/) :: ComponentWiseMultable a => a -> a -> a
- newtype Polyline = Polyline [ℝ2]
- newtype Polytri = Polytri (ℝ2, ℝ2, ℝ2)
- newtype Triangle = Triangle (ℝ3, ℝ3, ℝ3)
- newtype NormedTriangle = NormedTriangle ((ℝ3, ℝ3), (ℝ3, ℝ3), (ℝ3, ℝ3))
- newtype TriangleMesh = TriangleMesh [Triangle]
- newtype NormedTriangleMesh = NormedTriangleMesh [NormedTriangle]
- type Obj2 = ℝ2 -> ℝ
- type Obj3 = ℝ3 -> ℝ
- type Box2 = (ℝ2, ℝ2)
- type Box3 = (ℝ3, ℝ3)
- type Boxed2 a = (a, Box2)
- type Boxed3 a = (a, Box3)
- type BoxedObj2 = Boxed2 Obj2
- type BoxedObj3 = Boxed3 Obj3
- data SymbolicObj2
- = RectR ℝ ℝ2 ℝ2
- | Circle ℝ
- | PolygonR ℝ [ℝ2]
- | Complement2 SymbolicObj2
- | UnionR2 ℝ [SymbolicObj2]
- | DifferenceR2 ℝ [SymbolicObj2]
- | IntersectR2 ℝ [SymbolicObj2]
- | Translate2 ℝ2 SymbolicObj2
- | Scale2 ℝ2 SymbolicObj2
- | Rotate2 ℝ SymbolicObj2
- | Outset2 ℝ SymbolicObj2
- | Shell2 ℝ SymbolicObj2
- | EmbedBoxedObj2 BoxedObj2
- data SymbolicObj3
- = Rect3R ℝ ℝ3 ℝ3
- | Sphere ℝ
- | Cylinder ℝ ℝ ℝ
- | Complement3 SymbolicObj3
- | UnionR3 ℝ [SymbolicObj3]
- | DifferenceR3 ℝ [SymbolicObj3]
- | IntersectR3 ℝ [SymbolicObj3]
- | Translate3 ℝ3 SymbolicObj3
- | Scale3 ℝ3 SymbolicObj3
- | Rotate3 ℝ3 SymbolicObj3
- | Rotate3V ℝ ℝ3 SymbolicObj3
- | Outset3 ℝ SymbolicObj3
- | Shell3 ℝ SymbolicObj3
- | EmbedBoxedObj3 BoxedObj3
- | ExtrudeR ℝ SymbolicObj2 ℝ
- | ExtrudeRotateR ℝ ℝ SymbolicObj2 ℝ
- | ExtrudeRM ℝ (Either ℝ (ℝ -> ℝ)) (Either ℝ (ℝ -> ℝ)) (Either ℝ2 (ℝ -> ℝ2)) SymbolicObj2 (Either ℝ (ℝ2 -> ℝ))
- | RotateExtrude ℝ (Maybe ℝ) (Either ℝ2 (ℝ -> ℝ2)) (Either ℝ (ℝ -> ℝ)) SymbolicObj2
- | ExtrudeOnEdgeOf SymbolicObj2 SymbolicObj2
- fromℕtoℝ :: ℕ -> ℝ
- fromFastℕtoℝ :: Fastℕ -> ℝ
- fromℝtoFloat :: ℝ -> Float
Documentation
allthree :: (t -> b) -> (t, t, t) -> (b, b, b) Source #
apply a function to all three items in the provided tuple.
A give up point for dividing ℝs, and for the maximum difference between abs(n) and abs(-n).
(⋅) :: InnerSpace a => a -> a -> Scalar a Source #
TODO: Find a better place for this
A chain of line segments, as in SVG or DXF. eg. [(0,0), (0.5,1), (1,0)] ---> /\
Instances
NFData Polyline Source # | |
Defined in Graphics.Implicit.Definitions | |
DiscreteAproxable SymbolicObj2 [Polyline] Source # | |
Defined in Graphics.Implicit.Export.DiscreteAproxable discreteAprox :: ℝ -> SymbolicObj2 -> [Polyline] Source # |
A triangle in 2D space (a,b,c).
A triangle in 3D space (a,b,c) = a triangle with vertices a, b and c
newtype NormedTriangle Source #
A triangle ((v1,n1),(v2,n2),(v3,n3)) has vertices v1, v2, v3 with corresponding normals n1, n2, and n3
newtype TriangleMesh Source #
A triangle mesh is a bunch of triangles, attempting to be a surface.
Instances
NFData TriangleMesh Source # | |
Defined in Graphics.Implicit.Definitions rnf :: TriangleMesh -> () # | |
DiscreteAproxable SymbolicObj3 TriangleMesh Source # | |
Defined in Graphics.Implicit.Export.DiscreteAproxable discreteAprox :: ℝ -> SymbolicObj3 -> TriangleMesh Source # |
newtype NormedTriangleMesh Source #
A normed triangle mesh is a mesh of normed triangles.
Instances
DiscreteAproxable SymbolicObj3 NormedTriangleMesh Source # | |
Defined in Graphics.Implicit.Export.DiscreteAproxable discreteAprox :: ℝ -> SymbolicObj3 -> NormedTriangleMesh Source # |
data SymbolicObj2 Source #
A symbolic 2D object format. We want to have symbolic objects so that we can accelerate rendering & give ideal meshes for simple cases.
Instances
Show SymbolicObj2 Source # | |
Defined in Graphics.Implicit.Definitions showsPrec :: Int -> SymbolicObj2 -> ShowS # show :: SymbolicObj2 -> String # showList :: [SymbolicObj2] -> ShowS # | |
DiscreteAproxable SymbolicObj2 DynamicImage Source # | |
Defined in Graphics.Implicit.Export.DiscreteAproxable discreteAprox :: ℝ -> SymbolicObj2 -> DynamicImage Source # | |
DiscreteAproxable SymbolicObj2 [Polyline] Source # | |
Defined in Graphics.Implicit.Export.DiscreteAproxable discreteAprox :: ℝ -> SymbolicObj2 -> [Polyline] Source # |
data SymbolicObj3 Source #
A symbolic 3D format!
Rect3R ℝ ℝ3 ℝ3 | |
Sphere ℝ | |
Cylinder ℝ ℝ ℝ | |
Complement3 SymbolicObj3 | |
UnionR3 ℝ [SymbolicObj3] | |
DifferenceR3 ℝ [SymbolicObj3] | |
IntersectR3 ℝ [SymbolicObj3] | |
Translate3 ℝ3 SymbolicObj3 | |
Scale3 ℝ3 SymbolicObj3 | |
Rotate3 ℝ3 SymbolicObj3 | |
Rotate3V ℝ ℝ3 SymbolicObj3 | |
Outset3 ℝ SymbolicObj3 | |
Shell3 ℝ SymbolicObj3 | |
EmbedBoxedObj3 BoxedObj3 | |
ExtrudeR ℝ SymbolicObj2 ℝ | |
ExtrudeRotateR ℝ ℝ SymbolicObj2 ℝ | |
ExtrudeRM ℝ (Either ℝ (ℝ -> ℝ)) (Either ℝ (ℝ -> ℝ)) (Either ℝ2 (ℝ -> ℝ2)) SymbolicObj2 (Either ℝ (ℝ2 -> ℝ)) | |
RotateExtrude ℝ (Maybe ℝ) (Either ℝ2 (ℝ -> ℝ2)) (Either ℝ (ℝ -> ℝ)) SymbolicObj2 | |
ExtrudeOnEdgeOf SymbolicObj2 SymbolicObj2 |
Instances
Show SymbolicObj3 Source # | |
Defined in Graphics.Implicit.Definitions showsPrec :: Int -> SymbolicObj3 -> ShowS # show :: SymbolicObj3 -> String # showList :: [SymbolicObj3] -> ShowS # | |
DiscreteAproxable SymbolicObj3 DynamicImage Source # | |
Defined in Graphics.Implicit.Export.DiscreteAproxable discreteAprox :: ℝ -> SymbolicObj3 -> DynamicImage Source # | |
DiscreteAproxable SymbolicObj3 NormedTriangleMesh Source # | |
Defined in Graphics.Implicit.Export.DiscreteAproxable discreteAprox :: ℝ -> SymbolicObj3 -> NormedTriangleMesh Source # | |
DiscreteAproxable SymbolicObj3 TriangleMesh Source # | |
Defined in Graphics.Implicit.Export.DiscreteAproxable discreteAprox :: ℝ -> SymbolicObj3 -> TriangleMesh Source # |
fromFastℕtoℝ :: Fastℕ -> ℝ Source #
Convert from our Fast Integer (int32) to ℝ.
fromℝtoFloat :: ℝ -> Float Source #
Convert from our rational to a float, for output to a file.