{ m11 : Basics.Float
, m12 : Basics.Float
, m13 : Basics.Float
, m21 : Basics.Float
, m22 : Basics.Float
, m23 : Basics.Float
, m31 : Basics.Float
, m32 : Basics.Float
, m33 : Basics.Float
}
identity : Mat3
fromRows : Vec3 -> Vec3 -> Vec3 -> Mat3
Create a matrix out of vectors representing its rows.
add : Mat3 -> Mat3 -> Mat3
mul : Mat3 -> Mat3 -> Mat3
invert : Mat3 -> Maybe Mat3
transpose : Mat3 -> Mat3
rotate : Basics.Float -> Mat3
scale : Vec2 -> Mat3
Creates a 2D scaling matrix:
m = Mat3.scale (vec2 2 3)
Mat3.transformPoint m (vec2 5 8) == vec2 10 24
Mat3.transformVector m (vec2 5 8) == vec2 10 24
translate : Vec2 -> Mat3
lookAt : { centerOfAttention : Vec2, upDirection : Vec2 } -> Mat3
orthographic : { width : Basics.Float, height : Basics.Float } -> Mat3
viewport : { width : Basics.Float, height : Basics.Float } -> Mat3
Transforms clip space into viewport space.
-- Clip space
--
-- ^ +1
-- |
-- |
-- |
-- -1 y | +1
-- <--------- (0,0) --------->
-- | x
-- |
-- |
-- |
-- v -1
--
--
--
--
--
-- Viewport space
-- width
-- (0,0)------------>
-- |
-- |
-- |
-- |
-- v
-- height
--
--
transformPoint : Mat3 -> Vec2 -> Vec2
Transforms a point, applying scaling, rotation, and translation.
transformVector : Mat3 -> Vec2 -> Vec2
Transforms a vector, applying scaling and rotation, but not translation.
transform : Mat3 -> Vec3 -> Vec3
Transforms a general 3D vector.