Copyright | Written by David Himmelstrup |
---|---|
License | Unlicense |
Maintainer | lemmih@gmail.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
Synopsis
- type PointCorrespondence = Polygon -> Polygon -> (Polygon, Polygon)
- type Trajectory = (Polygon, Polygon) -> Double -> Polygon
- type ObjectCorrespondence = [GPolygon] -> [GPolygon] -> [(GPolygon, GPolygon)]
- data Morph = Morph {}
- morph :: Morph -> SVG -> SVG -> Double -> SVG
- splitObjectCorrespondence :: ObjectCorrespondence
- dupObjectCorrespondence :: ObjectCorrespondence
- genesisObjectCorrespondence :: ObjectCorrespondence
- toShapes :: Double -> SVG -> [(DrawAttributes, Polygon)]
- normalizePolygons :: (Real a, Fractional a, Epsilon a) => APolygon a -> APolygon a -> (APolygon a, APolygon a)
- annotatePolygons :: (Polygon -> SVG) -> SVG -> SVG
- unsafeSVGToPolygon :: Double -> SVG -> Polygon
Documentation
type PointCorrespondence = Polygon -> Polygon -> (Polygon, Polygon) Source #
Method determining how points in the source polygon align with points in the target polygon.
type Trajectory = (Polygon, Polygon) -> Double -> Polygon Source #
Method for interpolating between two aligned polygons.
type ObjectCorrespondence = [GPolygon] -> [GPolygon] -> [(GPolygon, GPolygon)] Source #
Method for pairing sets of polygons.
Morphing strategy
Morph | |
|
morph :: Morph -> SVG -> SVG -> Double -> SVG Source #
Apply morphing strategy to interpolate between two SVG images.
splitObjectCorrespondence :: ObjectCorrespondence Source #
Object-correspondence algorithm that splits objects in smaller pieces as necessary.
dupObjectCorrespondence :: ObjectCorrespondence Source #
Object-correspondence algorithm that duplicate objects as necessary.
genesisObjectCorrespondence :: ObjectCorrespondence Source #
Object-correspondence algorithm that spawn objects as necessary.
toShapes :: Double -> SVG -> [(DrawAttributes, Polygon)] Source #
Extract shapes and their graphical attributes from an SVG node.
normalizePolygons :: (Real a, Fractional a, Epsilon a) => APolygon a -> APolygon a -> (APolygon a, APolygon a) Source #
Add points to each polygon such that they end up with same size.
unsafeSVGToPolygon :: Double -> SVG -> Polygon Source #
Extract the first polygon in an SVG node. Will fail if there are no acceptable shapes.