#include <nnsys/g3d/binres/res_struct.h> typedef struct NNSG3dResMdl_ { u32 size; // Model size u32 ofsSbc; // Offset to SBC, with &NNSG3dResMdl as the starting point u32 ofsMat; // Offset to NNSG3dResMat, with &NNSG3dResMdl as the starting point u32 ofsShp; // Offset to NNSG3dResShp, with &NNSG3dResMdl as the starting point u32 ofsEvpMtx; // Offset to NNSG3dEvpMtx, with &NNSG3dResMdl as the starting point NNSG3dResMdlInfo info; // Model information (fixed length) NNSG3dResNodeInfo nodeInfo; // Node information // SBC // Materials // Shapes // EvpMtxs } NNSG3dResMdl; typedef struct NNSG3dResMdlInfo_ { u8 sbcType; u8 scalingRule; u8 texMtxMode; u8 numNode; u8 numMat; u8 numShp; u8 firstUnusedMtxStackID; u8 dummy_; fx32 posScale; fx32 invPosScale; u16 numVertex; u16 numPolygon; u16 numTriangle; u16 numQuad; fx16 boxX, boxY, boxZ; fx16 boxW, boxH, boxD; fx32 boxPosScale; fx32 boxInvPosScale; } NNSG3dResMdlInfo;
The NNSG3dResMdl
structure serves as the root for all of the data structures that store data for a single model. Access to the model data is achieved through this structure. The NNSG3dResMdl
structure exists as data inside the .nsbmd
file. It is created when the .imd
file is converted by g3dcvtr
.
The following data can be accessed through the NNSG3dResMdl
structure:
This structure and the material, shape, and other data obtained through this structure are not changed by the G3D library during rendering (except when changed from within a callback).
Members of the NNSG3dResMdlInfo Structure |
Description |
---|---|
sbcType | Structure Byte Code type identifier (NNSG3dSbcType ). |
scalingRule | Scaling rule identifier (NNSG3dScalingRule ). |
texMtxMode | Texture matrix calculation method identifier (NNSG3dTexMtxMode ). |
numNode | Number of nodes in the model. |
numMat | Number of materials in the model. |
numShp | Number of shapes in the model. |
firstUnusedMtxStackID | ID of the first matrix in the matrix stack not used in the rendering of this model. |
posScale | Scale value by which the vertex position coordinates are multiplied.. The value passed to the geometry engine's scale command. |
invPosScale | Inverse of posScale . |
numVertex | The vertex_size attribute of the <output_info> element in the .imd file is used here as is. |
numPolygon | The polygon_size attribute of the <output_info> element in the .imd file is used here as is. |
numTriangle | The triangle_size attribute of the <output_info> element in the .imd file is used here as is. |
numQuad | The quad_size attribute of the <output_info> element in the .imd file is used here as is. |
boxX, boxY, boxZ | The xyz attributes of the <box?test> element in the .imd file are used here as they are. |
boxW, boxH, boxD | The whd attributes of the <box?test> element in the .imd file are used here as they are. |
boxPosScale | The scale value by which the box's coordinates are multiplied. |
boxInvPosScale | Inverse of boxPosScale . |
Kernel, Model, Binary resource
2007/05/17 Added structure definition.
2004/10/13 Initial version.
CONFIDENTIAL