#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;
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. |
2004/10/13 Initial version.
CONFIDENTIAL