jjant/linear-algebra/1.0.0

Vec3

type alias Vec3 =
{ x : Float
, y : Float
, z : Float
}

Create

vec3 : Float -> Float -> Float -> Vec3

Create a vector out of its x, y, and z components.

Setters

The set functions create a new copy of the vector, updating a single field.

setX : Float -> Vec3 -> Vec3
setY : Float -> Vec3 -> Vec3
setZ : Float -> Vec3 -> Vec3

Constants

zero : Vec3
i : Vec3
j : Vec3
k : Vec3

Operations

add : Vec3 -> Vec3 -> Vec3
sub : Vec3 -> Vec3 -> Vec3
negate : Vec3 -> Vec3
scale : Float -> Vec3 -> Vec3
dot : Vec3 -> Vec3 -> Float
cross : Vec3 -> Vec3 -> Vec3
normalize : Vec3 -> Vec3

Normalizes a vector.

    normalize (vec3 0 3 4) = vec3 0 0.6 0.8
    normalize (vec3 0 0 0) = vec3 0 0 0
{ from : Vec3
, to : Vec3
}
-> Vec3
length : Vec3 -> Float
lengthSquared : Vec3 -> Float
distance : Vec3 -> Vec3 -> Float
distanceSquared : Vec3 -> Vec3 -> Float

Homogeneous coordinates

point : Vec3 -> Vec4
vector : Vec3 -> Vec4
fromHomogeneous : Vec4 -> Vec3