jjant / linear-algebra / Vec3


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

Create

vec3 : Basics.Float -> Basics.Float -> Basics.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 : Basics.Float -> Vec3 -> Vec3

setY : Basics.Float -> Vec3 -> Vec3

setZ : Basics.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 : Basics.Float -> Vec3 -> Vec3

dot : Vec3 -> Vec3 -> Basics.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

direction : { from : Vec3, to : Vec3 } -> Vec3

length : Vec3 -> Basics.Float

lengthSquared : Vec3 -> Basics.Float

distance : Vec3 -> Vec3 -> Basics.Float

distanceSquared : Vec3 -> Vec3 -> Basics.Float

Homogeneous coordinates

point : Vec3 -> Vec4

vector : Vec3 -> Vec4

fromHomogeneous : Vec4 -> Vec3