Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- 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. Deformation
s include projective transformations.
Deformation
can represent other functions from points to points
which are "well-behaved", in that they do not introduce small wiggles.
Deformation (Point v n -> Point u n) |
Instances
Monoid (Deformation v v n) Source # | |
Defined in Diagrams.Deform mempty :: Deformation v v n # mappend :: Deformation v v n -> Deformation v v n -> Deformation v v n # mconcat :: [Deformation v v n] -> Deformation v v n # | |
Semigroup (Deformation v v n) Source # | |
Defined in Diagrams.Deform (<>) :: Deformation v v n -> Deformation v v n -> Deformation v v n # sconcat :: NonEmpty (Deformation v v n) -> Deformation v v n # stimes :: Integral b => b -> Deformation v v n -> Deformation v v n # |
class Deformable a b where Source #
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
.
Instances
(Metric v, Metric u, OrderedField n, r ~ Located (Trail u n)) => Deformable (Located (Trail v n)) r Source # | |
(Metric v, Metric u, OrderedField n, r ~ Path u n) => Deformable (Path v n) r Source # | |
r ~ Point u n => Deformable (Point v n) r Source # | |
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
Transformation
s in the construction of Deformation
s.