Safe Haskell | Safe-Inferred |
---|---|
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
Storable Transform Source # | |
Defined in Geomancy.Transform | |
Monoid Transform Source # | |
Semigroup Transform Source # | |
Show Transform Source # | |
Block Transform Source # | |
Defined in Geomancy.Transform type PackedSize Transform :: Nat # alignment140 :: proxy Transform -> Int # sizeOf140 :: proxy Transform -> Int # isStruct :: proxy Transform -> Bool # read140 :: MonadIO m => Ptr a -> Diff a Transform -> m Transform # write140 :: MonadIO m => Ptr a -> Diff a Transform -> Transform -> m () # alignment430 :: proxy Transform -> Int # sizeOf430 :: proxy Transform -> Int # read430 :: MonadIO m => Ptr a -> Diff a Transform -> m Transform # write430 :: MonadIO m => Ptr a -> Diff a Transform -> Transform -> m () # sizeOfPacked :: proxy Transform -> Int # readPacked :: MonadIO m => Ptr a -> Diff a Transform -> m Transform # writePacked :: MonadIO m => Ptr a -> Diff a Transform -> Transform -> m () # | |
type PackedSize 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 #