| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Diagrams.Deform
- newtype Deformation v u n = Deformation (Point v n -> Point u n)
- class Deformable a b where
- asDeformation :: (Additive v, Num n) => Transformation v n -> Deformation v v n
Documentation
newtype Deformation v u n Source #
Deformations are a superset of the affine transformations
represented by the Transformation type. In general they are not
invertible. Deformations include projective transformations.
Deformation can represent other functions from points to points
which are "well-behaved", in that they do not introduce small wiggles.
Constructors
| Deformation (Point v n -> Point u n) |
Instances
| Semigroup (Deformation v v n) Source # | |
| Monoid (Deformation v v n) Source # | |
class Deformable a b where Source #
Methods
deform' :: N a -> Deformation (V a) (V b) (N a) -> a -> b Source #
deform' epsilon d a transforms a by the deformation d.
If the type of a is not closed under projection, approximate
to accuracy epsilon.
deform :: Deformation (V a) (V b) (N a) -> a -> b Source #
deform d a transforms a by the deformation d.
If the type of a is not closed under projection, deform
should call deform' with some reasonable default value of
epsilon.
asDeformation :: (Additive v, Num n) => Transformation v n -> Deformation v v n Source #
asDeformation converts a Transformation to a Deformation by
discarding the inverse transform. This allows reusing
Transformations in the construction of Deformations.