Creates a modeling matrix for rotation around an arbitrary axis (floating point)
#include <ultra64.h> /* gu.h */ void guRotateF(float mf, float a, float x, float y, float z);
Returns a modeling matrix to mf for use in rotating around the arbitrary axis represented by the line passing through the origin and a point (x, y, z) by an amount of a degrees in the positive direction. When this function is called, the result is the creation of the following kind of modeling matrix:
(* Note that the values (x,y,z) here are normalized inside the function)
Fixed point is handled with the guRotate function.
The vector does not have to be normalized ahead of time. This is done inside the function. However, when = 0 the operation of this macro cannot be guaranteed. Also, note that an angle with a positive value represents counter-clockwise rotation.
guAlign, guAlignF, guPosition, guPositionF, guRotate, guRotateRPY, guRotateRPYF, guScale, guScaleF, guTranslate, and guTranslateF
03/01/99 Completely rewritten.