\input manualMacros.tex
\manBegin
\manPageInfo{RCCL Reference Manual}{}{}
\manTitle{rotToTrsf}{3}
\manSection{NAME}
{\rightskip=0ptplus1fil
{\tt \manName{rotToTrsf}},
{\tt \manName{multTrsfRot}},
{\tt \manName{trsfToRot}} --
RCCL routines for specifying rotations as a turn about a single axis.
}
\manSection{USAGE}
\cverbatim
#include <robotTypes.h>    /* included as part of <rccl.h> */

TRSF *rotToTrsf (tr, v1, h)
  TRSF *tr;
  VECT *v1;
  float h;

TRSF *multTrsfRot (tr, v1, h)
  TRSF *tr;
  VECT *v1;
  float h;

trsfToRot (vr, h, t1)
  VECT *vr;
  float *h;
  TRSF *t1;
@endcverbatim
\manSection{ARGUMENTS}
\manItem{{\tt tr} --}
Result (and possibly input) transform.
\manItem{{\tt t1} --}
Input transform.
\manItem{{\tt v1} --}
An input vector (not necessarily normalized) which defines the Euler
axis.
\manItem{{\tt vr} --}
An output vector defining an Euler axis.
\manItem{{\tt h} --}
Amount of rotation about the Euler axis (in degrees).
This argument is a result pointer in the case of {\tt trsfToRot()}.
\manSection{DESCRIPTION}
These routines handle rotations parameterized as a single
rotation about a specific axis (known as the {\it Euler axis}).

{\tt rotToTrsf()} sets the rotational part of {\TT tr}
to be equivalent to a rotation {\TT h} about 
the Euler axis {\TT v1}.

{\tt multTrsfRot()} post-multiplies (in place) {\TT tr} by a rotation
{\TT h} about {\TT v1}.

Each of the above routines returns a pointer to {\TT tr}.

{\tt trsfToRot()} returns the Euler axis for the rotational
component of {\tt t1}
in {\tt vr}, and the corresponding angle in {\tt h}.
{\tt h} is defined so that $0 \le h < \pi$.
If the rotational component is 0, then {\tt h} is set to 0.0
and {\tt v} is set to a unit vector along the $x$ axis.

\manSection{SEE ALSO}
\rightskip=0ptplus1fil
{\tt xyzToTrsf(3)}, {\tt multTrsf(3)}, {\tt vaoToTrsf(3)}, {\tt rpyToTrsf(3)},
{\tt eulToTrsf(3)}, {\tt dsplToTrsf(3)}.
\manEnd
\end
