# NNS_G3dGetResultMtx

## Syntax

      #include <nnsys/g3d/util.h>

      BOOL
      NNS_G3dGetResultMtx(
          const NNSG3dRenderObj* pRenderObj,
          MtxFx43*               pos,
          MtxFx33*               nrm,
          u32                    nodeID
      );

## Arguments

`pRenderObj` | Pointer to the `RenderObj` structure.
`pos` | Pointer to the matrix that is substituted for the clip coordinate matrix.
`nrm` | Pointer to the matrix that is substituted for the directional vector matrix.
`nodeID` | Node ID.

## Return Values

Returns `TRUE` if the matrix was able to be extracted.

## Description

Extracts from the matrix stack any matrix corresponding to `nodeID` that remains in the matrix stack after the `NNS_G3dDraw` function executes. The function returns `TRUE` if it was able to extract the matrix and `FALSE` if it was unable to extract it. When the return value is `TRUE`, the matrix mode will be changed to `Position` / `Vector` matrix mode. If `pos` and `nrm` are not `NULL`, they are set to the matrix.)

Note: Make sure that `pos_scale` is not being applied to matrices that this function can get. (This refers to scaling the vertex coordinates with the attributes specified by `<model_data>` in the imd intermediate file. It is stored in `NNSG3dResMdlInfo::posScale` in `fx32` format.)

Usage and Notes

When converting with `g3cvtr` and using the `-s` option, the joint matrices are all stored in the matrix stack. Rendering can be skipped by setting the `NNSG3dRenderObj::flag` flag `NNS_G3D_RENDEROBJ_FLAG_SKIP_SBC_DRAW` and calling the `NNS_G3dDraw` function. The matrix calculation can be skipped by setting `NNS_G3D_RENDEROBJ_FLAG_SKIP_SBC_MTXCALC` and then calling the `NNS_G3dDraw` function.

Using this feature allows you to do the following when programming.

- Set matrices in the matrix stack at the beginning for later use
- Process the matrices set in the stack
- Use the processed matrices for rendering

## See Also

`NNS_G3dSetResultMtx`
`NNS_G3dGetCurrentMtx`

## Revision History

2004/08/02 Initial version.

CONFIDENTIAL