Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Transform = Transform {
- unTransform :: Mat4
- inverse :: (Coercible Mat4 a, Coercible Mat4 a) => a -> a
- apply :: Vec3 -> Transform -> Vec3
- (!.) :: Transform -> Vec3 -> Vec3
- translate :: Float -> Float -> Float -> Transform
- translateV :: Vec3 -> Transform
- rotateX :: Float -> Transform
- rotateY :: Float -> Transform
- rotateZ :: Float -> Transform
- rotateQ :: Quaternion -> Transform
- scale :: Float -> Transform
- scaleX :: Float -> Transform
- scaleY :: Float -> Transform
- scaleZ :: Float -> Transform
- scaleXY :: Float -> Float -> Transform
- scale3 :: Float -> Float -> Float -> Transform
- dirPos :: Quaternion -> Vec3 -> Transform
Documentation
Instances
Show Transform Source # | |
Semigroup Transform Source # | |
Monoid Transform Source # | |
Storable Transform Source # | |
Defined in Geomancy.Transform |
inverse :: (Coercible Mat4 a, Coercible Mat4 a) => a -> a Source #
Compute an inverse matrix, slowly.
apply :: Vec3 -> Transform -> Vec3 Source #
Apply transformation to a vector, then normalize with perspective division
(!.) :: Transform -> Vec3 -> Vec3 Source #
Matrix - column vector multiplication with perspective division
translateV :: Vec3 -> Transform Source #
rotateQ :: Quaternion -> Transform Source #