diagrams-lib-1.4.6: Embedded domain-specific language for declarative graphics
Safe HaskellSafe-Inferred
LanguageHaskell2010

Diagrams.Deform

Synopsis

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

Instances details
Monoid (Deformation v v n) Source # 
Instance details

Defined in Diagrams.Deform

Methods

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 # 
Instance details

Defined in Diagrams.Deform

Methods

(<>) :: 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 #

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.

Instances

Instances details
(Metric v, Metric u, OrderedField n, r ~ Located (Trail u n)) => Deformable (Located (Trail v n)) r Source # 
Instance details

Defined in Diagrams.Deform

Methods

deform' :: N (Located (Trail v n)) -> Deformation (V (Located (Trail v n))) (V r) (N (Located (Trail v n))) -> Located (Trail v n) -> r Source #

deform :: Deformation (V (Located (Trail v n))) (V r) (N (Located (Trail v n))) -> Located (Trail v n) -> r Source #

(Metric v, Metric u, OrderedField n, r ~ Path u n) => Deformable (Path v n) r Source # 
Instance details

Defined in Diagrams.Deform

Methods

deform' :: N (Path v n) -> Deformation (V (Path v n)) (V r) (N (Path v n)) -> Path v n -> r Source #

deform :: Deformation (V (Path v n)) (V r) (N (Path v n)) -> Path v n -> r Source #

r ~ Point u n => Deformable (Point v n) r Source # 
Instance details

Defined in Diagrams.Deform

Methods

deform' :: N (Point v n) -> Deformation (V (Point v n)) (V r) (N (Point v n)) -> Point v n -> r Source #

deform :: Deformation (V (Point v n)) (V r) (N (Point v n)) -> 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 Transformations in the construction of Deformations.