\input manualMacros.tex
\manBegin
\manPageInfo{RCCL Reference Manual}{}{}
\manTitle{rpyToTrsf}{3}
\manSection{NAME}
{\rightskip=0ptplus1fil
{\tt \manName{rpyToTrsf}},
{\tt \manName{multTrsfRpy}},
{\tt \manName{trsfToRpy}}
-- RCCL routines for specifying rotations with roll-pitch-yaw angles.
}
\manSection{USAGE}
\cverbatim
#include <robotTypes.h>    /* included as part of <rccl.h> */

TRSF *rpyToTrsf (tr, roll, pitch, yaw)
  TRSF *tr;
  float roll, pitch, yaw;
                
TRSF *multTrsfRpy (tr, roll, pitch, yaw)
  TRSF *tr;
  float roll, pitch, yaw;

trsfToRpy (roll, pitch, yaw, tr)
  float *roll, *pitch, *yaw;
  TRSF *tr;
@endcverbatim
\manSection{ARGUMENTS}
\manItem{{\tt tr} --}
Result (and possibly input) transform.
\manItem{{\tt roll}, {\tt pitch}, {\tt yaw} --}
Rotation angles, in degrees.
These arguments are result pointers in the case of {\tt trsfToRpy()}.
\manSection{DESCRIPTION}
The routine {\tt rpyToTrsf()}
sets the rotational part of {\TT tr} as specified 
by the indicated angles.
This is equal to a rotation of {\tt yaw} degrees about
the $x$ axis, a rotation of {\tt pitch} degrees about the original
$y$ axis, and a rotation of {\tt roll} degrees about the original $z$ axis
(in that order).
This is also equivalent to a rotation of {\tt roll} degrees about the
$z$ axis, a rotation of {\tt pitch} degrees about the new $y$ axis,
and a rotation of {\tt yaw} degrees about the new $x$ axis.

The routine {\tt multTrsfRpy()} post-multiplies (in place) {\TT tr}
by the specified rotation.

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

The routine {\tt trsfToRpy()} returns the roll-pitch-yaw angles which
correspond to the rotational part of {\TT tr}.
If the angle representation is not unique, then
the value of {\TT roll} is arbitarily set to 0.
\manSection{SEE ALSO}
\rightskip=0ptplus1fil
{\tt xyzToTrsf(3)}, {\tt multTrsf(3)}, {\tt vaoToTrsf(3)}, {\tt rotToTrsf(3)}, {\tt eulToTrsf(3)}.
\manEnd
\end
