;; where v1 and v2 can be v3 or v4
;; but v3 MUST be v4
(bind-func fill_direction_vector
(lambda (v1:float* v2:float* v3:float*)
(let ((tmp:float* (salloc 4)))
(vvsub v1 v2 3 tmp)
(vnormalise tmp 3 v3)
(pset! v3 3 0.0) ;; direction vectors get w = 0.0
void)))