| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Waterfall.TwoD.Transforms
Synopsis
- class Transformable2D a
- matTransform2D :: Transformable2D a => M23 Double -> a -> a
- rotate2D :: Transformable2D a => Double -> a -> a
- scale2D :: Transformable2D a => V2 Double -> a -> a
- uScale2D :: Transformable2D a => Double -> a -> a
- translate2D :: Transformable2D a => V2 Double -> a -> a
- mirror2D :: Transformable2D a => V2 Double -> a -> a
Documentation
class Transformable2D a Source #
Typeclass for objects that can be manipulated in 2D space
Minimal complete definition
matTransform2D, rotate2D, scale2D, uScale2D, translate2D, mirror2D
Instances
| Transformable2D Diagram Source # | |
| Transformable2D RawDiagram Source # | |
Defined in Waterfall.TwoD.Transforms Methods matTransform2D :: M23 Double -> RawDiagram -> RawDiagram Source # rotate2D :: Double -> RawDiagram -> RawDiagram Source # scale2D :: V2 Double -> RawDiagram -> RawDiagram Source # uScale2D :: Double -> RawDiagram -> RawDiagram Source # translate2D :: V2 Double -> RawDiagram -> RawDiagram Source # mirror2D :: V2 Double -> RawDiagram -> RawDiagram Source # | |
| Transformable2D Path2D Source # | |
| Transformable2D Shape Source # | |
Defined in Waterfall.TwoD.Transforms | |
| Transformable2D (V2 Double) Source # | |
Defined in Waterfall.TwoD.Transforms | |
matTransform2D :: Transformable2D a => M23 Double -> a -> a Source #
Directly transform with a transformation matrix
rotate2D :: Transformable2D a => Double -> a -> a Source #
Rotate by an angle (in radians) about the origin
scale2D :: Transformable2D a => V2 Double -> a -> a Source #
Scale by different amounts along the x and y axes
uScale2D :: Transformable2D a => Double -> a -> a Source #
Scale uniformally along both axes
translate2D :: Transformable2D a => V2 Double -> a -> a Source #
Translate by a distance in 2D space
mirror2D :: Transformable2D a => V2 Double -> a -> a Source #
Mirror in the line, which passes through the origin, tangent to the specified vector
Note that in order to maintain consistency with Transformable,
the mirror is in the line tangent to the vector, not in the line parallel to the vector