vaoToTrsf(3)

NAME
vaoToTrsf, multTrsfVao -- RCCL routines to specify rotation using matrix components.

USAGE
#include <robotTypes.h>    /* included as part of <rccl.h> */

TRSF *vaoToTrsf (tr, ax, ay, az, ox, oy, oz)
  TRSF *tr;
  float ax, ay, az, ox, oy, oz;

TRSF *multTrsfVao (tr, ax, ay, az, ox, oy, oz)
  TRSF *tr;
  float ax, ay, az, ox, oy, oz;

ARGUMENTS

tr --
    Result (and possibly input) transform.

ax, ay, az --
    Components of a vector parallel to the desired a vector.

ox, oy, oz --
    Components of a vector parallel to the desired o vector.

DESCRIPTION
vaoToTrsf() sets the rotational component of the transform "tr" as specified by the two vectors a and o.

Ostensibly, a and o represent unit vectors in the desired z and y directions (the vector n, which is the unit vector in the x direction, can be computed from o Xa). Actually, the vectors need to be neither normalized nor orthogonal: the new columns of the rotation matrix (n', o', and a') are derived from a and o as follows:
                a' = a / |a|

                o' = x / |x|, where x = a' X (o X a')

                n' = o' X a'

multTrsfVao() post-multiplies (in place) the transformation "tr" with the rotation specified by a and o.

Each of these routines returns a pointer to its result argument.

SEE ALSO
xyzToTrsf(3), multTrsf(3), rotToTrsf(3), rpyToTrsf(3), eulToTrsf(3).