NNSG3dJntAnmResult

Syntax

#include <nnsys/g3d/anm.h>

typedef enum
{
    NNS_G3D_JNTANM_RESULTFLAG_SCALE_ONE      = 0x00000001,
    NNS_G3D_JNTANM_RESULTFLAG_ROT_ZERO       = 0x00000002,
    NNS_G3D_JNTANM_RESULTFLAG_TRANS_ZERO     = 0x00000004,
    NNS_G3D_JNTANM_RESULTFLAG_SCALEEX0_ONE   = 0x00000008,
    NNS_G3D_JNTANM_RESULTFLAG_SCALEEX1_ONE   = 0x00000010,
    NNS_G3D_JNTANM_RESULTFLAG_MAYA_SSC       = 0x00000020
}
NNSG3dJntAnmResultFlag;

typedef struct NNSG3dJntAnmResult_
{
    NNSG3dJntAnmResultFlag flag;
    VecFx32                scale;
    VecFx32                scaleEx0;
    VecFx32                scaleEx1;
    MtxFx33                rot;
    VecFx32                trans;
}
NNSG3dJntAnmResult;

Description

The NNSG3dJntAnmResult structure stores information relating to the joint's position, direction, and scale. GD3 uses the information stored in this structure to send commands to the Geometry Engine. The structure is created and used during the execution of the NNSi_G3dFuncSbc_NODEDESC function (i.e., when it is called during the SBC's NODEDESC command process).

To implement joint animation, the NNSi_G3dFuncSbc_NODEDESC function acts internally to set the data stored in this structure in accordance with the animation data.

By setting a callback in NNS_G3D_SBC_NODEDESC, the joint's position, direction and scale can be controlled from the user program by accessing the NNSG3dJntAnmResult structure via the NNSG3dRS structure.

NNSG3dJntAnmResult Structure Members Description
flag The flag of type NNSG3dJntAnmResultFlag.
scale Scale by which joint is multiplied.
scaleEx0 Auxiliary scale value. The meaning of this value differs depending on the CG tool. This value normally is not manipulated.
scaleEx1 Auxiliary scale value. The meaning of this value differs depending on the CG tool. This value normally is not manipulated.
rot Joint's 3x3 rotation matrix.
trans Joint's parallel transform component.

NNSG3dMatAnmResultFlag Values Description
NNS_G3D_JNTANM_RESULTFLAG_SCALE_ONE When this flag is set, the value stored in scale is disabled. All scale components are treated as if FX32_ONE has been entered.
NNS_G3D_JNTANM_RESULTFLAG_ROT_ZERO When this flag is set, the value stored in rot is disabled. The rotation matrix is treated as a unit matrix.
NNS_G3D_JNTANM_RESULTFLAG_TRANS_ZERO When this flag is set, the value stored in trans is disabled. All parallel transform components are treated as if 0 has been entered.
NNS_G3D_JNTANM_RESULTFLAG_SCALEEX0_ONE When this flag is set, scaleEx0 is disabled. All components are treated as FX32_ONE.
NNS_G3D_JNTANM_RESULTFLAG_SCALEEX1_ONE When this flag is set, the value stored in scaleEx1 is disabled. All components are treated as FX32_ONE.
NNS_G3D_JNTANM_RESULTFLAG_MAYA_SSC When this flag is set, this joint is multiplied by Maya's Segment Scale Compensate.

See Also

Kernel, Rendering Engine

Revision History

2004/10/13 Initial version.


CONFIDENTIAL