R3MxFromIntui
void R3MxFromIntui(R3MATRIX A,R3MATRIX B);
R3MxFromIntui does the inverse translation. This direction is always uniquely defined and no reference matrix is needed.
R3MxFromIntui does the inverse translation. This direction is always uniquely defined and no reference matrix is needed.
R3MxFromIntui does the inverse translation. This direction is always uniquely defined and no reference matrix is needed.
The result matrix A is not intended to be used as a transformation, the matrix array acts only as a result storage.
'Comp' may be another reference matrix in the same intui form or null; if given, it is used as a reference to solve some ill defined situations specified below and to minimize rotations. When e.g. adding/editing a keyframe, interpolate 'comp' from the earlier key frame values.
Heading, pitching & banking angles are computed using primarily z-axis direction: Heading & pitching define where z axis is pointing at, and banking defines how other axes are rotated around rotated z. The reason to this is the definition of most CSG objects (3. axis is the natural axis of a cylinder).
If full skew occurs, rotation is ill defined. If reference matrix 'comp' is given, its corresponding figures are used, otherwise a default solution is assigned, which may not be appropriate but requires correction through rotation envelopes or other interface to computed intuitive values.
If pitching is -+180 degrees, banking is ill defined. As in the previous case, 'comp' banking (if available) or a default number (0) is used.
'Intui' values are intuitive mainly when they are given in in an appropriate object space. If B is the transformation and O is mapping to object's space, then B = O M Inv(O), where M is 'intuitive' modification defined in object's space. You can extract M by computing M = Inv(O) B O. This shows the changes relative to object space. In order to see 'the current state of object space', display A = R3MxToIntui(B O). If you change the space where the intuitive values have been defined, all values must be translated back to standard matrix form, then new space transform should be concatenated to them, and then new intui values can be computed. This may result to undesired rotation values (wrong +-180 degree modulus and hence e.g. wrong interpolation route in key framing). The rotation components are set to be in the nearest modulus range to the given 'comp' reference (shortest route rotation), which is the best default guess, but this may not be always what is desired.