; docformat = 'rst' ;+ ;This function translates input vector, V, through transformation ;quaternion, q. ; ; :Author: ; Brian Boyle: 11-14-1996 ; ; :Examples: ; res_vec = quat_vect_mult(quat, vec) ;- ;+ ; :Params: ; q : in, required, type=vector of double ; Single transformation quaternion (Euler parameters). ; v : in, required, type=vector of double or array of vectors ; Vector grid to be transformed (dblarr(*, *, 3), vector is 3D. ; ; :Returns: ; Returns the quaternion transformed 3D vector or vector array. ;- function quat_vect_mult,q,v ; ; Check input parameters... ; if n_params() ne 2 then begin message,/info,'USAGE: result=quat_vect_mult(q,v)' return,-1 endif ; ; Compute transformation ; e4=q[3] e=q[0:2] result= v + 2d*( e4*crossp_grid(e,v) + crossp_grid(e,crossp_grid(e,v)) ) ; ; Done ; return,result end