Wumpus.Core.AffineTrans
Contents
- class Transform t where
 - class Rotate t where
 - class  RotateAbout t  where
- rotateAbout :: u ~ DUnit t => Radian -> Point2 u -> t -> t
 
 - class Scale t where
 - class Translate t where
 - rotate30 :: Rotate t => t -> t
 - rotate30About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> t
 - rotate45 :: Rotate t => t -> t
 - rotate45About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> t
 - rotate60 :: Rotate t => t -> t
 - rotate60About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> t
 - rotate90 :: Rotate t => t -> t
 - rotate90About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> t
 - rotate120 :: Rotate t => t -> t
 - rotate120About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> t
 - uniformScale :: Scale t => Double -> t -> t
 - reflectX :: Scale t => t -> t
 - reflectY :: Scale t => t -> t
 - translateBy :: (Translate t, DUnit t ~ u) => Vec2 u -> t -> t
 - reflectXPlane :: (Num u, Scale t, Translate t, u ~ DUnit t) => Point2 u -> t -> t
 - reflectYPlane :: (Num u, Scale t, Translate t, u ~ DUnit t) => Point2 u -> t -> t
 
Type classes
Apply a matrix transformation directly.
Type class for rotation.
class RotateAbout t whereSource
Type class for rotation about a point.
Note - the point is a DPoint2 - i.e. it has PostScript points
 for x and y-units.
Methods
rotateAbout :: u ~ DUnit t => Radian -> Point2 u -> t -> tSource
Instances
| RotateAbout Primitive | |
| RotateAbout Picture | |
| RotateAbout a => RotateAbout (Maybe a) | |
| (Real u, Floating u) => RotateAbout (Point2 u) | |
| (Real u, Floating u) => RotateAbout (Vec2 u) | |
| (Real u, Floating u, Ord u) => RotateAbout (BoundingBox u) | |
| (u ~ DUnit a, u ~ DUnit b, RotateAbout a, RotateAbout b) => RotateAbout (a, b) | 
Type class for scaling.
Instances
| Scale Primitive | |
| Scale Picture | |
| Scale a => Scale (Maybe a) | |
| Fractional u => Scale (Point2 u) | |
| Fractional u => Scale (Vec2 u) | |
| (Fractional u, Ord u) => Scale (BoundingBox u) | |
| (Scale a, Scale b) => Scale (a, b) | 
Type class for translation.
Common rotations
rotate30About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> tSource
Rotate by 30 degrees about the supplied point.
rotate45About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> tSource
Rotate by 45 degrees about the supplied point.
rotate60About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> tSource
Rotate by 60 degrees about the supplied point.
rotate90About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> tSource
Rotate by 90 degrees about the supplied point.
rotate120About :: (RotateAbout t, DUnit t ~ u) => Point2 u -> t -> tSource
Rotate by 120 degrees about the supplied point.
Common scalings
uniformScale :: Scale t => Double -> t -> tSource
Scale both x and y dimensions by the same amount.
Translate by a vector
translateBy :: (Translate t, DUnit t ~ u) => Vec2 u -> t -> tSource
Translate by the x and y components of a vector.