Rotates a point of coordinates x1 of the angle theta around the axis defined by the vector nu (not need to be unitary), applied at point x0. The original vector is overwritten.
297 vtmp.x = (a*(v*v + w*w) - u*(b*v + c*w - u*x - v*y - w*z))*(1.0 - cos(theta)) + x*cos(theta) + (-c*v + b*w - w*y + v*
z)*sin(theta);
298 vtmp.y = (b*(u*u + w*w) - v*(a*u + c*w - u*x - v*y - w*z))*(1.0 - cos(theta)) + y*cos(theta) + (+c*u - a*w + w*x - u*
z)*sin(theta);
299 vtmp.z = (c*(u*u + v*v) - w*(a*u + b*v - u*x - v*y - w*z))*(1.0 - cos(theta)) + z*cos(theta) + (-b*u + a*v - v*x + u*
y)*sin(theta);
vector struct to hold triplets.
Definition: structs.h:29
DOUBLE z
Definition: structs.h:35
double DOUBLE
Definition: types.h:44
DOUBLE x
Definition: structs.h:31
DOUBLE vec_mod(struct vector v)
Definition: math.c:121
DOUBLE y
Definition: structs.h:33